新聞中心

STM32串口發(fā)送中斷

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò) 收藏


SECTION2

本文引用地址:http://m.butianyuan.cn/article/201611/318079.htm

先說(shuō)TC。即TransmissionComplete。發(fā)送一個(gè)字節(jié)后才進(jìn)入中斷,這里稱為“發(fā)送后中斷”。和原來(lái)8051的TI方式一樣,都是發(fā)送后才進(jìn)中斷,需要在發(fā)送函數(shù)中先發(fā)送一個(gè)字節(jié)觸發(fā)中斷。發(fā)送函數(shù)如下

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

USART_ClearFlag(USART1,USART_FLAG_TC);//清除傳輸完成標(biāo)志位,否則可能會(huì)丟失第1個(gè)字節(jié)的數(shù)據(jù).網(wǎng)友提供.

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


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