51單片機(jī)怎么判斷串口接收數(shù)據(jù) 51單片機(jī)燒錄提示串口未打開?
51單片機(jī)燒錄提示串口未打開?查找?guī)鸵幌旅δ汶娔X上串口號是幾。串口調(diào)試工具上一般COM號為1、2、3、4,如果你電腦上的串口號和調(diào)試工具上的不自動分配,變會總是顯示“不匹配”,但電腦上的COM是是可以
51單片機(jī)燒錄提示串口未打開?
查找?guī)鸵幌旅δ汶娔X上串口號是幾。串口調(diào)試工具上一般COM號為1、2、3、4,如果你電腦上的串口號和調(diào)試工具上的不自動分配,變會總是顯示“不匹配”,但電腦上的COM是是可以改的,在屬性的“高級”設(shè)置里里。。。
如何判定C51是一次發(fā)送,還是多次串口發(fā)送?
51單片機(jī)一次只有收得到1個(gè)字節(jié)數(shù)據(jù)(8位),若要收得到兩個(gè)字節(jié),串口工具估計(jì)等分兩字節(jié)郵箱里。比如先正在發(fā)送高字節(jié),再正在發(fā)送低字節(jié)。這對100H,按十六進(jìn)制發(fā)送0100,單片機(jī)收到第一字節(jié)數(shù)據(jù)存放過來,收到消息第二字節(jié)后將兩個(gè)8位數(shù)胸壁痛成16位數(shù)。
怎么判斷筆記本電腦分配給51單片機(jī)的串口號?
串口號只是因?yàn)殡娔X與串口設(shè)備連接上后分區(qū)分配串口的,你也可以在自己的電腦查看,你可以右鍵我的電腦,然后把“管理”——硬件管理——通用串口,看一下是COM幾,如果有幾個(gè)的話,你把需要得用那個(gè)拔掉,看下哪個(gè)迅速消失了,再插上它又再次出現(xiàn)了,就只能說明是它了。然后把在串口工具里設(shè)置中成對應(yīng)的串口號就可以了。
51單片機(jī)串口中斷是怎么觸發(fā)的?
簡單的方法,你要用軟件不能網(wǎng)絡(luò)中斷,即C語言中EA1//愿意總關(guān)閉ES1//允許串口掉線匯編中用些SETBEA容許總關(guān)閉SETBES不允許串口網(wǎng)絡(luò)中斷當(dāng)單片機(jī)收不到到一幀數(shù)據(jù)后,RI會置1,向CPU去申請中斷,若之前有網(wǎng)絡(luò)中斷愿意,則出現(xiàn)了掉線,剛剛進(jìn)入中斷服務(wù)程序。
當(dāng)然,單片機(jī)發(fā)送完一幀數(shù)據(jù),TI也會置1,雖然會產(chǎn)生中斷!就像我們在郵箱里數(shù)據(jù)時(shí)要關(guān)中斷,是因?yàn)橐话隳悴恍枰谡诎l(fā)送時(shí)不需要如何處理數(shù)據(jù);能接收數(shù)據(jù)時(shí)要開掉線,以便你在中斷服務(wù)程序中將接收到的數(shù)據(jù)通過存儲并處理。補(bǔ)充:其實(shí),不管你有沒有不能自動,上位機(jī)(此時(shí)即給單片機(jī)發(fā)送信息的機(jī)器)只要給單片機(jī)你的郵箱數(shù)據(jù),單片機(jī)就會不自動收得到數(shù)據(jù),并把它放到數(shù)據(jù)緩沖器SBUF中,要是你前有容許串行口自動,RI是會置1,向單片機(jī)CPU可以申請關(guān)閉,并直接進(jìn)入掉線服務(wù)程序,即你問題中的serial()函數(shù),任務(wù)這個(gè)函數(shù)后變會自動直接返回?cái)帱c(diǎn)。
假如你沒有允許掉線,便應(yīng)該不會再產(chǎn)生串行中斷。
其實(shí),你的問題有個(gè)錯(cuò)誤:別的網(wǎng)絡(luò)中斷也是某個(gè)I/O口電平變化產(chǎn)生。
這只是外部掉線再產(chǎn)生條件,但是,你之前也要用軟件允許外部關(guān)閉。
至于,比較普遍的51系列單片機(jī)有5個(gè)掉線源三種網(wǎng)絡(luò)中斷5:
1、外部關(guān)閉0和1;
2、定時(shí)器/計(jì)數(shù)器溢出網(wǎng)絡(luò)中斷0和1;
3、串行口網(wǎng)絡(luò)中斷。
同時(shí),STC51系列另外定時(shí)器/計(jì)數(shù)器T2中斷,A/D可以轉(zhuǎn)換關(guān)閉,PWM自動,串行關(guān)閉2等等。你還有一個(gè)什么看不懂的可以不自己多翻一翻書,去學(xué)后面回來了你就清楚了。
你的問題中那個(gè)serial()函數(shù)中P1SBUF是把收不到的數(shù)據(jù)送到右行P1口,然后把那條RI0是絕對不可少的,這是用軟件清零RI,準(zhǔn)備好立即認(rèn)可一幀數(shù)據(jù)出現(xiàn)關(guān)閉,要是你沒有這條語句,可能會進(jìn)入到死循環(huán),出不跑來。有啥還是可以Q我(1445090023),如果能能給我評個(gè)最佳的位置答案。