目录

一、使用HAL库完成LED流水灯

(一)、用STM32CUBEMX生成工程文件

(二)、用Keil仿真调试并生成hex文件

(三)、用STM32串口烧录程序

(四)、实物连接

二、使用HAL库完成USART串口通讯程序

(一)、用STM32CUBEMX生成工程文件

(二)、用Keil仿真调试并生成hex文件

(三)、用STM32串口烧录程序

(四)、用“串口助手”工具接收通讯

三、使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形

(一)、观察LED流水灯3个GPIO端口的输出波形

(二)、观察USART串口通讯程序串口输出波形

四、总结

五、参考文献


一、使用HAL库完成LED流水灯

(一)、用STM32CUBEMX生成工程文件

1.下载安装STM32CUBEMX,点击help,下载依赖包

2.选择自己的芯片,选上前面的复选框就可以下载了,前面是绿色就代表已经下载好了,我已经下载过了

3.依赖包下载好之后回到home界面,选择ACCESS TO MCU SELECTCR创建新项目

4.在Pat Number那输入自己的芯片,我选择的是stm32F103C8, 选中你要的芯片的封装类型,然后点击Start  Project

5.进入如下界面后,在System Core中点击SYS,在Debug那里选择Serial Wire

6.配置时钟,进入上面的RCC,有两个时钟,一个是HSE和LSE,我们要用是GPIO接口,而这些接口都在APB2里 ,选择Clock Configuration界面观察时钟架构,在这个界面把PLLCLK右边选上

7. 回到如下界面后,HSE那里设为Crystal/Ceramic Resonator

8.点击相应的引脚设置输出寄存器,选择为GPIOX_OUTPUT,我选择的是PA7、PB8、PC15

注:引脚设置根据自己的实际情况来选择,我起初选择的是PB9,在进行实物连线时,发现PB9管脚已损坏,无法正常运行,于是便改成了PB8

 9.点击System core里的GPIO,把点击引脚名,把输出等级改为high

注:这里不改也没什么,只是程序运行开始时初始状态不一样,mode不用改

10.进入Project Manager界面输入你的项目名称和你项目保存的地址,将IDE那项改为MDK-ARM

注:项目保存的地址不能有中文,否则会出错

11.点击Code Generatr,选择生成初始化.c/.h文件,然后点击Generate Code,生成工程文件

(二)、用Keil仿真调试并生成hex文件

Keil相关环境配置请参考:

