股票

SAM4S串口不能输出数据问题

我用的是SysTick_Handler定时中断,然后在main函数中设置定时时钟,结果碰到好几次,两个程序串口配置完全一样,但是其中一个就是不进入定时中断发送数据。开始我还以为是SysTick_Handler初始化有问题,加载了ASF选项中的头文件,Interrupt management,还加载了Timer Counter,但是串口怎么都没有输出。比较了一下两个程序,发现同样是while(1),不工作的测试程序中只有一段语句,像这样:

 
  1. while ( 1 )  
  2. {  
  3.     if ( UART_UpdataFlag )  
  4.     {  
  5.         printf( “Hello world!\n” );  
  6.         UART_UpdataFlag = 0;  
  7.     }  
  8. }  

而原来的能输出串口的代码是这样:

 
  1. while ( 1 )  
  2. {  
  3.         ……  
  4.     if ( UART_UpdataFlag )  
  5.     {  
  6.         printf( “Hello world!\n” );  
  7.         UART_UpdataFlag = 0;  
  8.     }  
  9.         ……  
  10. }  

区别就是除了这个意外,还有别的执行代码,于是我就在测试代码里加个延时,比如 delay_ms(1)。果然,可以正常工作了,至于具体原因,还不明白,以后查到再进行说明。

打赏
原文链接:,转发请注明来源!

发表评论