新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32串口中斷的一些資料

        STM32串口中斷的一些資料

        作者: 時間:2016-11-19 來源:網絡 收藏
        在研究STM32串口接收發送中斷的時候找到不少不錯的資料,現在備份在這里。以供自己查閱,以及方便其他人。

        TC====TXE

        本文引用地址:http://www.104case.com/article/201611/318082.htm

        順便預告下最近會寫個有關串口處理數據的帖子,從查詢和中斷方面以及數據處理的方式,從隊列以及FIFO方面寫起。

        SECTION1

        SECTION2

        先說TC。即TransmissionComplete。發送一個字節后才進入中斷,這里稱為“發送后中斷”。和原來8051的TI方式一樣,都是發送后才進中斷,需要在發送函數中先發送一個字節觸發中斷。發送函數如下

        /*
        功能:中斷方式發送字符串.采用判斷TC的方式.即判斷發送后中斷位.
        輸入:字符串的首地址
        輸出:無
        */
        voidUSART_SendDataString(u8*pData)
        {
        pDataByte=pData;

        USART_ClearFlag(USART1,USART_FLAG_TC);//清除傳輸完成標志位,否則可能會丟失第1個字節的數據.網友提供.

        USART_SendData(USART1,*(pDataByte++));//必須要++,不然會把第一個字符t發送兩次
        }


        中斷處理函數如下
        /
        *FunctionName:USART1_IRQHandler
        *Description:ThisfunctionhandlesUSART1globalinterruptrequest.
        *Input:None
        *Output:None
        *Return:None
        */
        voidUSART1_IRQHandler(void)
        {
        if(USART_GetITStatus(USART1,USART_IT_TC)==SET)
        {
        if(*pDataByte==

        主站蜘蛛池模板: 屏边| 河北区| 霍林郭勒市| 鹿泉市| 吴忠市| 砚山县| 额济纳旗| 郴州市| 甘孜县| 承德市| 金湖县| 光泽县| 乐昌市| 五指山市| 汶川县| 南充市| 翁源县| 五莲县| 射阳县| 金乡县| 洮南市| 琼结县| 韶山市| 神池县| 宁强县| 夏邑县| 区。| 永顺县| 吉木乃县| 天峨县| 汤原县| 景宁| 舞钢市| 德江县| 潞城市| 扶绥县| 铜川市| 灵武市| 南投市| 疏附县| 本溪|