单片机与PC机的出口助手通信

[复制链接]
2258|5
 楼主| cshij2009 发表于 2012-6-7 18:24 | 显示全部楼层 |阅读模式
我的程序是这样设计的:单片机接收串口助手发送过来的数据。在单片机程序中,有一个按键中断的程序,按键之后,开接收中断,允许接收数据,在接收中断的程序中,接收一个字节数据,接收完成关闭中断,等待下一次按键开接收中断。
我现在的问题是:在串口助手发送区写入  0X01  0X02  0X03 ,手动发送,当我按键之后,让串口助手发送一次数据,单片机那边显示 0X01。这个时候,我想让单片机再次接收数据,那么我要按键,开接收中断,可是我按键之后,没有点击串口助手的手动发送(及串口助手没有发送数据),单片机那边显示了  0X03。单片机这边显示的都是我在发送区写入的最后字节的数据。
NE5532 发表于 2012-6-7 20:39 | 显示全部楼层
研究你用的单片机串口是否是双缓冲结构,这个问题非常有趣,如果我的猜测是正确的,楼主又想通了的话,就可以上一个台阶了。
 楼主| cshij2009 发表于 2012-6-8 09:18 | 显示全部楼层
2# NE5532 我的芯片是msp430f149,在串口模块中,有一个接收移位寄存器和一个接收缓冲寄存器,这是不是双缓冲结构呢?
 楼主| cshij2009 发表于 2012-6-8 11:29 | 显示全部楼层
2# NE5532 在我每次按键的时候,清除接收缓存寄存器就可以啦。可是现在问题是:我按键之后,单片机等待接收四个字节,串口助手手动发送数据 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08,单片机我接收到的数据是 :0x01 0x02 0x04 0x05;或者0x01 0x03 0x04 0x05 ;或者0x01 0x04 0x05 0x06
 楼主| cshij2009 发表于 2012-6-8 18:12 | 显示全部楼层
2# NE5532 我用的单片机确实是双缓冲结构。你太厉害啦  !!!
NE5532 发表于 2012-6-8 22:17 | 显示全部楼层
呵呵,提示楼主,后面来数覆盖第一级缓冲,第二级缓冲装的是第一个字节的数据,猜的,楼主继续找证据。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

73

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部