我在網上看了很多示例代碼,但是我自己嘗試后才發現通過串口發送的資料會反復發送,是我的中斷寫錯了嗎,我也試著清除標志位,但是也不行,下面是部分代碼,請大神指導。
void USART1_SendData4(uint8_t data1,uint8_t data2,uint8_t data3,uint8_t data4)
{
USART1_SendByte(data1);
USART1_SendByte(data2);
USART1_SendByte(data3);
USART1_SendByte(data4);
USART_ClearFlag(USART1,USART_FLAG_TC);
}
void USART1_SendByte(uint8_t data)
{
USART_SendData(USART1,data);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);
}
void USART1_IRQHandler()
{
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
USART_ClearFlag(USART1,USART_FLAG_ORE);//清除溢位中斷
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57914.html
標籤:其他硬件開發
