lkc8210 发表于 2021-7-6 17:34 哈哈,没注意到你中断里面嵌套的函数,不过问题仍然是同一个性质的,你确定串口只发送了一个字节,或者阶段时间内的最后一个字节是你想要的? |
robinsonlin 发表于 2021-7-6 17:26 2. P0口会在收到串口中断(39行)后更新(26行) |
Gideontro 发表于 2021-7-6 16:00 不知道该如何回复你了。 我把我能够看到的错误先列出来,你自己慢慢体会吧。 1. 你这个串口通讯, 通讯源在哪里? 波特率是多少? 9600,还是19200? 2. 你的主程序中,P0口赋值一次后,就循环等待了, 你确定上电的瞬间就能接受到数据? 你这是通过按键在跟电子比快么? |
请看图片![]() |
可以检查晶振电容是否是大于33pf |
串口用哪个定时器做波特率,9成是定时器没有处理好,导致溢出。 表象就是偶尔又可以,大部分时间不工作。 |
程序没问题的,因为有时候能运行成功,但是断电再接就可能不运行程序 |
像这种初学者的实验 尽量每个单片机加一个可视的东西 最常见的是加一个闪烁灯 起码可以判断单片机有没有正常运转 本来就是看不到的东西再猜来猜去凭白给自己填加障碍 |
1.晶振离单片机尽量近一下。 2.建议装上指示灯进行观察。 3.程序上传看一下有无问题。 |
晶振太远了吧 |
感觉是虚接 |
复位脚对地加个电容试试 |
是两个单片机串口通信的程序 |