打印

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

[复制链接]
3426|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 | 只看该作者
检查接收程序,是否可能有丢失数据的情况,再检查应答程序...

使用特权

评论回复
5
ningling_21|  楼主 | 2011-11-16 21:20 | 只看该作者
经过几天的奋战问题已找到,但不知如何解决。
引起故障的几条语句贴出:
ADC_gate++;       //ADC转换通道加1
if( ADC_gate>5)  //6路ADC转换
{
     ADC_gate=0; //通道归0
}

只要把这几行注释掉,通信恢复正常,加上就会偶尔“丢包” 。。。。。。
这几行却是不能去掉的。
百思不得其解。。。。

使用特权

评论回复
6
ningling_21|  楼主 | 2011-11-17 15:02 | 只看该作者
ADC通道的转换盒串口通信两者是不相干的,怎么会影响呢?
期待ING......

使用特权

评论回复
7
yrch0416| | 2011-11-18 14:37 | 只看该作者
AD转换多长时间发生一次?是不是AD转换太频繁了

使用特权

评论回复
8
hotpower| | 2011-11-18 14:45 | 只看该作者
这几句在任务里还是在中断里?

使用特权

评论回复
9
ningling_21|  楼主 | 2011-11-18 14:48 | 只看该作者
8# hotpower

在任务里,每进行10次AD转换就换一个通道...

使用特权

评论回复
10
ningling_21|  楼主 | 2011-11-18 14:50 | 只看该作者
7# yrch0416

AD由定时器定时启动(3MS一次),在任务里查询转换完毕与否。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5013

主题

17741

帖子

51

粉丝