STM8庫(kù)函數(shù)開(kāi)發(fā)方式中,串口中斷的類型有很多,頭文件中的定義入下:
typedef enum { UART1_IT_TXE = (uint16_t)0x0277, /*!< Transmit interrupt */
UART1_IT_TC = (uint16_t)0x0266, /*!< Transmission Complete interrupt */
UART1_IT_RXNE = (uint16_t)0x0255, /*!< Receive interrupt */
UART1_IT_IDLE = (uint16_t)0x0244, /*!< IDLE line interrupt */
UART1_IT_OR = (uint16_t)0x0235, /*!< Overrun Error interrupt */
UART1_IT_PE = (uint16_t)0x0100, /*!< Parity Error interrupt */
UART1_IT_LBDF = (uint16_t)0x0346, /**< LIN break detection interrupt */
UART1_IT_RXNE_OR = (uint16_t)0x0205 /*!< Receive/Overrun interrupt */
} UART1_IT_TypeDef;
我們經(jīng)常使用的串口中斷是,接收中斷和發(fā)送中斷,但是從頭文件中來(lái)看比較模糊。
發(fā)送中斷到底是用UART1_IT_TXE(TXE的意思是發(fā)送寄存器為空),還是用UART1_IT_TC(TC的意思是發(fā)送完成),接收中斷到底是用UART1_IT_RXNE(RXNE的意思是接收寄存器非空),還是用UART1_IT_RXNE_OR(OR的意思是接收寄存器超載溢出),又要怎么使用呢?
經(jīng)過(guò)實(shí)踐,總結(jié)如下:
發(fā)送中斷只能使用UART1_IT_TXE,并且與51單片機(jī)的方式有很大不同,51單片機(jī)中發(fā)送中斷的工作流程是:1)給SBUF賦值,2)硬件自動(dòng)發(fā)送,3)發(fā)送完成進(jìn)入串口中斷,4)在中斷中判斷中斷是發(fā)送還是接受,清楚對(duì)應(yīng)標(biāo)志位;
STM8中對(duì)串口進(jìn)行了初始化之后,
UART1_Init((uint32_t)115200,
UART1_WORDLENGTH_8D,
UART1_STOPBITS_1,
UART1_PARITY_NO,
UART1_SYNCMODE_CLOCK_DISABLE,
UART1_MODE_TXRX_ENABLE);
UART1_Cmd(ENABLE);
在需要發(fā)送數(shù)據(jù)時(shí)再對(duì)發(fā)送中斷進(jìn)行使能,比如在主函數(shù)中,
UART1_ITConfig(UART1_IT_TXE,ENABLE);
然后在發(fā)送中斷服務(wù)函數(shù)中執(zhí)行發(fā)送函數(shù),最后關(guān)閉發(fā)送中斷,一定要關(guān)閉發(fā)送中斷,不然就會(huì)一直反復(fù)進(jìn)入發(fā)送中斷,退不出來(lái);
/**
* @brief UART1 TX Interrupt routine.
* @param None
* @retval None
*/
INTERRUPT_HANDLER(UART1_TX_IRQHandler, 17)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
UART1_SendData8('A');
UART1_ITConfig(UART1_IT_TXE,DISABLE);
}
接收中斷只能使用UART1_IT_RXNE_OR,可以在串口初始化之后直接使能,因?yàn)橹挥性诮邮盏綌?shù)據(jù)才會(huì)進(jìn)入中斷,這里和51單片機(jī)基本一致,
UART1_ITConfig(UART1_IT_RXNE_OR,ENABLE);
接收中斷服務(wù)中,如果接收數(shù)據(jù)量比較大的,需要查詢超載溢出的對(duì)應(yīng)標(biāo)志,因?yàn)槌d溢出也會(huì)觸發(fā)此中斷,一旦是溢出,就要軟件清除對(duì)應(yīng)的標(biāo)志位,取出接收到的數(shù)據(jù)使用UART1_ReceiveData8()函數(shù)。
上一篇:(八) stm8程序段定位,理解lkf文件
下一篇:STVD+COSMIC工程搭建
推薦閱讀
史海拾趣
隨著LED技術(shù)的不斷發(fā)展,Epistar開(kāi)始將目光投向國(guó)際市場(chǎng)。公司積極參與各類國(guó)際展會(huì)和論壇,展示其先進(jìn)的LED產(chǎn)品和技術(shù)實(shí)力。同時(shí),Epistar還加強(qiáng)了與國(guó)際知名企業(yè)的合作,共同開(kāi)發(fā)新產(chǎn)品,拓寬銷售渠道。這些努力使Epistar的品牌知名度和市場(chǎng)份額不斷提升,公司逐漸在國(guó)際LED市場(chǎng)上嶄露頭角。
隨著技術(shù)的成熟,Denyo Europa Gmbh公司開(kāi)始將目光投向國(guó)際市場(chǎng)。公司利用自身的技術(shù)優(yōu)勢(shì),結(jié)合對(duì)目標(biāo)市場(chǎng)的深入調(diào)研,制定了一系列市場(chǎng)拓展策略。通過(guò)與當(dāng)?shù)睾献骰锇榈木o密合作,公司成功將產(chǎn)品打入多個(gè)國(guó)家和地區(qū),實(shí)現(xiàn)了業(yè)務(wù)的全球化布局。這一過(guò)程中,公司不僅積累了寶貴的國(guó)際市場(chǎng)經(jīng)驗(yàn),也為公司的持續(xù)發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
Davies Molding公司在發(fā)展過(guò)程中,始終注重市場(chǎng)布局與拓展。公司不僅在美國(guó)中西部建立了穩(wěn)固的市場(chǎng)地位,還積極開(kāi)拓國(guó)際市場(chǎng),將產(chǎn)品出口到全球多個(gè)國(guó)家和地區(qū)。通過(guò)與全球客戶的合作,Davies Molding公司不僅提升了品牌影響力,還獲得了更多的發(fā)展機(jī)遇。
在公司快速發(fā)展的過(guò)程中,High Tech Chips Inc深刻認(rèn)識(shí)到單打獨(dú)斗的局限性。因此,公司積極尋求與全球知名科技企業(yè)的戰(zhàn)略合作。通過(guò)與華為、三星等手機(jī)制造商的合作,High Tech Chips Inc的芯片產(chǎn)品被廣泛應(yīng)用于這些企業(yè)的旗艦機(jī)型中,極大地提升了產(chǎn)品的知名度和市場(chǎng)占有率。同時(shí),公司還與英偉達(dá)、英特爾等芯片巨頭建立了技術(shù)合作關(guān)系,共同推動(dòng)芯片技術(shù)的創(chuàng)新和發(fā)展。
隨著環(huán)保意識(shí)的日益增強(qiáng),DURABLE公司積極響應(yīng)全球綠色發(fā)展的號(hào)召,將環(huán)保理念融入產(chǎn)品研發(fā)和生產(chǎn)過(guò)程中。公司投入大量資金用于研發(fā)環(huán)保型電子材料,并成功推出了一系列具有環(huán)保性能的產(chǎn)品。這些產(chǎn)品不僅滿足了市場(chǎng)對(duì)環(huán)保產(chǎn)品的需求,還為公司贏得了良好的社會(huì)聲譽(yù)。同時(shí),DURABLE還積極推廣綠色生產(chǎn)和循環(huán)經(jīng)濟(jì)理念,為電子行業(yè)的可持續(xù)發(fā)展做出了積極貢獻(xiàn)。
面對(duì)日益嚴(yán)峻的環(huán)境問(wèn)題,EPT積極響應(yīng)國(guó)家綠色發(fā)展的號(hào)召,開(kāi)始探索和實(shí)踐綠色生產(chǎn)。公司引進(jìn)了一系列環(huán)保設(shè)備和工藝,實(shí)現(xiàn)了生產(chǎn)過(guò)程中的節(jié)能減排和資源循環(huán)利用。同時(shí),EPT還加強(qiáng)了對(duì)廢舊電池的回收和處理工作,以減少對(duì)環(huán)境的污染。這一舉措不僅展現(xiàn)了EPT對(duì)社會(huì)責(zé)任的擔(dān)當(dāng),也為其在電子行業(yè)中樹(shù)立了綠色發(fā)展的典范。
以上故事均基于EPT公司在電子行業(yè)發(fā)展的背景信息虛構(gòu)而成,旨在展現(xiàn)其發(fā)展歷程中的關(guān)鍵節(jié)點(diǎn)和亮點(diǎn)。請(qǐng)注意,這些故事并非真實(shí)事件,僅供參考。
本帖最后由 paulhyde 于 2014-9-15 03:23 編輯 1、紅外對(duì)管: 紅外對(duì)管是根據(jù)紅外輻射式傳感器原理制作的一種紅外對(duì)射式傳感器。與一般紅外傳感器一樣,紅外對(duì)管也由三部分構(gòu)成:光學(xué)系統(tǒng)(發(fā)射管)、探測(cè)器(接收管)、信號(hào)調(diào)理及輸出電路。紅外 ...… 查看全部問(wèn)答∨ |
本帖最后由 paulhyde 于 2014-9-15 09:26 編輯 http://v.youku.com/v_show/id_XMTE3NjY2OTYw.html 密碼 :123456 … 查看全部問(wèn)答∨ |
關(guān)于dm9000驅(qū)動(dòng)移植 arm2440 dm9000接線是按照double word模式 32位 移植的文檔基本參照http://blog.chinaunix.net/u2/75830/showart_1189828.html 生成內(nèi)核后 燒入板卡 ,出現(xiàn)找不到網(wǎng)卡 啟動(dòng)出錯(cuò)的信息SIOCSIFADDR: No such device &n ...… 查看全部問(wèn)答∨ |
|
請(qǐng)教:想在wince5系統(tǒng)中加入輸入法,應(yīng)該怎么做呢? 已經(jīng)有了一個(gè)拼音輸入法的所有數(shù)據(jù),想把這些數(shù)據(jù)放在flash中,注冊(cè)表中將路徑設(shè)置好。但是無(wú)法啟動(dòng)輸入法!是不是還要做些什么操作呢?… 查看全部問(wèn)答∨ |
wince5 evc4 實(shí)現(xiàn)半透明圖片 我在Test1Dlg.cpp 文件中 使用 lphaBlend 函數(shù) 也導(dǎo)入了以下頭文件和 lib #pragma comment (lib,"Coredll.lib") #include <Windows.h> 出現(xiàn)錯(cuò)誤誤碼: Test1Dlg.cpp E:\\Test1\\Test1Dlg.cpp(97) : error C2065: \'Al ...… 查看全部問(wèn)答∨ |
有沒(méi)有人做過(guò)嵌入式中的網(wǎng)絡(luò)部分的,現(xiàn)在想要用arm+linux加上http、dns等功能,不知道協(xié)議怎么弄的; 在網(wǎng)上看了也有免費(fèi)的uip、iwip等tcp/ip簇,這些是在linux內(nèi)核的代碼里面裁剪的嗎? 內(nèi)核裁剪的話怎么搞? 另外協(xié)議與操作系統(tǒng)是怎么聯(lián)系起來(lái) ...… 查看全部問(wèn)答∨ |
|
定時(shí)器的輸入異或功能該怎么配置,麻煩給個(gè)具體代碼!!! 定時(shí)器的輸入異或功能該怎么配置,麻煩給個(gè)具體代碼!!!最近要測(cè)量?jī)蓚€(gè)有相位差等脈沖寬度的相位差,覺(jué)得STM32的定時(shí)器的輸入異或功能將兩路信號(hào)轉(zhuǎn)化成一路信號(hào),其高電平脈沖寬度與相位差成正比,再結(jié)合定時(shí)器的PWM輸入模式可以計(jì)算出相位 ...… 查看全部問(wèn)答∨ |
每次用這軟件燒寫。。只能燒寫2到3次。。然后就燒不進(jìn)去。。必須拔了USB再插過(guò)USB。。才能燒進(jìn)去。。 感覺(jué)這就是流氓軟件。。很火大了。。。求介紹好的燒寫軟件撒。。。。… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 英飛凌微控制器:以全新實(shí)惠套件和強(qiáng)大開(kāi)發(fā)環(huán)境為開(kāi)發(fā)者提供支持
- iTOP-i.MX6開(kāi)發(fā)板設(shè)備數(shù)驅(qū)動(dòng)Menuconfig的用法
- 迅為IMX6ULL開(kāi)發(fā)板Qt for Android搭建開(kāi)發(fā)環(huán)境
- 迅為i.MX8M mini開(kāi)發(fā)板Windots QT系統(tǒng)開(kāi)發(fā)環(huán)境搭建
- 迅為IMX8MM開(kāi)發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開(kāi)發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開(kāi)發(fā)板支持4G以上文件系統(tǒng)擴(kuò)展
- 迅為IMX8MM開(kāi)發(fā)板Yocto系統(tǒng)設(shè)置開(kāi)機(jī)自啟動(dòng)
- 迅為IMX6Q開(kāi)發(fā)板 Buildroot文件系統(tǒng)mqtt測(cè)試
- 什么是PID算法?一文帶你深度理解PID算法
- 控制無(wú)刷直流電動(dòng)機(jī)以應(yīng)對(duì)新挑戰(zhàn)
- 汽車加熱器的工作原理和功能
- 限位開(kāi)關(guān)的工作原理是什么?如何判斷限位開(kāi)關(guān)的正負(fù)極
- 什么是限位開(kāi)關(guān)?限位開(kāi)關(guān)有哪些實(shí)際應(yīng)用
- 中國(guó)超導(dǎo)量子計(jì)算機(jī)“本源悟空”已在多項(xiàng)生物醫(yī)藥領(lǐng)域應(yīng)用
- 限位開(kāi)關(guān)如何接線?如何判斷限位開(kāi)關(guān)的好壞
- 拆解7kW的家用汽車充電樁:工程設(shè)計(jì)很復(fù)雜
- 具身智能,融資太瘋狂了
- 攜全系列駕駛助力方案首秀上海車展,Mobileye以人工智能創(chuàng)新推動(dòng)輔助駕駛平權(quán)
- 賽靈思網(wǎng)絡(luò)通信專題有獎(jiǎng)問(wèn)答
- 找小伙伴們一起去闖 STM32 F7英雄聯(lián)盟設(shè)計(jì)大賽
- 勇闖泰克絕密黑科技實(shí)驗(yàn)室!
- 國(guó)產(chǎn)FPGA安路科技研討會(huì)-北京站 火熱報(bào)名中,參會(huì)贏京東卡!
- 開(kāi)學(xué)季!EEworld下載中心 Cortex主題資源上傳
- 艾睿電子線上研討會(huì):英特爾FPGA深度學(xué)習(xí)加速技術(shù) 7月30日上午10:00-11:30 期待您的蒞臨!
- 力源帶你了解安森美半導(dǎo)體開(kāi)發(fā)神器——高度靈活的物聯(lián)網(wǎng)開(kāi)發(fā)套件( IDK )!看視頻輕松答題享好禮!
- 霧計(jì)算成為工業(yè)物聯(lián)網(wǎng)自主化關(guān)鍵
- 2018年智慧醫(yī)療五大發(fā)展趨勢(shì)
- 今日看點(diǎn):中國(guó)機(jī)器人“強(qiáng)國(guó)”之路逐漸具體化
- 全面解析安森美在圖像傳感器領(lǐng)域布局
- 以科技為基礎(chǔ) 領(lǐng)略三星的精致生活美學(xué)
- DENSO將于工博會(huì)展示電裝機(jī)器人的創(chuàng)新技術(shù)產(chǎn)品
- 中外機(jī)器人產(chǎn)品最大的差距是創(chuàng)意及應(yīng)用場(chǎng)景
- 亞馬遜用機(jī)器人手臂來(lái)分揀投遞物品已獲專利
- Mentor執(zhí)行副總裁談人工智能時(shí)代下EDA行業(yè)的大變革
- 劉巖:Mentor進(jìn)入中國(guó)30年,和西門子的結(jié)合為EDA帶來(lái)廣闊機(jī)遇