|
師傅們,老師們,各位好,目前用STM32開(kāi)發(fā)板,數(shù)碼管和串口顯示18b20,溫度值,程序按照教程來(lái)的,和教程程序略有不同(編譯不過(guò),按照自己的方法改的),教程里面的程序沒(méi)有數(shù)碼管,目前的問(wèn)題是,前10秒顯示正常溫度值,后3秒現(xiàn)在零,在10秒顯示正常值,在3秒顯示0,一直往返,串口讀出的溫度值也是一樣的情況,教程程序沒(méi)有此問(wèn)題,我的數(shù)碼管顯示是采用定時(shí)中斷來(lái)寫(xiě)的,我懷疑用定時(shí)中斷程序干擾18b20采集數(shù)據(jù),我之前用C51寫(xiě)過(guò)這種程序,要加中斷開(kāi)和中斷關(guān),于是我在網(wǎng)上找到這兩種語(yǔ)句(詳情見(jiàn)圖片),加上之后,數(shù)碼管可以看輕微閃爍,但是數(shù)值還是有出現(xiàn)0的情況,后來(lái)我才用中斷函數(shù)NvIC里面的兩個(gè)函數(shù)來(lái)控制函數(shù)中斷開(kāi),關(guān)(nvic_setprimask(); nvic_resetprimask();)加入后,編譯不過(guò),意思是確實(shí)函數(shù),請(qǐng)問(wèn)各位老師,各位師傅,這種情況是定時(shí)中斷造成的嗎?如果是定時(shí)中斷造成的,這個(gè)位置怎么關(guān)中斷,開(kāi)中斷,或者還有沒(méi)有其它的好的方法解決此問(wèn)題,謝謝
|
|