void USART1_IRQHandler(void) //接收中断函数,接收数据
{
if(USART_Ge
tiTStatus(USART1, USART_IT_RXNE)!= RESET)
{
delay_ms(5);
res=USART_ReceiveData(USART1); //res是一个全局变量
}
}
int main(void)
{
gpioa_init(); //设置PA9,PA10引脚
usart_init1(); //usart1初始化
nvic_USART1_init(); //接收中断优先级设置
while(1)
{
delay_ms(100);
USART_SendData(USART1,res);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
}
仿真测试出口1收发数据,运行的时候无法进入中断函数,不知道是什么问题?但是单独发送可以发送数据到电脑串口助手上。我是想将电脑发送的数据再用程序返发送回电脑,但程序就是无法接收。
而主程序则不停的判断这个接收标志,判断到接收标志为有效时,才进行必要的处理,在你这就时当标志有效时,才将接收到的数据发送出去。
我这是根本没进中断啊,所以即使有接收标志也没用,我的中断也是打开的,PA10 RX脚也是浮空输入,没有理由不进中断啊
一周热门 更多>