久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

小談標志位 如何釋放CPU

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月01日   【字體:


許久沒有發了,分享下最近的感悟。如有錯誤的地方往指正,互相學習,哈哈。廢話不多說,入正題,今天就Modbus說一下。
        對于modbus相信大家并不陌生,我不知道大家怎么寫的,我也希望大家有好 寫法提供參考,那是不勝感激的。在此感謝這段時間大家的幫助,如孫工,韓工,等等。本次講解就是在孫工的基礎上建立的,硬件是用的STM8S系列,
這里直說串口接收中斷與定時器中斷,




以前是這么寫的,用到了一個定時器,一個UART串口,咱先不說stm8   如果用在STC芯片上,那可是很昂貴的,本身就三個定時器,一個UART用,還需要一個定時器輔助,就剩下可憐的一個定時器了。這只是個通訊啊大哥,其他的工作科怎么做。反復的看,反復的改,是不是可以這樣啊,work();這個函數拿出來,再寫一個函數,在這個函數里面包含著它,建立屬于它的標志位,于是出來下邊這個版本,









我們分析下這樣的好處,首先用了標志位后可以與其他函數共享定時器,節約了資源,接下里是省去了 開關定時器的繁瑣步驟。效率自然就上去了。接著往下看,在485通訊時是否遇到過返回數組不全的問題,(接收的前段數據時正確的),我遇到過,在STM8 上邊,為什么呢,愿意在于DE端的控制上,還未發送完成就關閉的發送使能,程序如下未改正前。



發現問題后你可能會這么改。如下


哈哈,成功返回所有數據,高枕無憂了。是嗎?我咋么覺得這個延時這么礙眼啊,配合簡單的任務可能不會出問題,如果1S通訊10次的話你還能笑出來嗎?
那會你應該考慮怎么改良一下那,繼續往下看 ,再用標志位,




仔細看的會發現  DE端的控制跟work()寫在一塊了,給發送完成提供了充足的時間,又把CPU騰出來干別的事情,一舉兩得吧,哈哈,這樣通訊50/s次表示無壓力,再往下說,是不是遇到過調試通訊無返回的情況,是不是還不知道問題出來那一塊,好吧,我們不如加點指示的東西,學習下人家TCPIP,加一個通訊指示燈,怎么加呢,是不是會這樣。


這里就不寫用延時手段或者是再各定時器的寫法了,以上這個寫法通訊時會起到指示作用,也很節約CPU,但是他接收錯誤數據時也會指示,作用不是很好,再看一下放在哪里好呢,恩  下邊這里,







 好了   就到這里,有什么不對 地方麻煩指正,這里先謝謝。 純屬個人見解獻丑了

關閉窗口

相關文章

主站蜘蛛池模板: 成年人黄色小视频 | 欧美日韩亚洲视频 | 欧美性久久 | 久久久久综合 | 日日噜噜噜夜夜爽爽狠狠视频, | 精品国产青草久久久久96 | 国产精品一区二区三区在线 | 国产精品久久久久久久久免费桃花 | 日韩成人在线视频 | 欧美成人免费在线视频 | 精品国产欧美一区二区三区不卡 | 爱爱免费视频网站 | 夜夜骑av| 永久精品 | 久久精品国产一区二区电影 | 亚洲精品一区久久久久久 | 毛片免费在线 | 啪啪免费 | 夜久久 | 久久精品亚洲 | 日韩视频免费 | 久久精品视频亚洲 | 日韩at| 在线播放国产视频 | 亚洲成人国产综合 | 一区不卡在线观看 | 日韩国产一区二区三区 | 免费视频一区二区 | 亚洲三区视频 | 国产精品欧美一区二区三区不卡 | 伊人狠狠 | 国产成人在线视频 | 日韩色视频 | 欧美电影在线观看网站 | 国产成人一区二区三区 | 日韩国产欧美一区 | 亚洲一区电影 | 欧美电影在线观看网站 | 国产精品美女一区二区三区 | 久久这里有精品 | 婷婷在线视频 |