串口通讯问题..

2020-02-04 09:22发布

最近为一个串口的问题苦恼了很久.
要求是这样的:
1、上位机有开始和停止2个按键,按下开始 会给单片机发送0xAA,0x30,0x00,0x00,0x7E  按下停止会给单片机发送0xAA,0x31,0x00,0x00,0x7E
2、上位机有1个温度显示..温度值显示命令(假设水温为10℃):0xAA,0x10,0x00,0x0a,0x7E(0x10和0x7e中间2位数为温度值)
3、要求按下开始后,点亮1个led灯,上位机温度显示每分钟上升5度,按下停止后 led灯熄灭 上位机温度显示每分钟下降5度

我就是发送和接收可以单独写,写在一起就只能接收上位机命令而发不出去命令了。求大大们帮忙

补充内容 (2012-3-27 07:05):
代码和图片请看6和7楼..
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
mey
1楼-- · 2020-02-05 11:35
大家帮帮忙吧
xue2003265029
2楼-- · 2020-02-05 13:24
本帖最后由 xue2003265029 于 2012-3-31 13:32 编辑
bit New_rec = 0, Send_ed = 1, Money = 0;
uchar i,k;

这里i,k应初始化为零。

建议串口中断服务程序ISR改为

void serial_0(void)  interrupt 4   
{
      if(_testbit_(RI))  // 接收
     {
          ……       
     }

    if(_testbit_(TI))   // 发送
    {       
            ……       
       
      }
}


还有在串口中断RI 、TI标志,在串口中断服务程序ISR中会自动清零,因此程序中不必加RI=0,TI=0

一周热门 更多>