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;
本文来自博客园,作者:伽椰子真可爱,转载请注明原文链接:https://www.cnblogs.com/jiayezi/p/17752241.html