STM32串口USART1中断接收和中断发送
来源: 电子工程世界
新闻行业新闻
先贴出中断函数:
[plain] view plain copy
void USART1_IRQHandler(void){
IF (USART_GetiTStatus(USART1, USART_IT_RXNE) != RESET) {
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
USART1_Buffer[i++]=USART_ReceiveData(USART1); //USART1_Buffesh是一个自己定义的接收数组
if(i>3){
SendFlag = 1;
}
}
if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET){ //USART_IT_TC这里也可替换
if(Open_Send_Flag){ //这是一个发送的标志
uart1_sendstring(temp_data);
USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //USART_IT_TC
Open_Send_Flag = 0;
}
else{
USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //USART_IT_TC
}
}
}
发送字符串的函数:
[plain] view plain copy
void uart1_sendstring(uint8_t* cp)
{
while((*cp)!='
文章来源于: 电子工程世界原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。