代碼如下:
void USART1_IRQHandler(void)
{
u8 res;
#ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定義了,說明使用ucosII了.
OSIntEnter();
#endif
if(USART1->SR&(1<<5))//接收到數(shù)據(jù)
{
res=USART1->DR;
if((USART_RX_STA&0x8000)==0)//接收未完成
{
if(USART_RX_STA&0x4000)//接收到了0x0d
{
if(res!=0x0a)USART_RX_STA=0;//接收錯(cuò)誤,重新開始
else USART_RX_STA|=0x8000; //接收完成了
}
else //還沒收到0X0D
{
if(res==0x0d)
USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=res;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收數(shù)據(jù)錯(cuò)誤,重新開始接收
}
}
}
}
#ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定義了,說明使用ucosII了.
OSIntExit();
#endif
}
USART_RX_STA是狀態(tài)標(biāo)記變量,從0開始,串口中斷接收到一個(gè)數(shù)據(jù)(一個(gè)字節(jié))就自增1。當(dāng)數(shù)據(jù)讀取全部OK時(shí)候(回車和換行符號(hào)來的時(shí)候),那么 USART_RX_STA的最高位置1,表示串口數(shù)據(jù)接收全部完畢了,然后main函數(shù)里面可以處理數(shù)據(jù)了。
當(dāng)接收到從電腦發(fā)過來的數(shù)據(jù),把接收到的數(shù)據(jù)保存在USART_RX_BUF 中,同時(shí)在接收狀態(tài)寄存器(USART_RX_STA)中計(jì)數(shù)接收到的有效數(shù)據(jù)個(gè)數(shù),當(dāng)收到回車(0X0D,0X0A)的第一個(gè)字節(jié)0X0D 時(shí),計(jì)數(shù)器將不再增加,等待0X0A 的到來,而如果0X0A 沒有來到,則認(rèn)為這次接收失敗,重新開始下一次接收。如果順利接收到0X0A,則標(biāo)記USART_RX_STA的第七位,這樣完成一次接收,并等待該位被其他程序清除,從而開始下一次的接收,而如果遲遲沒有收到0X0D,那么在接收數(shù)據(jù)超過64 個(gè)了,則會(huì)丟棄前面的數(shù)據(jù),重新接收。
上一篇:STM32幾種對(duì)端口寫命令的函數(shù)總結(jié)
下一篇:STM32adc采集的一些bug
推薦閱讀
史海拾趣
隨著5G技術(shù)的興起,光通信行業(yè)迎來了新的發(fā)展機(jī)遇。Excelight緊跟時(shí)代步伐,投入大量資源進(jìn)行技術(shù)研發(fā)。在李明和團(tuán)隊(duì)的共同努力下,公司成功研發(fā)出了一款具有自主知識(shí)產(chǎn)權(quán)的高速光通信芯片,這一成果不僅填補(bǔ)了國(guó)內(nèi)空白,還使Excelight在國(guó)際市場(chǎng)上占據(jù)了有利地位。
技術(shù)突破后,Excelight的產(chǎn)品性能得到了顯著提升,同時(shí)也帶動(dòng)了整個(gè)產(chǎn)業(yè)鏈的升級(jí)。公司開始與更多的國(guó)內(nèi)外企業(yè)建立合作關(guān)系,共同推動(dòng)光通信行業(yè)的發(fā)展。
進(jìn)入21世紀(jì)后,隨著電子技術(shù)的飛速發(fā)展,HBControls意識(shí)到只有不斷創(chuàng)新才能保持競(jìng)爭(zhēng)力。公司加大了研發(fā)投入,成立了專門的研發(fā)團(tuán)隊(duì),專注于新型繼電器產(chǎn)品的研發(fā)。經(jīng)過多次試驗(yàn)和改進(jìn),HBControls成功推出了HD-4850系列高性能繼電器,該系列產(chǎn)品以其高可靠性、長(zhǎng)壽命和低功耗等特點(diǎn)迅速贏得了市場(chǎng)的青睞。這一創(chuàng)新不僅提升了公司的市場(chǎng)份額,也進(jìn)一步鞏固了HBControls在繼電器領(lǐng)域的領(lǐng)先地位。
隨著全球經(jīng)濟(jì)的一體化,HBControls開始實(shí)施全球化戰(zhàn)略,以拓展更廣闊的市場(chǎng)空間。公司首先在歐洲設(shè)立了分支機(jī)構(gòu),隨后又在美國(guó)、亞洲等地建立了銷售網(wǎng)絡(luò)。通過參加國(guó)際展會(huì)、與當(dāng)?shù)仄髽I(yè)建立合作關(guān)系等方式,HBControls的產(chǎn)品逐漸走向全球。同時(shí),公司還積極引進(jìn)國(guó)際先進(jìn)的管理理念和技術(shù),不斷提升自身的綜合競(jìng)爭(zhēng)力。全球化戰(zhàn)略的實(shí)施為HBControls帶來了更多的市場(chǎng)機(jī)遇和發(fā)展空間。
企業(yè)文化是Edcon Components Netherlands Cv的重要組成部分。公司注重企業(yè)文化的培養(yǎng)和傳承,形成了積極向上的企業(yè)氛圍和團(tuán)隊(duì)精神。通過組織各類活動(dòng)和培訓(xùn),增強(qiáng)員工的歸屬感和榮譽(yù)感;通過建立公平的激勵(lì)機(jī)制和晉升通道,激發(fā)員工的積極性和創(chuàng)造力。這些措施使得Edcon的團(tuán)隊(duì)更加緊密團(tuán)結(jié)、高效協(xié)作,為公司的發(fā)展提供了有力保障。
MCS-51單片機(jī)與8051單片機(jī)的聯(lián)系與區(qū)別 MCS-51單片機(jī)與8051單片機(jī)的聯(lián)系與區(qū)別 MCS是Intel公司單片機(jī)的系列符號(hào)。Intel推出有MCS-48、MCS-51、MCS-96系列單片機(jī)。 MCS-51系列單既包括三個(gè)基本型80C31、8051、8751,以及對(duì)應(yīng)的低功 ...… 查看全部問答∨ |
|
索尼筆記本電腦問題 ERROR 0200:Failure Fixed Disk 0怎么解決? 我的索尼筆記本電腦是2004年買的,最近開機(jī)出現(xiàn)如下問題提示信息 ERROR 0200:Failure Fixed Disk 0 Press resume Press to Setup 按F1之后,提示 The operating system not found 請(qǐng)問各位專家怎么以上問題解決?… 查看全部問答∨ |
|
MPLAB IDE 編譯程序時(shí)報(bào)錯(cuò)(copy了一個(gè)簡(jiǎn)單的例子,可以肯定程序沒有錯(cuò)誤,可能是環(huán)境沒配置好) Debug build of project `D:\\Zigbee\\exp\\hello.mcp\' started. Preprocessor symbol `__DEBUG\' is defined. Tue Jun 01 17:56:48 2010 ----- ...… 查看全部問答∨ |
請(qǐng)問一下。最近我在做pppoe pass through 的東西??墒俏野l(fā)現(xiàn)PC在pppoe建立連接的時(shí)候有關(guān)的PPP LCP包都收不到。 有哪位大俠給點(diǎn)建議。謝謝了。… 查看全部問答∨ |
高分求解linux 輸入法的問題 http://community.eeworld.net/Expert/TopicView3.asp?id=5341375… 查看全部問答∨ |
我自己的過錯(cuò)總結(jié): 前段時(shí)間由于忙著準(zhǔn)備考試,所以一直沒有時(shí)間弄RF2500,昨天晚上昏昏沉沉的拿著板子,想調(diào)試調(diào)試,于是就開始動(dòng)手下載程序,我想弄雙機(jī)通信這塊,于是就一個(gè)板子一個(gè)板子的下載程序,但是最后我發(fā)現(xiàn)板子里面沒有電池,于是就果 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- ARXML 規(guī)則下 ECU 總線通訊與 ADTF 測(cè)試方案
- 日產(chǎn)在歐洲推出第三代e-POWER技術(shù)
- 福特CEO更看好Waymo激光雷達(dá)方案:比特斯拉純視覺自動(dòng)駕駛路線可靠
- 智元機(jī)器人兩大核心產(chǎn)品啟動(dòng)規(guī)模化生產(chǎn)
- 固態(tài)電池2026量產(chǎn)豪賭,真相還是泡沫?
- 100億元!湖北“下注”人形機(jī)器人產(chǎn)業(yè)
- 海外磷酸鐵鋰電池產(chǎn)能從0到1
- 基于多傳感器數(shù)據(jù)的自動(dòng)駕駛仿真確定性驗(yàn)證
- 國(guó)芯科技發(fā)布全球首款48V安全氣囊芯片,引領(lǐng)智能汽車新紀(jì)元
- 亞馬遜全球部署100萬臺(tái)機(jī)器人
- 汽車內(nèi)飾革命:從大屏、多屏走向無屏
- Waymo已獲加州許可證 可利用自動(dòng)駕駛汽車接載乘客
- 賽騰微實(shí)現(xiàn)汽車前裝尾燈控制MCU出貨量超百萬顆
- 全球新能源汽車前沿及創(chuàng)新技術(shù)發(fā)布 智能駕駛雷達(dá)等16項(xiàng)入選
- 進(jìn)出地庫無需司機(jī)!百度自動(dòng)泊車方案宣布年內(nèi)量產(chǎn)落地:方便到家
- keil編譯后load一直是灰色的解決辦法
- KEIL4 工程到 KEIL5 程序的移植方法
- 下載程序時(shí)出現(xiàn)Cannot Load Flash Device Description!情況
- 下載出錯(cuò):Could not stop Cortex-M device!Please check the JTAG cable.
- STLINK下載出錯(cuò):Internal command error