熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2021-3-24 20:47
正文摘要:本帖最后由 Elilala 于 2021-3-25 10:00 編輯 使用PWM控制電機(jī)轉(zhuǎn)速,同時(shí)實(shí)時(shí)使用串口采集溫度。同時(shí)TR0=1,TR1=1時(shí)溫度采集出錯(cuò)。將TR0=1注釋掉后正確,但是無法控制電機(jī)轉(zhuǎn)速,只能啟動(dòng)。部分代碼如下:#include ... |
串口的發(fā)送 不能擁擠,比如9600波特率 發(fā)一個(gè)字節(jié)需要1ms 那么 連續(xù)兩次寫入SBUF 時(shí)間間隔必須大于1040us 。 可以看看我發(fā)的貼子, 串口發(fā)送不需要while 死等。提高CPU效率。 |
串口實(shí)時(shí)發(fā)送溫度值給上位機(jī),每一次發(fā)送之間沒有時(shí)間間隔,當(dāng)上位機(jī)通過串口下發(fā)指令時(shí),串口被占用而產(chǎn)生錯(cuò)誤 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
人人學(xué)會(huì)單片機(jī) 發(fā)表于 2021-3-24 21:41 更新了一下代碼。DS18B20讀到的數(shù)據(jù)通過串口發(fā)送給上位機(jī)。 |
將TMOD=0x21后能正確讀取溫度,并且可以控制風(fēng)扇轉(zhuǎn)速,可是溫度讀取會(huì)偶爾出現(xiàn)錯(cuò)誤。 |
DS18B20是串口?你確定沒搞錯(cuò)? |
采用串口助手控制電機(jī)轉(zhuǎn)速與采集溫度。 2代表啟動(dòng),3反轉(zhuǎn),0加速,1減速,4停止,5復(fù)位。 |
Powered by 單片機(jī)教程網(wǎng)