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