关于RT-Thread多串口,不能使用或中断冲突卡死的问题
MPU:STM32F103RCT6 使用正点原子编写的RTT的串口驱动包,工程用到的串口是USART1和UART5,USART1作为控制台输出,UART5作为其他外设的通信。
首先来解释一下下面一句,这句讲的是设置哪个串口作为控制台输出,但是只允许其中一个串口能够使用。
#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)rt_console_set_device(RT_CONSOLE_UART1DEVICE_NAME);
#endif
我在调试过程中遇到,当我将UART5也设置成控制台时,发现串口的发送都能成功,但是接收的话,根据设置控制台输出的串口顺序有关系,放在后面设置的能够进入接收中断,放在前面的则不能进入接收中断。这里是不要添加其他设备的。
解决方法,我在rt_hw_usart_init这个函数中这样编写的。
前面的代码省略...uart5->parent.init = rt_uart_init;uart5->parent.open = rt_uart_open;uart5->parent.close = rt_uart_close;uart5->parent.read = rt_uart_read;uart5->parent.write = rt_uart_write;uart5->parent.control = RT_NULL;uart5->parent.user_data = RT_NULL;uart5nvic_configuration(uart5);***rt_device_register(&uart5->parent, "uart5", RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX );//打开串口5if(rt_device_find("uart5")!=RT_NULL){ rt_device_open(rt_device_find("uart5"), RT_DEVICE_OFLAG_RDWR);}***
关键看这里,其实不过是Linux平台下的所有内容即文件的看法,我们在操作某个设备时第一个动作就是要打开,只有打开才能使用,也不会和控制台输出的串口起冲突。
话语并不太专业,供自我以后参考,有兴趣的伙伴也可以参考,看能不能给你啥解决问题的灵感。
关于RT-Thread多串口,不能使用或中断冲突卡死的问题相关推荐
- 安利一个适合调试rt thread的串口助手软件
本文由RT-Thread论坛用户@fhqmcu 原创发布:https://club.rt-thread.org/ask/article/3142.html 串口助手是单片机开发,ARM开发的必用工具, ...
- RT Thread Free Modbus移植问题整理
RT Thread Free Modbus移植问题整理 问题描述: 在读写寄存器中,写数据正常,只能读1个寄存器的值,多个值会异常. 在移植过程中发现串口(或RS485)数据接收长度异常. 一.环境描 ...
- RT Thread之 Uart2 操作
官网连接:https://docs.rt-thread.org/#/rt-thread-version/rt-thread-standard/programming-manual/device/uar ...
- RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程
(1)RT Thread利用STM32CUBEMX来创建模板工程 1.参考文档: 基于 CubeMX 移植 RT-Thread Nano:RT-Thread 文档中心 注意:串口2必须使能异步模式(启 ...
- stm32f407单片机rt thread 片外spi flash OTA升级配置示例
参考地址https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/ 第一步,生成Boot ...
- RT Thread Studio 配置IIC并读取AS5600角度
RT Thread Studio 配置IIC并读取AS5600角度 一.RT Thread Studio 配置IIC 1.在RT Thread Seting 中开启IIC功能 并保存 一定要保存才能更 ...
- 基于GD32F103C8T6添加RT Thread nano设备框架并添加串口设备(以控制台console( uart0 )为例)
最近没事琢磨了一下使用设备框架的问题.因为将串口注册到设备框架可以应用十分丰富的软件包. 于是就整理了一下手上的工程,重新将工程梳理了一遍. 像这样是十分清爽了,其中RTOS是操作系统源代码 并且学习 ...
- 关于RT thread系统节拍时钟的配置
关于RT thread系统节拍时钟的配置 -----本文基于rt-thread-3.1.3版本编写 首先,使用RTthread OS时,要配置(或者明白)它的系统节拍 ...
- rt thread studio使用QBOOT和片外flash实现OTA升级
我们这里要使用单片机外部flash作为OTA的下载分区,外部flash硬件连接关系 PB3-->SPI3_CLK PB4-->SPI3_MISO PB5-->SPI3_MOSI PE ...
最新文章
- Go 语言编程 — gorm ORM 框架
- [导入]TreeView的级联选择(上)
- 成就连自己都惊讶的未来
- UITableView 滑动删除
- gzip、bzip2和tar
- qq机器人自动回复带脚本可以实现吗_python一个神奇的第三方库:QQ自动聊天
- give girls more options to choose
- SpringBoot中使用Redis数据库
- Go基础编程:格式化输出、类型转换、类型别名
- dealloc时取weakself引起崩溃
- innobackupex实现导出和导入单张表
- HDU1230 火星A+B【进制】
- 声卡性能测试软件,RightMark Audio Analyzer音频声卡测试软件
- 公司年终总结新年计划PPT模板
- SendMessage功能(中规中矩)
- 在csdn中,如何获取积分
- 李笑来和 stormzhang,其实是一类人
- 怎么将做个文件做成二维码?扫描二维码展示文件怎么做?
- java基础(三) IDEA使用与多线程编程
- 大数据时代的特种兵——阿里数据产品团队