我遇到了一個(gè)難題,請(qǐng)大家?guī)臀抑更c(diǎn)迷津。
我準(zhǔn)備用DS18B20采集溫度通過(guò)串口通信發(fā)給上位機(jī)顯示,上位機(jī)完成對(duì)溫度的判斷后,再通過(guò)串口通信發(fā)送數(shù)字給單片機(jī),讓單片機(jī)實(shí)現(xiàn)直流電機(jī)的調(diào)速和LED燈的亮滅。
問(wèn)題是:我的代碼實(shí)現(xiàn)了上位機(jī)發(fā)來(lái)數(shù)字后可以進(jìn)行直流電機(jī)的調(diào)速和LED的亮滅,卻不能將正確的溫度發(fā)給上位機(jī)顯示。
8.png (31.77 KB, 下載次數(shù): 11)
下載附件
錯(cuò)誤
2024-6-17 23:52 上傳
當(dāng)我把中斷1注釋掉以后,變成了可以正常發(fā)送溫度給上位機(jī),但不能調(diào)速直流電動(dòng)機(jī)了。
我的單片機(jī)代碼如下:
1.png (114.03 KB, 下載次數(shù): 15)
下載附件
main.cDS18B20采集溫度,通過(guò)串口通信發(fā)給上位機(jī)
2024-6-17 23:23 上傳
2.png (403.6 KB, 下載次數(shù): 14)
下載附件
main.c
2024-6-17 23:23 上傳
3.png (486.26 KB, 下載次數(shù): 15)
下載附件
main.c
2024-6-17 23:23 上傳
4.png (314.12 KB, 下載次數(shù): 14)
下載附件
main.c
2024-6-17 23:23 上傳
以上是main.c DS18B20采集溫度,通過(guò)串口通信發(fā)給上位機(jī)。
5.png (371.8 KB, 下載次數(shù): 13)
下載附件
main.c中中斷1目的是用來(lái)生成pwm波調(diào)速直流電機(jī)。中斷4目的是接收上位機(jī)發(fā)來(lái)的數(shù)字作為控制直流電機(jī)速度的 ...
2024-6-17 23:23 上傳
上圖是main.c中的各中斷,中斷1的目的是用來(lái)生成pwm波調(diào)速直流電機(jī),中斷4的目的是接收上位機(jī)發(fā)來(lái)的數(shù)字作為控制直流電機(jī)速度的依據(jù),同時(shí)可以使LED燈亮滅。
6.png (307.88 KB, 下載次數(shù): 14)
下載附件
UART.c串口通信,用定時(shí)器1得出波特率
2024-6-17 23:23 上傳
上圖是UART.c串口通信,用定時(shí)器1得出波特率,并且進(jìn)行了一些中斷方面的設(shè)置。
7.png (192.98 KB, 下載次數(shù): 11)
下載附件
Timer0.c定時(shí)器0
2024-6-17 23:23 上傳
上圖是Timer0.c定時(shí)器0,也進(jìn)行了一些中斷方面的設(shè)置。
我的定時(shí)器1設(shè)置為8位自動(dòng)重載,定時(shí)器0模式設(shè)置為16位,不知道錯(cuò)誤的原因是否出在這,或者還是中斷方面的錯(cuò)誤,請(qǐng)各位大佬不吝賜教。
|