找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4100|回复: 4
打印 上一主题 下一主题
收起左侧

STM32F429系列单片机串口通讯源码

[复制链接]
跳转到指定楼层
楼主
ID:321232 发表于 2018-5-3 14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32f系列单片机串口通讯实验程序源码
实验器材:
    阿波罗STM32F429开发板
   
实验目的:
    学习串口的使用(接收与发送)
   
硬件资源:
    1,DS0(连接在PB1)
    2,串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面)
   
   
实验现象:
    本实验,STM32通过串口1和上位机对话,STM32在收到上位机发过来的字符串(以回车换
    行结束)后,原原本本的返回给上位机。下载后,DS0闪烁,提示程序在运行,同时每隔
    一定时间,通过串口1输出一段信息到电脑。
   
注意事项:
    1,电脑端串口调试助手波特率必须是115200.


    2,请使用XCOM/SSCOM串口调试助手,其他串口助手可能控制DTR/RTS导致MCU复位/程序不运行
    3,串口输入字符串以回车换行结束.
    4,请用USB线连接在USB_232,找到USB转串口后测试本例程.
    5,P4的PA9/PA10必须通过跳线帽连接在RXD/TXD上.

单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"

  6. int main(void)
  7. {
  8.     u8 len;       
  9.         u16 times=0;
  10.     HAL_Init();                     //初始化HAL库   
  11.     Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
  12.     delay_init(180);                //初始化延时函数
  13.     uart_init(115200);              //初始化USART
  14.     LED_Init();                     //初始化LED
  15.     KEY_Init();                     //初始化按键

  16.     while(1)
  17.     {
  18.                        
  19.        if(USART_RX_STA&0x8000)
  20.                 {                                          
  21.                         len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
  22.                         printf("\r\n您发送的消息为:\r\n");
  23.                         HAL_UART_Transmit(&UART1_Handler,(uint8_t*)USART_RX_BUF,len,1000);        //发送接收到的数据
  24.                         while(__HAL_UART_GET_FLAG(&UART1_Handler,UART_FLAG_TC)!=SET);                //等待发送结束
  25.                         printf("\r\n\r\n");//插入换行
  26.                         USART_RX_STA=0;
  27.                 }else
  28.                 {
  29.                         times++;
  30.                         if(times%5000==0)
  31.                         {
  32.                                 printf("\r\nALIENTEK 阿波罗STM32F429开发板 串口实验\r\n");
  33.                                 printf("正点原子@ALIENTEK\r\n\r\n\r\n");
  34.                         }
  35.                         if(times%200==0)printf("请输入数据,以回车键结束\r\n");  
  36.                         if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
  37.                         delay_ms(10);   
  38.                 }
  39.     }
  40. }
复制代码

所有资料51hei提供下载:
串口通信实验.rar (977.34 KB, 下载次数: 39)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:335252 发表于 2018-7-20 15:23 | 只看该作者
工程打不开
回复

使用道具 举报

板凳
ID:512873 发表于 2019-9-25 10:27 | 只看该作者
下载看下,不好使割你小JJ。
回复

使用道具 举报

地板
ID:616902 发表于 2019-9-26 21:16 | 只看该作者
有没有h750的原理图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表