模拟串口
串口默认的1byte数据格式为(暂不考虑校验位):1bit起始位+8bit数据位+1bit停止位,起始位(S)为低电平,停止位(T)为高电平。具体格式如下图所示
若波特率为9600,每s传输9600Bd。二进制下波特率等于比特率。则可看成每s传输9600bit。
1/9600 = 104 us 每104us发送1bit
定时器配置为104us触发一次,进入定时器中断。
下面以发送1bit START + 1byte DATA + 1bit STOP数据为例
若为发送数据,每104us发送一个bit(即进入TIM中断发送) 则:
先发送START位,为低电平
再发送8bit的数据
最后发送STOP位,为高电平
若为接收数据,则:
在TIM中断函数中判断RX引脚的电平
平时RX为高电平,若检测到RX为低电平,则表示串口收到数据,开始接收模式。
将START位后的8bit数据接收放入BUFF中。