STM32串口中斷的一些資料
TC====TXE
本文引用地址:http://m.butianyuan.cn/article/201611/318082.htm順便預(yù)告下最近會(huì)寫個(gè)有關(guān)串口處理數(shù)據(jù)的帖子,從查詢和中斷方面以及數(shù)據(jù)處理的方式,從隊(duì)列以及FIFO方面寫起。
SECTION1
先說TC。即TransmissionComplete。發(fā)送一個(gè)字節(jié)后才進(jìn)入中斷,這里稱為“發(fā)送后中斷”。和原來8051的TI方式一樣,都是發(fā)送后才進(jìn)中斷,需要在發(fā)送函數(shù)中先發(fā)送一個(gè)字節(jié)觸發(fā)中斷。發(fā)送函數(shù)如下
/*
功能:中斷方式發(fā)送字符串.采用判斷TC的方式.即判斷發(fā)送后中斷位.
輸入:字符串的首地址
輸出:無
*/
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==