单片机和上位机通信的问题...

[复制链接]
4248|9
 楼主| ningling_21 发表于 2011-11-9 21:53 | 显示全部楼层 |阅读模式
MCU和上位机通信。
通信使用串口0,(此MCU有两个串口)
通信过程为:一问一答  。(上位机定时发送一字节数据,MCU收到后返回一字节数据)
串口接收用中断接收。

故障现象:不定时的出现 一问不答的情况。

经调试,排除其它中断如定时器,串口1,中断的影响。
PS:程序使用了RTX51操作系统,串口通信占一个任务。
西安农民工 发表于 2011-11-9 22:20 | 显示全部楼层
做一个统计变量,放在接收中断中,然后定时的将这个变量值传上去,看看是不是没有收到上位机发来的消息
hotpower 发表于 2011-11-9 23:30 | 显示全部楼层
自环测试看看
ayb_ice 发表于 2011-11-10 08:03 | 显示全部楼层
检查接收程序,是否可能有丢失数据的情况,再检查应答程序...
 楼主| ningling_21 发表于 2011-11-16 21:20 | 显示全部楼层
经过几天的奋战问题已找到,但不知如何解决。
引起故障的几条语句贴出:
ADC_gate++;       //ADC转换通道加1
if( ADC_gate>5)  //6路ADC转换
{
     ADC_gate=0; //通道归0
}

只要把这几行注释掉,通信恢复正常,加上就会偶尔“丢包” 。。。。。。
这几行却是不能去掉的。
百思不得其解。。。。
 楼主| ningling_21 发表于 2011-11-17 15:02 | 显示全部楼层
ADC通道的转换盒串口通信两者是不相干的,怎么会影响呢?
期待ING......
yrch0416 发表于 2011-11-18 14:37 | 显示全部楼层
AD转换多长时间发生一次?是不是AD转换太频繁了
hotpower 发表于 2011-11-18 14:45 | 显示全部楼层
这几句在任务里还是在中断里?
 楼主| ningling_21 发表于 2011-11-18 14:48 | 显示全部楼层
8# hotpower

在任务里,每进行10次AD转换就换一个通道...
 楼主| ningling_21 发表于 2011-11-18 14:50 | 显示全部楼层
7# yrch0416

AD由定时器定时启动(3MS一次),在任务里查询转换完毕与否。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5015

主题

17845

帖子

51

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