IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 嵌入式系统开发环境下,STM32的USART串口通讯程序编译教程(查询方式)及波形时序状态分析 -> 正文阅读

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


前言

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


一、准备工作

1. 题目要求

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

2. 实验工具

2.1 硬件工具

  • STM32F103C8T6最小核心板:
    在这里插入图片描述
  • USB转TTL:
    在这里插入图片描述

2.2 软件工具

  • CH340驱动(USB串口驱动):
    在这里插入图片描述
  • 串口通信助手:
    在这里插入图片描述
  • keil c51开发环境
    在这里插入图片描述

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

  • 双击应用程序进行安装:
    在这里插入图片描述
  • 驱动安装成功提示:
    在这里插入图片描述
  • 在电脑设备管理器处查看有无com端口出现,有即可证明成功:
    在这里插入图片描述

4. 硬件连线

  • 转接口选择:GND、RXD、TXD、3V3
  • STM32核心板选取端口:GND、3v3、A9、A10
  • 对应连接:GND-GND;3V3-3V3;RXD-A9;TXD-A10
    在这里插入图片描述

二、串口通讯工程创建

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

1.创建工程

  • 点击ACCESS TO MCU SELECTOR
    在这里插入图片描述
  • 选择stn32F103C8开发板:
    在这里插入图片描述
  • Mode选择异步通信(Asynchronous):
    在这里插入图片描述
  • 波特率为115200,1位停止位,无校验位(这里不需要改,默认就是这样):
    在这里插入图片描述
  • 勾选Enabled:
    在这里插入图片描述
  • 配置项目设置(名称、位置、环境):
    在这里插入图片描述
  • 生成项目:
    在这里插入图片描述

2.代码编写

  • 用keil打开刚刚在CubeMX生成的项目文件:
    在这里插入图片描述
  • 在main.c中定义STM32需要给上位机发送的消息:
	uint8_t hello[20]="hello windows!\n";

在这里插入图片描述

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

在这里插入图片描述

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

    /* USER CODE BEGIN 3 */
  }

在这里插入图片描述

  • 编译文件:
    在这里插入图片描述

三、串口通讯程序烧录

1. 打开FlyMcu

  • 选择刚刚程序编译生成的hex文件,并搜索串口:
    在这里插入图片描述

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

  • ,按下复位按钮:

在这里插入图片描述

3. 开始编程

在这里插入图片描述

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

1. 开发板boot0和boot1都置0

  • 按下复位键:
    在这里插入图片描述

2. 打开串口助手

  • 查看环境配置是否正确:
    在这里插入图片描述
  • 点击“打开串口”,查看运行结果:
    在这里插入图片描述

五、Keil观察串口输出波形

1. 环境搭建

  • 魔法棒中Target界面设置:
    在这里插入图片描述
  • Debug页面设置:
    在这里插入图片描述

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

在这里插入图片描述

3. 添加引脚,输入

  • 点击“Setup”
  • 输入引脚地址USART1_SR
  • 调为Bit模式
  • 最后点击close
    在这里插入图片描述

4. 运行程序、观察波形

  • 运行程序:
    在这里插入图片描述
  • 放大波形后可以看到,低电平持续实际时间为86.5us:
    在这里插入图片描述
  • 同理,放大波形后可以看到,高电平持续实际时间为6us:
    在这里插入图片描述

总结

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

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

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:50:48  更:2022-10-17 12:52:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:36:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码