STM32的USART串口通讯程序(查询方式)


文章目录

  • STM32的USART串口通讯程序(查询方式)
    • 一、USART介绍
      • 1.异步通信:
      • 2.同步通信:
    • 二、CubeMX创建项目
      • 1.点击ACCESS TO MCU SELECTOR
      • 2.选择F103C8
      • 3.Mode选择异步通信(Asynchronous)
      • 4.波特率为115200,1位停止位,无校验位(这里不需要改,默认就是这样)
      • 5.配置项目设置
      • 6.生成项目
    • 三、Keil编译程序以及Hex文件的生成
      • 1.用keil打开刚刚在CubeMX生成的项目文件
      • 2.在main.c文件中补充代码
      • 3.编译文件
    • 四、烧录程序到开发板
      • 1.打开mcuisp(或者FlyMcu)
      • 2.把开发板`boot0`置**1**,`boot1`置**0**,按下复位按钮
      • 3.搜索串口
      • 4.开始编程
    • 五、调用调试助手,打开串口查看结果
      • 1.把开发板`boot0`和`boot1`都置0,按下复位键
      • 2.调用开发助手
    • 六.在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察
      • 1.魔法棒中Target界面设置
      • 2.Debug页面设置
      • 3.开始调试
      • 4.添加引脚,输入
      • 5.运行程序
      • 6.观察波形
    • 七.参考

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

  • KEIL5:[安装教程](https://blog.csdn.net/zhoushuaiyxlmwan/article/details/127190907?
    spm=1001.2014.3001.5502)

  • 野火多功能调试助手:https://pan.baidu.com/s/14zEjYNlU-2CjgoR1sI5dSg 提取码:rau0

  • mcuisp(或者FlyMcu): mcuisp百度网盘链接提取码:h2xc

  • STM32F103C8T6的最小核心板


一、USART介绍

USART/UART通信是STM32的一个非常重要的外设,是一种通用串行数据总线,可实现全双工通信。

UART:通用异步收发器,
USART:通用同步/异步收发器,

  • 可以看出USART比UART多了一个同步模式。

1.异步通信:

异步通信是按字符传输的。每传输一个字符就用起始位来进来收、发双方的同步。不会因收发双方的时钟频率的小的偏差导致错误。
这种传输方式利用每一帧的起、止信号来建立发送与接收之间的同步。特点是:每帧内部各位均采用固定的时间间隔,而帧与帧之间的间隔时随即的。接收机完全靠每一帧的起始位和停止位来识别字符时正在进行传输还是传输结束。

2.同步通信:

进行数据传输时,发送和接收双方要保持完全的同步,因此,要求接收和发送设备必须使用同一时钟。
优点是可以实现高速度、大容量的数据传送;缺点是要求发生时钟和接收时钟保持严格同步,同时硬件复杂。

本文使用异步通信


二、CubeMX创建项目

1.点击ACCESS TO MCU SELECTOR

2.选择F103C8

3.Mode选择异步通信(Asynchronous)

4.波特率为115200,1位停止位,无校验位(这里不需要改,默认就是这样)


5.配置项目设置

6.生成项目


三、Keil编译程序以及Hex文件的生成

1.用keil打开刚刚在CubeMX生成的项目文件

2.在main.c文件中补充代码

我们需要使用HAL库中HAL_UART_Transmit()函数来进行查询方式加粗样式的串口通讯


①.在main.c中定义STM32需要给上位机发送的消息

 uint8_t hello[20]="hello world\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 */}

3.编译文件


四、烧录程序到开发板

1.打开mcuisp(或者FlyMcu)

2.把开发板boot01boot10,按下复位按钮

3.搜索串口

4.开始编程


五、调用调试助手,打开串口查看结果

1.把开发板boot0boot1都置0,按下复位键

2.调用开发助手



六.在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察

1.魔法棒中Target界面设置

2.Debug页面设置

左Dialog DDL:DARMSTM.DLL
左Parameter:-pSTM32F103C8

右Dialog TARMSTM.DLL
右Parameter:-pSTM32F103C8

3.开始调试

4.添加引脚,输入

①.点击添加

