日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

這些日子做項(xiàng)目,在串口上耽誤了不少時(shí)間,原來(lái)一直使用中斷接收和查詢發(fā)送,程序代碼合起來(lái)時(shí),程序竟然死在串口發(fā)送上,程序在那里等待,過(guò)不去,一直在做這個(gè)事情,今天總結(jié)一個(gè)專題,和大家分享。 


51單片機(jī)的串口,是個(gè)全雙工的串口,發(fā)送數(shù)據(jù)的同時(shí),還可以接收數(shù)據(jù)。當(dāng)串行發(fā)送完畢后,將在標(biāo)志位 TI 置 1,同樣,當(dāng)收到了數(shù)據(jù)后,也會(huì)在 RI 置 1。無(wú)論 RI 或 TI 出現(xiàn)了 1,只要串口中斷處于開(kāi)放狀態(tài),單片機(jī)都會(huì)進(jìn)入串口中斷處理程序。


在中斷程序中,要區(qū)分出來(lái)究竟是發(fā)送引起的中斷,還是接收引起的中斷,然后分別進(jìn)行處理??吹竭^(guò)一些書(shū)籍和文章,在串口收、發(fā)數(shù)據(jù)的處理方法上,很多人都有不妥之處。


接收數(shù)據(jù)時(shí),基本上都是使用“中斷方式”,這是正確合理的。即:每當(dāng)收到一個(gè)新數(shù)據(jù),就在中斷函數(shù)中,把 RI 清零,并用一個(gè)變量,通知主函數(shù),收到了新數(shù)據(jù)。


發(fā)送數(shù)據(jù)時(shí),很多的程序都是使用的“查詢方式”,就是執(zhí)行 while(TI ==0); 這樣的語(yǔ)句來(lái)等待發(fā)送完畢。這時(shí),處理不好的話,就可能帶來(lái)問(wèn)題。


看了一些網(wǎng)上編寫的程序,發(fā)現(xiàn)有如下幾條容易出錯(cuò):
1.發(fā)送數(shù)據(jù)之前,先關(guān)閉了串口中斷!等待發(fā)送完畢后,再打開(kāi)串口中斷。這樣,在發(fā)送數(shù)據(jù)的等待期間內(nèi),如果收到了數(shù)據(jù),將不能進(jìn)入中斷函數(shù),也就不會(huì)保存的這個(gè)新收到的數(shù)據(jù)。

這種處理方法,就會(huì)遺漏收到的數(shù)據(jù)。

2.有人在發(fā)送數(shù)據(jù)之前,并沒(méi)有關(guān)閉串口中斷,當(dāng) TI = 1 時(shí),是可以進(jìn)入中斷程序的。但是,卻在中斷函數(shù)中,將 TI 清零!這樣,在主函數(shù)中的while(TI==0);,將永遠(yuǎn)等不到發(fā)送結(jié)束的標(biāo)志。

3.還有人在中斷程序中,并沒(méi)有區(qū)分中斷的來(lái)源,反而讓發(fā)送引起的中斷,執(zhí)行了接收中斷的程序。


對(duì)此,正確的方法:接收數(shù)據(jù)時(shí),使用“中斷方式”,清除 RI 后,用一個(gè)變量通知主函數(shù),收到新數(shù)據(jù)。

發(fā)送數(shù)據(jù)時(shí),也用“中斷方式”,清除 TI 后,用另一個(gè)變量通知主函數(shù),數(shù)據(jù)發(fā)送完畢。這樣一來(lái),收、發(fā)兩者基本一致,編寫程序也很規(guī)范、易懂。更重要的是,主函數(shù)中,不用在那兒死等發(fā)送完畢,可以有更多的時(shí)間查看其它的標(biāo)志。


舉個(gè)個(gè)子說(shuō)明,中斷發(fā)送比查詢發(fā)送效率高的原因:

如果要發(fā)送一組十六進(jìn)制的數(shù)據(jù):01 02 03 04 05 06 07 FF

(FF是字符串結(jié)束的標(biāo)志)。

查詢發(fā)送一個(gè)字節(jié)例子如下:

TI0=0;

While(TI==0)


在發(fā)送上述數(shù)據(jù)時(shí),主程序等待7個(gè)發(fā)送字節(jié)的時(shí)間,才能過(guò)去。


如果用中斷發(fā)送,發(fā)送每個(gè)字節(jié)的期間(發(fā)送字節(jié)由硬件完成),主程序可以做其它事情,如刷新顯示數(shù)據(jù),只有發(fā)送完一個(gè)字節(jié)時(shí),才進(jìn)入中斷裝入要發(fā)送的下一個(gè)數(shù)據(jù),發(fā)送的數(shù)據(jù)多時(shí),效率是很明顯的,硬件的開(kāi)銷雖然一樣,都要發(fā)送這么多數(shù)據(jù),但程序的執(zhí)行效率大大提高了,就好像,主程序把這工作交給硬件了,只是發(fā)送完告訴我一下就可以了,主程序在硬件完成工作期間,可以做其它事情,而查詢發(fā)送數(shù)據(jù),你做這個(gè)活,主程序還得在這等著你做完才能做其它事情。程序效率提高這是肯定的。


關(guān)鍵字:單片機(jī)  串口編程  串口發(fā)送 引用地址:單片機(jī)串口編程的優(yōu)劣

上一篇:8051單片機(jī)的中斷發(fā)送
下一篇:單片機(jī)流水燈小程序

推薦閱讀

