文章目录[隐藏]
1、配置选用的串口
在kconfig文件中增加ENV的串口选项,这边选择的是uart2
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART2
bool "Enable UART2"
default n
config BSP_UART2_RX_USING_DMA
bool "Enable UART2 RX DMA"
depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
default n
endif
在ENV中选择上UART2
按照Kconfig的配置,应该只有UART2,上图是我截取的其他工程,所以有多个串口,这个不影响。
2、配置串口对应的管脚
打开对应的cunbemx文件,将串口2配置到对应的管脚,我这边选择的是PA2和PA3
然后重新生成cubemx的工程文件,现在配置已经完成
3、简单测试
#define SAMPLE_UART_NAME "uart2" /* 串口设备名称 */
static rt_device_t serial; /* 串口设备句柄 */
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; /* 初始化配置参数 */
char str[] = "hello RT-Thread!\r\n";
static int uart_test(void)
{
/* step1:查找串口设备 */
serial = rt_device_find(SAMPLE_UART_NAME);
/* step2:修改串口配置参数 */
config.baud_rate = BAUD_RATE_9600; //修改波特率为 9600
config.data_bits = DATA_BITS_8; //数据位 8
config.stop_bits = STOP_BITS_1; //停止位 1
config.bufsz = 128; //修改缓冲区 buff size 为 128
config.parity = PARITY_NONE; //无奇偶校验位
/* step3:控制串口设备。通过控制接口传入命令控制字,与控制参数 */
rt_device_control(serial, RT_DEVICE_CTRL_CONFIG, &config);
/* step4:打开串口设备。以中断接收及轮询发送模式打开串口设备 */
rt_device_open(serial, RT_DEVICE_FLAG_INT_RX);
/*发送数据*/
rt_device_write(serial, 0, str, (sizeof(str) - 1));
return 0;
}
版权声明:本文为CSDN博主「Dwyer1908」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zbz159357/article/details/121514401
暂无评论