| 你的定时器使用不合理。定时器0中断1ms用于按键扫描没问题,也可以设置一个变量累加到5000输出一个5秒标志。在主函数中查询5秒标志再读1820和串口发送。定时器1用做波特率发生器,切不可开定时器1中断,否则会乱套。 |
yzwzfyz 发表于 2023-6-8 08:17 好的,我再看看 |
123156fsadf 发表于 2023-6-8 09:29 好的,我试试 |
火鸡味锅巴qwq 发表于 2023-6-8 08:56 串口1也是用的定时器1吧,你这样应该是有问题的。 |
火鸡味锅巴qwq 发表于 2023-6-8 08:56 不要放在定时器中发送咯,在main中读温度和发送 |
mtdzok 发表于 2023-6-8 08:40 100,图中的已经改过了,还是会出现问题 |
| 你要5秒执行1次,请问5秒=多少毫秒 |
|
1、你对中断响应的条件,未搞清楚。 2、你的串行通讯的时序未搞清楚。 这就是原因,补补课吧。 提示:串口发送一个字节需要多少时间?你一共发送了多少字节?要用多少时间?在此时间内,T1会发生多少次溢出?每次溢出都能被中断响应吗? 重新仔细看书,弄清楚我提出的问题,就当是作业吧。做完作业,水平会有大的提升。 |
| 定时器1中断里不要处理串口发送,这样会打乱定时计数,串口发送放在main循环里处理。 |
| 不清楚你单片机型号,一种可能性是你的单片机不一定有定时器1,另外参照官方程序看看定时器寄存器配置位是否正确。 |