把主函数改动一下:
- ////////////////////////////////////////
- // 项目主函数
- // 入口参数: 无
- // 函数返回: 无
- ////////////////////////////////////////
- void main(void)
- {
- //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
- // 在此添加用户主函数初始化代码
- u16 len = 0;
- u16 i = 0;
- //<<AICUBE_USER_MAIN_INITIAL_END>>
-
- SYS_Init();
-
- //<<AICUBE_USER_MAIN_CODE_BEGIN>>
- // 在此添加主函数中运行一次的用户代码
- printf("Hello World !\n");
- //<<AICUBE_USER_MAIN_CODE_END>>
-
- while (1)
- {
- //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
- // 在此添加主函数中用户主循环代码
- if(UART1_RX_STA & 0x8000) //判断16位数据UART1_RX_STA最高位是否=1
- {
- len= UART1_RX_STA%0x3FFF; //取出状态字中的长度
- for(i=0;i<len;i++)
- {
- UART1_SendData(UART1_RX_BUF[i]);
- while(!UART1_CheckTxFlag()); //等待每个字符发送完成
- UART1_ClearTxFlag(); //清除串口发送中断标志
- }
- UART1_RX_STA = 0; //本次发送完成,清状态字准备好下一次接收
- printf("Hello World !\n");
- }
- //<<AICUBE_USER_MAIN_LOOP_END>>
- }
- }
复制代码
证实printf()函数也是正常的,到处可以本实验结束 |