②.输入引脚地址`USART1_SR

最后点击close

5.运行程序

6.观察波形




七.参考

https://blog.csdn.net/isyuuun/article/details/121042146

STM32的USART串口通讯程序(查询方式)相关推荐

  1. 了解串口协议,及完成STM32的USART串口通讯程序,并用keil观察波形

    文章目录 前言 一.串口协议 1.RS-232 2.485标准 二.RS-232.485和TTL电平 1.RS-232电平 2.485 3.TTL电平 4.区别 三.USB/TTL转232 1.CH3 ...

  2. 【嵌入式系统开发11】串口通讯“小试牛刀”——完成一个STM32的USART串口通讯程序

    本文目的是主要介绍通过STM32F103C8T6完成一个STM32的USART串口通讯程序,在没有示波器条件下,使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形. 文章目录 前言 (一)需求分析 ...

  3. 在 stm32CubeMX下生成程序完成流水灯以及完成STM32的USART串口通讯程序实现STM32系统给上位机(win10)连续发送“hello windows”

    目录 一.STM32CubeMX简介及安装 二.利用STM32CubeMX生成代码 1.创建项目 2.配置芯片 3.导出项目 ​ 三.Keil中补充代码完善功能 四.在Keil中观察实验波形 五.US ...

  4. STM32的USART串口通讯程序

    文章目录 一.STM32 USART串口通信 1.串口通信简介 1.1.物理层 1.2.协议层 2.STM32 的 USART 简介 二.STM32的USART串口通讯程序 1.创建项目 2.添加.s ...

  5. 基于STM32的USART串口通讯程序

    文章目录 一.串口协议和RS-232.485标准,以及RS232.485电平与TTL电平的区别,USB/TTL转232模块的工作原理 1.串口协议 2.RS-232.RS-485标准 3.RS232. ...

  6. 串口通信-STM32的USART串口通讯程序

    目录 一.原理介绍 1.串口协议 2.常用协议标准 1)RS-232 2)RS-485 3.RS232.485电平与TTL电平的区别 1)RS232电平 2)RS485电平 3)TTL电平 4)RS2 ...

  7. 完成一个STM32的USART串口通讯程序

    一.hal库实现 (1)打开STM32CubeMX,创建新项目(如下图红框,此时我已经建立完项目,点击如图中1的历史项目) (2)选择STM32F103C8开发板 (3)如下图选择高速时钟 (4)设置 ...

  8. 基于STM32安装Stm32CubeMX,配合Keil完成LED流水灯和USART串口通讯程序,及其管脚的时序波形观察

    目录 一.使用HAL库完成LED流水灯 (一).用STM32CUBEMX生成工程文件 (二).用Keil仿真调试并生成hex文件 (三).用STM32串口烧录程序 (四).实物连接 二.使用HAL库完 ...

  9. 基于STM32F103C8的USART串口通讯程序

    目录 一.串口协议和RS-232.485标准,RS232.485电平.与TTL电平的区别,"USB/TTL转232"模块的工作原理(以CH340芯片模块为例) 一.串口协议 STM ...

最新文章

  1. C++学习笔记-----std::pair作为unordered_map的key
  2. CSS Hack汇总(转载)
  3. 什么是大数据,怎么理解和应对大数据时代
  4. DS90C385MTD一个芯片搞定LVDS 大分辨率LCD
  5. ES6 json转map map转json
  6. Hadoop集群搭建及配置⑥ —— Hadoop组件安装及配置
  7. 联想笔记本电脑电池修复
  8. TTL信号也能高速稳定的传输100m+,是的,你没有听错,量产电路推荐
  9. matlab模拟滤波器频率响应,怎样求FIR滤波器在任意频率上的频率响应?
  10. 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限 | CYZONE特写...
  11. UWP中的Direct2D
  12. catia v5r18 百度云_catia v5r18 64位免费版 附带安装教程
  13. 项目开发过程中的管理规范
  14. comsol圆柱形永磁体_基于COMSOL Multiphysics的磁场仿真分析
  15. 计算机图学实验报告,计算机图形学实验报告实验1
  16. QPython-在安卓手机上运行Python的利器
  17. 【精品】轻松部署ceph分布式存储集群
  18. 【Python】tkinter点击按钮后获取按钮本身
  19. BQ25504芯片解析
  20. Linux虚拟主机安装WordPress教程

热门文章

  1. 狗生活在陆地上 java,第四晚,生活在陆地上的鱼
  2. 数据结构与算法邓俊辉——(二)
  3. laravel-集合对象的销毁forget,重组values(),pluck ()方法
  4. css英文字体 在线引用,css字体英文名称(示例代码)
  5. 记:解决 Weditor 页面元素坐标定位不到、不准确的问题
  6. Win10 没有激活,如何改变任务栏位置
  7. 5菜鸟教程_【菜鸟手册7】如何在NVIDIA Jetson平台上安装Anaconda
  8. 京东运营 不错的帖子
  9. Mac Mounty 安全退出硬盘
  10. 房地产估值法研究报告_房地产估值方法