Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
PWM
UART
瑞萨_Renesas
【开发板评测】Renesas RA2L1 开发板之PWM呼吸灯功能实现
发布于 2022-10-22 14:45:31 浏览:922
订阅该版
[tocm] # 一 开发板简介 CPK-RA2L1评估板 ![CPK-RA2L1.jpg](https://oss-club.rt-thread.org/uploads/20221022/766b4712d60ebe6c62414c62eaca6a4c.jpg.webp "CPK-RA2L1.jpg") 1. MCU:R7FA2L1AB2DFM,48MHz,Arm Cortex®-M23 内核,256kB 代码闪存, 32kB SRAM 2. 调试接口:板载 J-Link 接口 3. 扩展接口:两个 PMOD 连接器 # 二 软件安装 ## 1. MDK以及RA_DFP 本人以前安装过MDK5.37,后重新安装成5.36,保留有ARM Compiler 6: ![screenshot_1666411306341.png](https://oss-club.rt-thread.org/uploads/20221022/b38ea0aacb67849af85b6f1e9a801b12.png) RA_DFP 安装了多个版本3.5.0、3.6.0、4.0.0,可能只需要一个: ![screenshot_1666411450042.png](https://oss-club.rt-thread.org/uploads/20221022/d90c8f0864dad62e7a07a127a8815574.png) ## 2. RA Smart Configurator 官网下载较慢,后发现https://www.ramcu.cn/lists/21.html 可以百度盘下载。由于官网发现BSP最高是3.6版本,故下载了3.6版本的setup_fsp_v3_6_0_rasc_v2022-01.exe。实际本人只是使用默认BSP。 ## 3. Env Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。 官方下载链接https://pan.baidu.com/s/1cg28rk#list/path=%2F 本人下载的是env_released_1.2.4_gcc10_python2.7z,解压缩后运行里面的env.exe。 注意:需要在电脑上装好 git,软件包管理功能需要 git 的支持。git 的下载地址为 https://git-scm.com/downloads ,根据向导正确安装git,并将添加到系统环境变量。并注意在工作环境中,所有的路径都不可以有中文字符或者空格。 # 三 相关工程资源 2个均下载。 1.github资源 https://github.com/RT-Thread/rt-thread/tree/master/bsp/renesas/ra2l1-cpk 2.gitee资源 https://gitee.com/rtthread/rt-thread/tree/master/ # 四 硬件连接 由于本文串口只需要发送,连接USB转串口模块只需要2根杜邦线 ,其中P109--连接转接模块的RXD,以及GND互联即可。 ![screenshot_`}BT5SD(6H`[_L]4T_7GF3P.png](https://oss-club.rt-thread.org/uploads/20221022/25780b2a605b61f70d36131e0129e07a.png.webp) # 五 开发过程 ## 1. 打开Env.exe 利用cd +路径(可以复制粘贴),切换到工程路径(Github下载的BSP工程),并打开menuconfig。 ![screenshot_5CVF6O2@()NTYN]O{(Z$I_K.png](https://oss-club.rt-thread.org/uploads/20221022/7e0ab3256385953aa75a1097d8ddc43f.png.webp) ![screenshot_6`O)_(L0UP2_HEFQ@WLUP3Q.png](https://oss-club.rt-thread.org/uploads/20221022/47b1028a52d802fc6fb0b658e1782121.png.webp) ## 2.串口驱动选择V2 ![screenshot_7KETHDB{_3Z%5CL%PZVMQT6.png](https://oss-club.rt-thread.org/uploads/20221022/743e08d25e1d830ff9f7f93719c8a51a.png.webp) ## 3. 串口重命名为uart9 ![screenshot_7KYC~NGB}BC[0V)@KX]O467.png](https://oss-club.rt-thread.org/uploads/20221022/059792d610ed51cb665d71dde5907174.png.webp) ## 4. uart9配置 ![screenshot_$]X7IXH8_UHG{PAT2`P`MND.png](https://oss-club.rt-thread.org/uploads/20221022/2208db5e42ace49f1f75f1daa15d3046.png.webp) ![screenshot_Z%`1DH]Q2K6{K(~W`XQVE40.png](https://oss-club.rt-thread.org/uploads/20221022/780838bb40b953f3a0aa97e7d80048f1.png.webp) ![screenshot_[3NB]IO(950AAL58BH]QZLK.png](https://oss-club.rt-thread.org/uploads/20221022/0d43edf01178e904a0c60a73075e3be6.png.webp) ## 5. PWM配置 P501对应GPT2--GTIOC2B。 ![screenshot_)`1II`VD(``)]Y(CS3KUKOV.png](https://oss-club.rt-thread.org/uploads/20221022/0de347d98d6fcae3bcb783ef3053af54.png.webp) ![screenshot_%32C82SZ]IPO3WS63$C3]%L.png](https://oss-club.rt-thread.org/uploads/20221022/3db08359cd8a7ad7437e3e6b177ec5f6.png.webp) ## 6. 保存退出menuconfig 连续按下esc键,保存退出menuconfig。 ## 7. 替换4个文件 从**gitee**下载的工程目录XXX\rt-thread-gitee_master\tools下拷贝building.py、keil.py、menuconfig.py、options.py替换**github**下载的目录XXX\rt-thread-master\tools的相同文件。 ## 8. 生成mdk5工程 在Env环境先后运行pkgs —update、scons –target=mdk5。 ![screenshot_$J]T32ELH3ESJH(%DO8DTBD.png](https://oss-club.rt-thread.org/uploads/20221022/fdc1257037525e674eb9cef6733e6d74.png.webp) ## 9. MDK工程修改 打开工程下的project.uvprojx,在Options for Target 中进入RA Configuration。 ![screenshot_4YN3OKP~Z_$LUW8AMA%B`WB.png](https://oss-club.rt-thread.org/uploads/20221022/7783ba047a38e58f76fe1998fd9ef89e.png.webp) ## 10. RA Configuration配置 pin-PWM 配置: ![screenshot_C[M1HA%%B{6~KV91E_9{6]I.png](https://oss-club.rt-thread.org/uploads/20221022/8d740691d86e2333a96928a4e051dddf.png.webp) stack-PWM配置: ![screenshot_41YFLC@IO)~Y)P])GPPK$W0.png](https://oss-club.rt-thread.org/uploads/20221022/26ea5bd6cc2d1bf131b5ccd78843b6cb.png.webp) ![screenshot_5JB{87_[72E4E51P877[]PE.png](https://oss-club.rt-thread.org/uploads/20221022/c4e041dd065704721909ac70eba5dc20.png.webp) pin-uart9: ![screenshot_$4QFB5I20YPGRY7UCZ`E0TK.png](https://oss-club.rt-thread.org/uploads/20221022/513e4a4baa08073c145c69bbc131ddd0.png.webp) stack-uart9: ![screenshot_}PM68MGMX3VI%]X5WX_P0QF.png](https://oss-club.rt-thread.org/uploads/20221022/3de00df14619961aad44481568880f57.png.webp) pin-LED配置,并生成工程: LED1对应P502。 ![pin_led1.png](https://oss-club.rt-thread.org/uploads/20221022/39cda04571b10df36aa0fa0c4afffde4.png.webp "pin_led1.png") ## 11. Keil下编译无错误,添加程序功能 修改 hal.entry.c。 ```c #include
#include "hal_data.h" #include
#define LED1_PIN "P502" /* Onboard LED pins */ #define USER_INPUT "P004" uint16_t i=0,dir=0,pwmValue=0; void hal_entry(void) { rt_kprintf("\nHello RT-Thread!\n"); rt_uint32_t led1_pin = rt_pin_get(LED1_PIN); R_GPT_Open(&g_timer2_ctrl, &g_timer2_cfg); rt_thread_mdelay(10); (void) R_GPT_Start(&g_timer2_ctrl); rt_thread_mdelay(10); R_GPT_PeriodSet(&g_timer2_ctrl, 4800); rt_thread_mdelay(10); R_GPT_DutyCycleSet(&g_timer2_ctrl, 10, GPT_IO_PIN_GTIOCB); rt_thread_mdelay(10); rt_kprintf("\nLED1 Toggle 2 times !\n"); for(i=0;i<2;i++) { rt_pin_write(led1_pin, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(led1_pin, PIN_LOW); rt_thread_mdelay(500); } rt_kprintf("\nLED2 Breath !\n"); while (1) { if(dir==0)pwmValue+=10; else pwmValue-=10; if(pwmValue>=1000)dir=1; else if(pwmValue==0)dir=0; R_GPT_DutyCycleSet(&g_timer2_ctrl, pwmValue, GPT_IO_PIN_GTIOCB); rt_thread_mdelay(20); } } void irq_callback_test(void *args) { rt_kprintf("\n IRQ03 triggered \n"); } void icu_sample(void) { /* init */ rt_uint32_t pin = rt_pin_get(USER_INPUT); rt_kprintf("\n pin number : 0x%04X \n", pin); rt_err_t err = rt_pin_attach_irq(pin, PIN_IRQ_MODE_RISING, irq_callback_test, RT_NULL); if (RT_EOK != err) { rt_kprintf("\n attach irq failed. \n"); } err = rt_pin_irq_enable(pin, PIN_IRQ_ENABLE); if (RT_EOK != err) { rt_kprintf("\n enable irq failed. \n"); } } MSH_CMD_EXPORT(icu_sample, icu sample); ``` # 六 测试效果 程序下载后,LED1亮灭2次后,LED2进入呼吸灯状态。 串口显示如下: ![screenshot_1F9BQ})R(924`0N0ETXT}AB.png](https://oss-club.rt-thread.org/uploads/20221022/0fca97951f80f365e94dff654b17307d.png) P501口波形: ![pwm-10khz.png](https://oss-club.rt-thread.org/uploads/20221022/f5a1072d649675f7e3f221be2c5fd539.png.webp "pwm-10khz.png") 测试代码工程。 链接:https://pan.baidu.com/s/1Ci6I1bKQLZQUJ_XajqK5yw 提取码:6ivb
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
iCheck
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
rt thread 2.0.2 usart 接收缓存问题
2
关于STM32串口通信的问题
3
STM32F1+RTT串口接收终端数据丢失问题
4
UART TX丢数据?
5
RTT打开串口的时候如何自定义波特率呢?
6
STM32F4的USART数据接收问题
7
串口1234使用问题
8
串口接收回调函数
9
LPC18xx UART问题讨论
10
x1000串口配置的失败问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
812
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部