RT-Thread uart2串口dma idle接收不断帧

      最后更新:2022-06-23 12:02:37 手机定位技术交流文章

      硬件STM32F407,IDE使用RT-Thread Studio。

      uart2字符串使用两个参数:

      功能 IO端口
      UART2-TX PA2
      UART2-RX PA3

      UART2 - DMA接收配置

      • 首先让DMA接收, 然后RX缓冲器可以稍大一些.
        在这里插入图片描述

      • 在h中添加一个宏来启用RX_DMA。
        在这里插入图片描述

      • 现在板子打开了,顺便说一下,把钟源换成外部晶化。
        在这里插入图片描述

      • 编译UART2DMA接收测试代码。

      • 接收事件发生后,它触发回调。 记录接收的消息的长度并发送信号的数量。 接收信件数量后,开始执行后续任务,调试接收的输出的长度和内容。
        main.c


      编译错误解决

      • 编译后,将报告错误,例如丢失的文件。

      • 修改RTT源,添加丢失的头条。
        在这里插入图片描述

      • 重新配置交叉编译器包含目录,并添加以下内容:

      在这里插入图片描述

      • 添加目录时请使用工作空间使用路径是相对工程文件的路径(文件系统指的是磁盘的绝对路径,复制过程必须重新配置)
        在这里插入图片描述

      运行测试RXDMA接收,解决帧断裂

      • 接收是正常的,但是当接收的帧具有较长的字节数时,打破一个帧是非常容易的。
        在这里插入图片描述

      • 如何解决帧断裂我指的是这个,它对于实际测量是好的:
        使用RT-Thread的闲环+DMA接收和传输数据

      • 呼叫 drv_usart.c. 注意这两个句子。
        在这里插入图片描述

      • 编译验证确认在上述修改后没有帧断裂.

      • 但当接收的帧比缓冲空间大时,前面的内容被覆盖。 因此,当硬件允许时, theuart rx缓冲区可以设置更大。

      • 测试发送了270字节的帧,当缓冲区为256字节时,只接收14字节,并覆盖上面的内容。
        在这里插入图片描述
        在这里插入图片描述

      学习RT-Thread

      • 官方应用实例,演示:文档中心
      • API文档:RT-Thread API参考手册
      • IDE使用RT-Thread Studio,允许在B站上查看初级教程。

      我没有计划自己学习RT线程,但在MCU驯化替代过程中,发现,大多数IC制造商提供非常有限的支持,可以说,近来几乎所有的仿真都用STM32作为蓝图进行,隐藏的地雷不是建议通过个人搜索解决的。此外,大多数工厂的展示都是裸体的,很少有RTOS的。因此,我想到了自家制的RT-Thread。

      尝试RT-Thread Studio感觉不错,MCU的外部驱动程序不需要用户注意,还有更多的扩展组件,开发人员可以熟悉基于RT-Thread的,专注于应用的开发。它对国内的MCU的支助正在逐步改善,AT32, APM32, CH32, ES32, GD32, MM32等。虽然只支持部分模型,但目前,个人只意味着AT32F403A,它碰巧有一个芯片支持包。我希望国内的商工会抓住这个机会,改变潮流,抓紧完善生态,否则,随着价格下跌,大量人将返回STM32。望疫情早些过去,想想三年前的芯片的价格。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/28158.html

          热门文章

          文章分类