Keil嵌入式开发环境下基于STM32汇编程序的编写_迷信的兔子的博客-CSDN博客目录一、新建工程二、配置环境2.1选择设备2.2选择运行设备2.3添加源文件三、汇编程序3.1编写代码,源代码如下3.2仿真器设置3.3编译调试四、调试分析前8个字节内容含义:五、总结六、参考文献一、新建工程打开Keil uVision5(演示版本号为5.31)点击菜单栏的Project在弹出的窗口点击选项New uVision Project,创建新的工程在弹出的窗口中进行设置项目工程的路径、名称并保存(演示名称使用TE.https://blog.csdn.net/qq_48273416/article/details/120576064

1.进入对应文件夹,再打开MDK-ARM文件夹,通过keil打开刚刚生成的项目

2.然后找到main文件,滑到主函数那一部分

3.将下面代码放入主函数中替代里面的内容

SystemClock_Config();//系统时钟初始化MX_GPIO_Init();//gpio初始化while (1){     HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯HAL_Delay(500);//延时0.5s        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);//PB8亮灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);//PB8熄灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯HAL_Delay(500);//延时0.5sHAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯HAL_Delay(500);//延时0.5s}

4.编译运行代码,生成hex文件

(三)、用STM32串口烧录程序

串口烧录过程参考下面链接:

STM32串口下载程序_lengyuefeng212的博客-CSDN博客_stm32 串口下载程序STM32 串口下载程序 引言:如果我们用下载器下载程序很快,很方便,但是需要购买下载器,很破费。为此我们用串口 下载程序,省去了购买下载器的麻烦。下面介绍用串口下载程序的方法:所需工具: 串口转 TTL 模块一个,STM32 单片机一个,杜邦线 4 根,mcuisp 软件。单片机最小系统如图所示: 自制串口下载电路:(自制开发板的时候使用,本...https://blog.csdn.net/lengyuefeng212/article/details/104178386

(四)、实物连接

1.实物连线

2.运行结果

二、使用HAL库完成USART串口通讯程序

(一)、用STM32CUBEMX生成工程文件

1.打开STM32CUBEMX,选择ACCESS TO MCU SELECTCR创建新项目

2.在Pat Number那输入自己的芯片,我选择的是stm32F103C8, 选中你要的芯片的封装类型,然后点击Start  Project

3.进入如下界面后,在System Core中点击SYS,在Debug那里选择Serial Wire

4. .配置时钟,进入上面的RCC,有两个时钟,一个是HSE和LSE,我们要用是GPIO接口,而这些接口都在APB2里 ,选择Clock Configuration界面观察时钟架构,在这个界面把PLLCLK右边选上

5.回到如下界面后,HSE那里设为Crystal/Ceramic Resonator

6.点击相应的引脚设置输出寄存器,选择PA9和PA10管脚

注:PA9选择USART1_TX;PA10选择USART1_RX

7.点击System core里的GPIO,点击USART进行管脚自定义

注:这里不改也没什么

8.配置USART:选择Connectivity——>选择USART1——>点击Mode,选择异步通信(Asynchonous)

9.配置USART1,在NVIC选择中断配置

10.进入Project Manager界面输入你的项目名称和你项目保存的地址,将IDE那项改为MDK-ARM

注:项目保存的地址不能有中文,否则会出错

11. 点击Code Generatr,选择生成初始化.c/.h文件,然后点击Generate Code,生成工程文件

(二)、用Keil仿真调试并生成hex文件

1.进入对应文件夹,再打开MDK-ARM文件夹,通过keil打开刚刚生成的项目

2.然后找到main文件,滑到主函数那一部分

3.将下面代码放入主函数中while循环替代里面的内容

unsigned char text[15]="Hello Windows\n";
HAL_Delay (1000);
HAL_UART_Transmit (&huart1,text,15,HAL_MAX_DELAY );

4.编译运行代码,生成hex文件

(三)、用STM32串口烧录程序

串口烧录过程参考下面链接:

STM32串口下载程序_lengyuefeng212的博客-CSDN博客_stm32 串口下载程序STM32 串口下载程序 引言:如果我们用下载器下载程序很快,很方便,但是需要购买下载器,很破费。为此我们用串口 下载程序,省去了购买下载器的麻烦。下面介绍用串口下载程序的方法:所需工具: 串口转 TTL 模块一个,STM32 单片机一个,杜邦线 4 根,mcuisp 软件。单片机最小系统如图所示: 自制串口下载电路:(自制开发板的时候使用,本...https://blog.csdn.net/lengyuefeng212/article/details/104178386

(四)、用“串口助手”工具接收通讯

烧录完成后,选择串口工具,进行实验

串口工具可自行下载,我用的是野火串口助手

三、使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形

(一)、观察LED流水灯3个GPIO端口的输出波形

1.用Keil打开工程,找到main文件,进行编译

2. 点开魔法棒工具进入Debug界面,在 Debug界面下,勾选 Use Simulator,即进行虚拟调试,将Dialog dll和Parameter默认配置改为  Dialog dll:DARMSTM.dll   Parameter:-pSTM32F103C8

3.运行仿真,进入仿真界面后,选择逻辑分析仪

4.点击Setup,进入界面点击New Insert

输入你要观察的端口再按回车,格式如下:

将Display选项选为Bit,然后关闭界面

5.开始运行仿真

将每一个方格设为1s,可以看到一个周期近似为3s,高电平近似为2.5S,低电平近似为0.5S

(二)、观察USART串口通讯程序串口输出波形

1.参考上文的方法调出波形

2.选择USART1_SR端口进行观察

3. 对输出电平进行观察,每秒便出现一个高电平,总共14个冲激电平,算上一个停止位刚好与“Hello Windows”13位对应。

四、总结

通过本次实验,我深入的了解了串口协议,以及"USB/TTL转232"模块的工作原理。明白了如何通过HAL库完成LED流水灯以及STM32的USART串口通讯程序,认识到了STM32CubeMX是一个功能十分强大的软件,同时也明白了如何在Keil软件里通过仿真逻辑分析仪功能观察管脚的时序波形。

五、参考文献

《零死角玩转STM32—F103指南者》

使用STMCubeMX生成代码(使用hal库)实现流水灯_junseven164的博客-CSDN博客

STM32串口下载程序_lengyuefeng212的博客-CSDN博客_stm32 串口下载程序

​​​​​​用stm32CubeMX完成LED点亮和STM32的USART串口通讯并通过逻辑分析仪分析以上波形_qq_47538417的博客-CSDN博客

loser学ARM实操五:基于STM32F103CubeMX实现串口通信(库函数)_Lc-Yusheng的博客-CSDN博客

基于STM32安装Stm32CubeMX,配合Keil完成LED流水灯和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. 在 stm32CubeMX下生成程序完成流水灯以及完成STM32的USART串口通讯程序实现STM32系统给上位机(win10)连续发送“hello windows”

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

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

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

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

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

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

    STM32的USART串口通讯程序(查询方式) 文章目录 STM32的USART串口通讯程序(查询方式) 一.USART介绍 1.异步通信: 2.同步通信: 二.CubeMX创建项目 1.点击ACCE ...

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

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

  7. STM32的USART串口通讯程序

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

  8. arm ds开发基于iTOP4412开发板的纯汇编LED流水灯

    前言 arm ds软件作为arm公司发布的ADS.DS5软件的延续,具备前两款软件的所有功能.同时将Keil MDK单片机开发软件的功能直接整合到了arm ds软件中.现在arm ds就相当于DS5+ ...

  9. 搭建STM32CubeMX环境并实现LED流水灯

    目录 一.搭建STM32的开发环境 1.安装jdk 2.安装STM32 CubeMx 3.安装MDK5 二.利用工具实现LED的点亮 1.选择MCU 2.配置时钟 3.设置引脚 4.配置 三.keil ...

最新文章

  1. [国家集训队]数颜色 / 维护队列 (带修莫队模板题)
  2. 自己学习Foundation一些类
  3. 【Android RTMP】RTMPDumb 源码导入 Android Studio ( 交叉编译 | 配置 CMakeList.txt 构建脚本 )
  4. spring MVC配置详解
  5. CPU8085 8086名字的由来
  6. 软件项目经理应该具备的心态
  7. jwt php tp5,TP5框架中使用JWT的方法示例
  8. git(8)---git merge 和 git rebase 小结
  9. hdu 5411 CRB and Puzzle 矩阵高速幂
  10. 很多餐饮店都会倒闭,最主要的是有2大原因
  11. firefox 模拟手机
  12. dell服务器怎么用u盘系统安装win7系统教程,戴尔DellU盘重装系统操作教程
  13. 在开放环境的步态识别:一个基准(二)
  14. win10联想Y7000重启蓝牙消失报显卡错误代码43
  15. 日系P2P原理探究(二) — Winny, 日本崛起
  16. 【20CSPS提高组】儒略日
  17. 输入圆的的半径r 和一个整型数k,当k=1 时,计算圆的面积;当k=2 时,计算圆的周长;当k = 3 时,既要求求圆的周长也要求出圆的面积
  18. nginx无法下载文件,报404的解决方法
  19. 服装行业如何利用长尾关键词挖掘推广?
  20. 常见面试题整理--操作系统篇(每位开发者必备)

热门文章

  1. RabbitMQ性能测试工具的使用
  2. OpenStack架构分析与实践
  3. mysql 分配root权限_给mysql用户分配权限
  4. Python条件语句
  5. 数据库脏读、不可重复读、幻读
  6. IC厂家和选型(持续更新)
  7. 易基因:全基因组CpG密度和DNA甲基化分析方法比较(MeDIP、RRBS和WGBS)| 研究综述
  8. 带你玩转Visual Studio——单元测试
  9. 【luogu P4320】道路相遇(圆方树)
  10. Mac OSX下的tree命令