RT-Thread 正点原子阿波罗STM32F429IGT6 GPIO模拟串口

参考文章:STM32之IO模拟串口

硬件环境:正点原子STM32F429IGT6阿波罗开发板;

软件环境:RT-Thread4.0.3实时操作系统;

需要使用到两个空闲GPIO引脚,这里我使用的是GPIOD11(TX)与GPIOD12(RX),使用一个定时器TIM2控制TX的时序,当RX产生外部中断时开启TIM5对数据进行接收;

 

USART简介:

串口时序括:起始位、数据位、校验位、停止位、空闲位;

起始位:由高电平跳变为低电平,且持续1个bit位宽度,表示起始信号;

数据位:数据位的个数可以由用户自己决定,一般默认为一字节,即8bit,数据位的发送遵循先低后高的原则,如需发送数据0x63,其二进制表示为:0110 0011,从低位往高位发送为:1100 0110;

校验位:校验方式包含奇校验、偶校验、无校验等;

停止位:数据线拉高为高电平,持续1个或1.5个或者2个bit宽度;

空闲位:当串口处于空闲状态时,RX与TX两根数据线均均为高电平;

另外,串口还有个很重要的概念:波特率

波特率是指每秒钟在数据线上传输bit位的个数,通信双方必须保持相同的波特率才能够顺利收发数据,如当前波特率为9600bps,则意味着每秒可传输9600个bit,而传输1bit所需时间为 1 / 9600 = 104us;

 

posted @ 2023-10-09 17:14  伽椰子真可爱  阅读(21)  评论(0编辑  收藏  举报