在剛剛結(jié)束的CES Asia 2019上,總共才6個(gè)展區(qū),汽車科技就獨(dú)占了2個(gè)展區(qū),為展會(huì)貢獻(xiàn)了半數(shù)以上的亮點(diǎn)。在這2個(gè)汽車科技展區(qū)中,智能座艙的相關(guān)展品數(shù)量最多,除了奔馳、奧迪等傳統(tǒng)主機(jī)廠外,百度、大陸等科技巨頭和Tier 1也帶來(lái)各自在智能座艙方面的最新成果。通過(guò)此次展會(huì),汽車行業(yè)透露出在“新四化”的浪潮下,智能座艙已經(jīng)成功占據(jù)“C位”。智能座...
為了緩解沉重的市場(chǎng)成本壓力,芬蘭電信設(shè)備生產(chǎn)商諾基亞(NOKIA)周一表示,計(jì)劃裁撤旗下子公司約三分之一的員工,預(yù)計(jì)將有1233個(gè)崗位收到裁員影響... 據(jù)路透社報(bào)道,芬蘭電信設(shè)備生產(chǎn)商諾基亞(NOKIA)周一宣布,計(jì)劃對(duì)旗下法國(guó)子公司Alcatel-Lucent(阿爾卡特-朗訊)裁撤1233個(gè)崗位,約三分之一員工將受到影響。 正值各國(guó)積極部署5G移動(dòng)網(wǎng)絡(luò)之際,諾基...
英特爾、EXOR International、JMA Wireless 和意大利電信攜手合作,展示部署預(yù)置5G專用網(wǎng)絡(luò)及AI的優(yōu)勢(shì) 新聞:近期,英特爾、EXOR International、JMA Wireless和意大利電信(Telecom Italia)攜手在意大利維羅納(Verona, Italy)建立端到端智慧工廠,成為工業(yè)4.0數(shù)字化惠及各種規(guī)模制造商的一大案例。這家智慧工廠采用了廣泛的英特爾產(chǎn)品,包括英...

史海拾趣

問(wèn)答坊 | AI 解惑

數(shù)碼相機(jī)的可編程DSP平臺(tái)

數(shù)碼相機(jī)的可編程DSP平臺(tái)…

查看全部問(wèn)答∨

【論文】單片機(jī)系統(tǒng)中法拉電容的數(shù)據(jù)保護(hù)研究

單片機(jī)系統(tǒng)中法拉電容的數(shù)據(jù)保護(hù)研究 引言   在測(cè)量、控制等領(lǐng)域的嵌入式系統(tǒng)應(yīng)用中,常要求系統(tǒng)內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器(RAM)中的數(shù)據(jù)在電源掉電時(shí)不丟失,重新加電時(shí)RAM中的數(shù)據(jù)能夠保存完好[1],以保證系統(tǒng)穩(wěn)定、可靠地工作和數(shù)據(jù)信息處理的 ...…

查看全部問(wèn)答∨

求助:Hook函數(shù)中如何返回信息?

DriverEntry() { ... } NTSTATUS DrvDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) {  ...      switch()      ...       HookOn(ZwCreateFile,NewZwCre ...…

查看全部問(wèn)答∨

上海比較好的做嵌入式軟件的公司

請(qǐng)問(wèn)上海有哪些比較好的做嵌入式軟件開(kāi)發(fā)的公司啊,本人是軟件工程專業(yè)的…

查看全部問(wèn)答∨

100分求sdk包for wince 4.2 armv4,在線等

qq:99660532 我需要開(kāi)發(fā)pocket pc 2003下的應(yīng)用程序,但是沒(méi)有能用的sdk,誰(shuí)有和standard sdk的feature差不多的sdk,麻煩發(fā)我一個(gè),注意不是模擬器版,而且是wince4.2?;蛘哒l(shuí)能教我有其它在ppc2003系統(tǒng)的pda上開(kāi)發(fā)應(yīng)用的辦法。100分相送!…

查看全部問(wèn)答∨

protel99中制作元器件時(shí)怎么畫(huà)虛線

大家好: 我想在protel99中制作元器件畫(huà)虛線(繼電器上有虛線)但是我不會(huì)畫(huà),該怎么辦?我在元件庫(kù)里找的繼電器不是我想要的那種,所以很郁悶,謝謝了…

查看全部問(wèn)答∨

====招聘硬件工程師===

硬件工程師 職位要求: 1、電子工程專業(yè)背景。 2、能熟練使用PROTEL99、CADENCE等工具設(shè)計(jì)線路圖、線路板,有能力通過(guò)合理布線消除各電路之間的各種干擾(如地線噪音干擾、模擬與數(shù)字電路相互干擾、高頻電磁干擾等) 3、要求有足夠模擬及數(shù)字電 ...…

查看全部問(wèn)答∨

用EVC4 打開(kāi)模擬器時(shí),出現(xiàn)不能連接!

安裝了EVC4 及SP4 Microsoft Pocket PC 2003 SDK.msi Windows Mobile 2003 Second Edition Emulator Images for Pocket PC - CHS.msi 在測(cè)試時(shí)出現(xiàn) please make sure the following files are on the device \\windows\\tcpipc.dll \\windows ...…

查看全部問(wèn)答∨

100分求救 evc 下如何打開(kāi)GPS設(shè)備的電源?

機(jī)器自帶有GPS硬件,不過(guò)系統(tǒng)內(nèi)有個(gè)GPS電源管理,默認(rèn)情況下GPS的電源是關(guān)閉的 我想在程序中打開(kāi)GPS的電源,不知道如何實(shí)現(xiàn)? 注:機(jī)器是Navman的PIN 570…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved