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收发数据,运行的时候无法进入中断函数,不知道是什么问题?但是单独发送可以发送数据到电脑串口助手上。我是想将电脑发送的数据再用程序返发送回电脑,但程序就是无法接收。
2、进了中断程序飞掉的问题竟然是不能有那个延时函数的语句,去掉后就正常了。而且加了延时语句后 后面的语句都不能执行,所以才觉得这个延时语句要去掉。
我前面的串口一是做重定向的,在这上面改的,所以就出现了不能进中断,但是中断里面怎么会不能加延时函数呢?再看看再说。
一周热门 更多>