赤心木zqw
获得 703 次赞
帮助过644人
可以分为定长和不定长两种:定长:规定通讯协议,每次发送接收数据的长度是一定的,以分包的形式传输数据。这种方式适合数据量不多,长度较为统一的场合。不定长:又分为有通讯协议,无通讯协议:有通讯协议:比如规定结尾用回车"\r\n"结尾,当收到“\r”时判断下一帧是否“\n”,如果是,则为结束标志,这种方式适合主要为文本传输场合;无通讯协议:一般波特率是固定的,传输数据又是连续的,所以当超过一定时长没有接收到数据,则可判断为数据完成一次传输,这种方式稍微会延迟,适合对实时性要求不高的应用。
串口上的流控,增加了串口的稳定性:流控接口为:DTR:提醒接收方数据已准备好;DSR:通知发送方数据已准备好;RTS/CTS:发送接收双发目前是否可以接受\发送数据。
如果使用的是STM32 HAL库的话,可以用HAL_TIM_PWM_Stop函数。不过要注意该函数中最后还是禁用了Timer,所以要把禁用的那句disable一下。另外,是否有其他定时器,如果只是简单的定时任务,可以把定时任务交给这个空闲的定时器,一个定时器不要干太多事情,不然容易出现混乱。