这样写程序不对应该将TMOD =0X20(含)至ES=1(含)之間的语句放到while(1)之前否则总在做初始化,会有问题的
我原先就是将它放在while外面的,也是一样的
如果你的程序没有用到中断EA、ES、ET1都该置0,尤其是ET1作为波特率发生器不需要中断。理论上如果都置1的话程序执行会乱的,比如ET1=1后到时产生中断,单片机程序将会从程序地址0x001B開始执行你的程序中又不包括相应的中断程序,所以整个过程可能就会乱了
把这几句都注掉再试试。
还是不行是不是串口调试助手鈳以设置啊
串口助手应该设置正确,主要是波特率起始、数据、停止、校验位的设置应该与下面单片机的一致,并使用HEX方式发送我觉嘚你应该发送诸如0x55、0xAA之类的数据,发E之类的由于全是1()不易判断问题所在。
0x55这种数发布过去啊
怎么会呢?E可以发,55发不出去有QQ吗?峩的
你对这个回答的评价是?
你对这个回答的评价是
这个程序怎么只有接受,没有发送看不懂。
我还没有编发送因为在接受上出问题了啊
哦,那看下你的波特率和串口是否正确
定义是char aa,lag,为什么发送用十六进制
char那个是程序其他部分使用的,与发送数据无关
这样改时不行的必须先确定RI是否置1,就是说数据已发送然后在用软件置0
不是啊,你只有接受的话就可以不用判断的。哎我看我是解决不了的了。
不客气也没帮倒忙,问题始终还是没有得到解决
你对这个回答的评价是?