STM32基于Rt-thread3.12系统的串口通讯
前言 STM32的串口收发可以说是对这个芯片学习的一个基础,相信接触过STM32的朋友首先学会的就是它的GPIO和USART。对GPIO和串口初始化的操作我在这里不做赘述,这些在STM32的例程里面很容易找到学会。我们在这里重点介绍STM32的串口中断接收,以及在RTT系统中我们如何把串口device注册到系统的对象容器里。 关于RT-Thread3.12系统 作为国产小型嵌入式系统中的翘楚,RTT也是被大多数产品所使用。我参与的这个项目RTT的主要工作就是多线程调度和串口device的控制。对于线程的调度先不详细说明,我们这里只介绍串口通讯一个线程的东西。 RTT对象 在 RT-Thread中,所有的数据结构都称之为对象。 其中线程,信号量,互斥量、事件、邮箱、消息队列、内存堆、内存池、设备和定时 器在 rtdef.h 中有明显的枚举定义,即为每个对象打上了一个数字标签。我们这里的对象就特指设备,而我们的设备就特指串口。 那么我们使用这个对象有什么用处呢,我私以为有两个最大的用处,一是有利于设备管理,二是基于程序安全考虑。我使用这一功能的时候基本与第一个用处不沾边,因为我们就一个串口设备。主要还是基于安全的考虑才使用RTT对象。 使用系统的对象也就是把硬件驱动注册到系统中,让系统对就硬件进行操控,我们再通过系统操控硬件。 串口注册到系统