Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
GPIO
UART
瑞萨_RA6M4
【开发板评测】Renesas RA6M4开发板之UART、GPIO
发布于 2022-03-25 22:22:29 浏览:946
订阅该版
感谢RT-Thread和Renesas给我这次评测的机会,我测评的部分是UART、GPIO和IIC(软件)。 这次先做的是 GPIO口和UART,使用串口去控制LED3。 **1.新建工程** 创建工程就不用多说了,[创建工程参考链接](https://mp.weixin.qq.com/s/phEV5jGjTOoe7Y0ihI6ftg) **2.GPIO的控制编写** 在ra_gen文件下面创建led.c和led.h文件 ![image.png](https://oss-club.rt-thread.org/uploads/20220325/af8213eec62320c418f95b95732a7214.png) led.c文件代码,先设置GPIO模式,然后设置电平。RT已经封装好函数只需要调用就行了,非常方便。 ![image.png](https://oss-club.rt-thread.org/uploads/20220325/22dcc611670900f9ea2dc958ec9873a4.png) **3.串口使能** **在fsp中设置相关参数** ![image.png](https://oss-club.rt-thread.org/uploads/20220325/34a0bde241df8fe754f7263c1ed0ba39.png.webp) 点击New Stack 新增uart0,然后在RA Smart Configurator的pin页面,选择SCI0,配置为Asynchronous Uart模式,选择好相应的发送、接收引脚。 ![image.png](https://oss-club.rt-thread.org/uploads/20220325/7f8baaf3f3a209cce981e12a793f4230.png) 修改callback函数为:user_uart0_callback,否则rt-thread的drv_usart_v2.c会编译出错,提示找不到user_uart_callback ![image.png](https://oss-club.rt-thread.org/uploads/20220325/597cd36de0e4a77d73f042f58005a113.png.webp) 配置完成,点击RA Smart Configurator有上角的 generate project content,即可自动生成并同步ra6m4的uart0的相关引脚配置和驱动到rt-thread studio项目了。 **rt-thread studio中配置** ![image.png](https://oss-club.rt-thread.org/uploads/20220325/9224c1897a566ad1cd34f1ab11b05126.png) **3.UART代码** ``` #include "uart.h" /* 用于接收消息的信号量 */ static struct rt_semaphore rx_sem; static rt_device_t serial; /* 接收数据回调函数 */ static rt_err_t uart_input(rt_device_t dev, rt_size_t size) { /* 串口接收到数据后产生中断,调用此回调函数,然后发送接收信号量 */ rt_sem_release(&rx_sem); return RT_EOK; } static void serial_thread_entry(void *parameter) { char ch; while (1) { /* 从串口读取一个字节的数据,没有读取到则等待接收信号量 */ while (rt_device_read(serial, -1, &ch, 1) != 1) { /* 阻塞等待接收信号量,等到信号量后再次读取数据 */ rt_sem_take(&rx_sem, RT_WAITING_FOREVER); } /* 读取到的数据通过串口错位输出 */ ch = ch + 0; if(ch=='1') { led3(1); } if(ch=='0') { led3(0); } rt_device_write(serial, 0, &ch, 1); } } int uart_sample(void) { rt_err_t ret = RT_EOK; char uart_name[RT_NAME_MAX]; char str[] = "hello RT-Thread!\r\n"; rt_strncpy(uart_name, SAMPLE_UART_NAME, RT_NAME_MAX); /* 查找串口设备 */ serial = rt_device_find(uart_name); if (!serial) { rt_kprintf("find %s failed!\n", uart_name); return RT_ERROR; } /* 初始化信号量 */ rt_sem_init(&rx_sem, "rx_sem", 0, RT_IPC_FLAG_FIFO); /* 以读写及中断接收方式打开串口设备 */ rt_device_open(serial, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX); /* 设置接收回调函数 */ rt_device_set_rx_indicate(serial, uart_input); /* 发送字符串 */ rt_device_write(serial, 0, str, (sizeof(str) - 1)); led_init(); /* 创建 serial 线程 */ rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL, 1024, 25, 10); /* 创建成功则启动线程 */ if (thread != RT_NULL) { rt_thread_startup(thread); } else { ret = RT_ERROR; } return ret; } ``` 采用的是Rt的串口例子,个人将LED3加入进去,通过串口控制led3.
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
tanzhouqiang
这家伙很懒,什么也没写!
文章
6
回答
3
被采纳
0
关注TA
发私信
相关文章
1
drivers- pin
2
bsp 里面的drivers/gpio.c 少了一个功能
3
stm32f407移植RTT中gpio设备驱动问题
4
config PB4(NJTRST) to GPIO
5
RT-Thread的GPIO设备驱动问题
6
关于pin.c文件中语句可能出现的bug
7
RT-Thread学习笔记--线程创建与官方Pin设备驱动调用
8
【应用笔记】小白也能玩转RT-Thread之通用GPIO设备【官方出品
9
串口引脚定义中的GPIO_Pin_sources是社么意思?
10
RTT -GPIO 使用例程
推荐文章
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在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部