×
单片机 > 单片机程序设计 > 详情

STM32f4---串口通信实验代码(02)

发布时间:2020-05-19 发布时间:
|

介绍完了这两个函数,我们回到main.c,对于main.c前面引入的头文件为了篇幅考虑,我们后面的实验不再列出,详情请参考我们实验代码即可。主函数代码如下:

int main(void)

{  

  u8 t,len;  u16 times=0;  

       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2  

  delay_init(168);    //延时初始化  

  uart_init(115200);  //串口初始化波特率为115200

  LED_Init();           //初始化与 LED连接的硬件接口   

  LED0=0;              //先点亮红灯

  while(1)

  {

    if(USART_RX_STA&0x8000)

    {              

      len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度

      printf(" 您发送的消息为: ");

      for(t=0;t

      {

        USART1->DR=USART_RX_BUF[t];

        while((USART1->SR&0X40)==0);//等待发送结束

      }

      printf(" ");//插入换行

      USART_RX_STA=0;

}else

    {

      times++;

      if(timesP00==0)

      {    printf(" ALIENTEK 探索者 STM32F407 开发板 串口实验 ");

        printf("正点原子@ALIENTEK ");

      }

      if(times 0==0)printf("请输入数据,以回车键结束 ");   

      if(times0==0)LED0=!LED0;//闪烁 LED,提示系统正在运行.

      delay_ms(10);    

    }

  }

}

这段代码比较简单,开头部分我们先调用 NVIC_PriorityGroupConfig 函数设置系统的中断优先级分组。然后调用uart_init 函数,设置波特率为 115200。接下来我们重点看下以下两句: 

USART_SendData(USART1, USART_RX_BUF[t]);          //向串口1 发送数据

while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);

第一句,其实就是发送一个字节到串口。第二句呢,就是我们在我们发送一个数据到串口之后,要检测这个数据是否已经被发送完成了。USART_FLAG_TC 是宏定义的数据发送完成标识符。

其他的代码比较简单,我们执行编译之后可以看到,没有任何错误和警告,下面我们可以开始下载验证了。


关键字:STM32f4  串口通信  实验代码 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址