msp430f149 单片机间uart通信 主从间握手的问题
主机(M),从机(S)。按照现有的通信协议,M向S发送8字节的数据包P,S在收到P后会立即回复握手H。我想把从机回复的握手H,写入M的内存,后续程序会读取这条H的8个字节。数据包的格式有特殊的字头(head)和字尾(tail)。现在为了保证M和S间每次握手后,M的缓冲内存里能够按照预期有序的接收H的8个字节,我在M的8个uart0接收中断后,用下面的伪代码保证可靠的接受:
while(!(字头 == head &&字尾 == tail)) {
发送数据包P;
延时10毫秒;//在这里设想,给从机S回复预留足够的时间,并让主机M进8次有效的接收中断
//主机M的接收中断服务程序中,依次向内存中写入H的八个字节
}
主机M处理从机S发来的H;
这样写我个人觉得没什么问题,可现在程序写到开发板上后,有时能达到我预期的效果。但是更多时候从串口调试工具里观察单片机好像是突然间崩溃了,PC机的窗口里看到主机M极快速的(周期10ms?)发送数据包P的数据。
是不能按这样的方式在430单片机里写还是这种方式本身就有问题?
uart相关寄存器配置部分之前已经用简单的程序验证过,应该没什么问题,波特率是9600。
页:
[1]