嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析

文章目录

  • 前言
  • 一、准备工作
    • 1. 题目要求
    • 2. 实验工具
      • 2.1 硬件工具
      • 2.2 软件工具
    • 3. CH340驱动(USB串口驱动)的安装
    • 4. 硬件连线
  • 二、串口通讯工程创建
    • 1.创建工程
    • 2.代码编写
  • 三、串口通讯程序烧录
    • 1. 打开FlyMcu
    • 2. 开发板boot0置1,boot1置0
    • 3. 开始编程
  • 四、调用串口助手,查看结果
    • 1. 开发板boot0和boot1都置0
    • 2. 打开串口助手
  • 五、Keil观察串口输出波形
    • 1. 环境搭建
    • 2. 调试,并选择逻辑分析仪
    • 3. 添加引脚,输入
    • 4. 运行程序、观察波形
  • 总结


前言

本文仅简单介绍在嵌入式系统开发环境下,通过STM32系统与上位机(win10)的连接,完成一个简单的“hello windows!”串口通讯程序


一、准备工作

1. 题目要求

  • 完成一个STM32的USART串口通讯程序(查询方式即可,暂不要求采用中断方式),要求:
    1)设置波特率为115200,1位停止位,无校验位;
    2)STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收
  • 在没有示波器条件下,使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。 用此功能观察上题中的串口输出波形,并分析时序状态正确与否,高低电平转换周期(LED闪烁周期)实际为多少。

2. 实验工具

2.1 硬件工具

  • STM32F103C8T6最小核心板:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第1张图片
  • USB转TTL:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第2张图片

2.2 软件工具

  • CH340驱动(USB串口驱动):
    在这里插入图片描述
  • 串口通信助手:
    在这里插入图片描述
  • keil c51开发环境
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第3张图片

3. CH340驱动(USB串口驱动)的安装

  • 双击应用程序进行安装:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第4张图片
  • 驱动安装成功提示:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第5张图片
  • 在电脑设备管理器处查看有无com端口出现,有即可证明成功:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第6张图片

4. 硬件连线

  • 转接口选择:GND、RXD、TXD、3V3
  • STM32核心板选取端口:GND、3v3、A9、A10
  • 对应连接:GND-GND;3V3-3V3;RXD-A9;TXD-A10
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第7张图片

二、串口通讯工程创建

  • 本次工程实现环境是基于Stm32CubeMX下进行的

1.创建工程

  • 点击ACCESS TO MCU SELECTOR
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第8张图片
  • 选择stn32F103C8开发板:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第9张图片
  • Mode选择异步通信(Asynchronous):
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第10张图片
  • 波特率为115200,1位停止位,无校验位(这里不需要改,默认就是这样):
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第11张图片
  • 勾选Enabled:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第12张图片
  • 配置项目设置(名称、位置、环境):
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第13张图片
  • 生成项目:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第14张图片

2.代码编写

  • 用keil打开刚刚在CubeMX生成的项目文件:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第15张图片
  • 在main.c中定义STM32需要给上位机发送的消息:
	uint8_t hello[20]="hello windows!\n";

嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第16张图片

  • 在main.c中定义一个延时函数,来使设置发送的时间间隔:
void  Delay_wxc( volatile  unsigned  int  t)
{
     unsigned  int  i;
     while(t--)
         for (i=0;i<800;i++);
}

嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第17张图片

  • 在while循环中调用查询,并调用延时函数:
 while (1)
  {
		
			HAL_UART_Transmit(&huart1,hello,20,100000);
			Delay_wxc(3500); //这里每个人电脑不一样发送的间隔时延需要自己调整尝试
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第18张图片

  • 编译文件:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第19张图片

三、串口通讯程序烧录

1. 打开FlyMcu

  • 选择刚刚程序编译生成的hex文件,并搜索串口:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第20张图片

2. 开发板boot0置1,boot1置0

  • ,按下复位按钮:

嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第21张图片

3. 开始编程

嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第22张图片

四、调用串口助手,查看结果

1. 开发板boot0和boot1都置0

  • 按下复位键:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第23张图片

2. 打开串口助手

  • 查看环境配置是否正确:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第24张图片
  • 点击“打开串口”,查看运行结果:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第25张图片

五、Keil观察串口输出波形

1. 环境搭建

  • 魔法棒中Target界面设置:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第26张图片
  • Debug页面设置:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第27张图片

2. 调试,并选择逻辑分析仪

嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第28张图片

3. 添加引脚,输入

  • 点击“Setup”
  • 输入引脚地址USART1_SR
  • 调为Bit模式
  • 最后点击close
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第29张图片

4. 运行程序、观察波形

  • 运行程序:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第30张图片
  • 放大波形后可以看到,低电平持续实际时间为86.5us:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第31张图片
  • 同理,放大波形后可以看到,高电平持续实际时间为6us:
    嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析_第32张图片

总结

通过本文的本文简单介绍,希望大家帮助大家理解:在嵌入式系统开发环境下,通过STM32系统与上位机(win10)的连接,完成一个简单的“hello windows!”串口通讯程序的实现过程,同时学会使用逻辑分析仪观察时序波形。
同时也期待大家能够积极留言,指出我存在的问题,谢谢!

参考文献:
https://blog.csdn.net/zhoushuaiyxlmwan/article/details/127327982

你可能感兴趣的:(stm32,单片机,arm)