【嵌入式知识07】借助stm32CubeMX,使用STM32F103C8T6点亮LED流水灯
本文目录
- 一、简述
- 二、STM32CubeMX简介
- 1、利用CubeMX新建工程点亮LED灯
- 1)前期准备
- 2)新建工程
- 2、界面讲解
- 3、配置引脚
- 4、时钟源配置
- 5、工程管理
- 三、点亮LED
- 1、编写主要功能代码
- 2、编译与烧录
- 四、在keil下软件仿真观察3个GPIO端口的输出波形
- 1、设置仿真模式
- 2、使用逻辑分析仪
- 五、总结
- 六、参考资料
一、简述
利用STM32最小系统核心板STM32F103C8T6,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯,轮流闪烁,间隔时长1秒。
1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;
2)分别用汇编语言,C语言编程实现。
器材:STM32F103C8T6+面板板+若干杜邦线+3只红绿蓝LED
二、STM32CubeMX简介
STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。
在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间,大大的节省了时间。
1、利用CubeMX新建工程点亮LED灯
1)前期准备
在本次实验中,使用到的STM32硬件为,STM32F103C8T6;
软件为,STM32CubeMX软件、KEIL MDK-arm软件,以及STM32F1xxHAL库
2)新建工程
搜索芯片型号–>选择芯片–>创建工程
1、 在主界面选择File–>New Project 或者直接点击ACCEE TO MCU SELECTOR
2 、进行芯片型号选择,一般直接在左上角搜索自己的芯片型号即可。
2、界面讲解
左侧为MCU外设资源选择
- Categories 种类选择,将MCU各种外设和资源分类,供用户选择使用;
- A-Z 顺序选择,MCU的外设资源按A-Z排序,供用户选择使用。
中间为外设配置
这里可以选择外设的各种功能,选择串口模式(异步、同步、半双工)串口接收终端,和串口DMA传输等。
右侧为预览界面
这里分为引脚预览和系统预览
引脚预览可以查看引脚配置了什么功能,和各个引脚的位置;
任意点击一个引脚即可设置该引脚的各种功能。
淡黄色这种颜色表示不可配置引脚,电源专用引脚以黄色突出显示,其配置不能更改。
深黄色这种颜色表示你配置了一个I/O口的功能,但是没有初始化对应外设功能,引脚处于no mode状态。
绿色表示配置成功。
系统预览是查看配置的各种外设和GPIO的状态
右侧第三个对勾图标,表示没有问题;
右侧第二个图标则表示警告,对应配置出现问题,点击该选项即可在外设配置界面进行查看。
3、配置引脚
只需把目标LED对应引脚设置为GPIO_Output即可,按照我在上上篇博客的管脚分配,这里我仍然去选择相同管脚,即PB0 PB5 PA1。
4、时钟源配置
即配置32的时钟树框图,默认时钟是使用内部RC振荡器。
配置RCC使用外部时钟源,操作如图
在中间格子配置为72MHz,回车;
弹出小窗口点击ok,即可完成配置。
5、工程管理
设置完MCU后,可以进行对工程文件的配置了。
在Project处,这里就是工程的各种配置,我们只用到有限几个,其他的默认即可 。
注意 存储目录不可以有中文
然后点击Code Generator,进行进一步配置。
点击GENERATE CODE 创建工程,等待一段时间后,成功打开了工程文件。
三、点亮LED
1、编写主要功能代码
在main.c文件的main函数下的while循环中,添加下面几行代码即可。
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);HAL_Delay(1000);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);HAL_Delay(1000);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);HAL_Delay(1000);
得到本次LED流水灯代码:
2、编译与烧录
对代码进行编译,发现没有出错:
接下来进行烧录:
将STM32F103C8T6与USB转TTL模块相连,接入电脑端,打开FlyMcu进行烧录
最后结果为三个LED灯依次亮起:
四、在keil下软件仿真观察3个GPIO端口的输出波形
在没有示波器条件下,可以使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。 请用此功能观察第1题中3个GPIO端口的输出波形,并分析其波形反映的时序状态正确与否,高低电平转换周期(LED闪烁周期)实际为多少。
1、设置仿真模式
在使用仿真模式时,需要进行Debug模式设置,下图是Debug设置模式。
注意在Debug设置里下面两项内容进行更改: Dialog DLL默认是DARMSTM.DLL
Parameter默认是-pSTM32F103VC
2、使用逻辑分析仪
设置完成后,开启调试模式,打开逻辑分析仪
具体界面如下:
给逻辑分析仪中添加要观察的IO口
可以通过以下几种方法查询IO口可以输入的名字
方法一:在左下角命令行输入dir vtreg命令,查看有哪些引脚可以被检测
方法二:直接复制最开头也可
方法三:直接在敲PORTA.,PORTB.出来目标端口
方法四(推荐):直接以 PORTX >> X 的形式输入,内容取决于代码中定义的管脚
注意!!务必将Display Type处设置为Bit!!
设置好之后,逻辑分析仪左侧会出现刚才设置的两个IO口,点击全速运行
执行一段时间后,点击停止按钮即可
得到的波形图如下:
当波形有问题时,可以点击左侧管脚,再点击Auto尝试。
观察每次变化的时间,对比是否有实际定义的1000ms。
五、总结
本次我安装了 stm32CubeMX,学习使用CubeMX完成初始化并点亮LED灯。同时在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察 对应管脚上的输出波形(高低电平转换),看是否是1秒的周期。
六、参考资料
https://blog.csdn.net/weixin_47554309/article/details/120810913
https://blog.csdn.net/weixin_46129506/article/details/120780184
https://blog.csdn.net/qq_46467126/article/details/120847240?spm=1001.2014.3001.5502
【嵌入式知识07】借助stm32CubeMX,使用STM32F103C8T6点亮LED流水灯相关推荐
- STM32F103C8T6以寄存器方式借助面包板搭建电路点亮LED流水灯详解
文章目录 一.寄存器原理 1.什么是寄存器 2.如何访问寄存器 二.GPIO端口的初始化设置 1.时钟配置 (1)找到时钟使能寄存器映射基地址 (2)找到端口偏移地址以及对应端口所在位置 (3)使能对 ...
- 【stm32cubeMX】使用HAL库点亮LED流水灯
stm32cubeMX使用HAL库点亮LED流水灯 1.安装STM32CubeMX 2.安装HAL库 3.新建项目 4.keil仿真调试 五.实现 六.参考资料 1.安装STM32CubeMX 官网下 ...
- 基于STM32安装Stm32CubeMX,配合Keil完成LED流水灯和USART串口通讯程序,及其管脚的时序波形观察
目录 一.使用HAL库完成LED流水灯 (一).用STM32CUBEMX生成工程文件 (二).用Keil仿真调试并生成hex文件 (三).用STM32串口烧录程序 (四).实物连接 二.使用HAL库完 ...
- 【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解
文章目录 一.题目简述 二.简述:初始化GPIO,点亮LED灯 三.工程文件模板的建立 四.使用寄存器点亮LED灯--代码部分 1.硬件连接设计 2.打开之前建立的工程模板 3.代码编写 4.硬件连接 ...
- stm32cubeMX使用HAL库点亮LED流水灯
系列文章目录 文章目录 系列文章目录 一.实验工具 二.STM32CubeMX生成代码使用HAL库点亮流水灯 1.安装STM32CubeMX 2.安装HAL库 3.新建项目 4.keil仿真调试 三. ...
- 【嵌入式基础】用C语言编程、寄存器实现LED流水灯程序;stm32CubeMX+Keil使用HAL库点亮流水灯
本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤.利用C语言编程和寄存器点亮流水灯以及stm32CubeMX+Keil使用HAL库点灯 目录 一.STM3 ...
- STM32Cubemx的安装及用寄存器HAL库完成LED流水灯程序
目录 一.STM32CubeMx安装 (一)简介 (二)下载地址 1.官方下载地址 2.网盘下载地址 二.STM32CubeMX安装过程 三.HAL库安装 四.HAL库实现LED流水灯 (一)新建项目 ...
- 最小系统开发板——利用STM32F103C8T6实现LED流水灯
WeChat:[嵌入式工程师成长日记] https://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==&mid=2247484101&idx=3&a ...
- 【嵌入式04】用寄存器HAL库完成LED流水灯程序
目录 一.原理学习 1.寄存器映射原理 2.GPIO端口的初始化设置步骤 二.LED流水灯 1.程序设计思路 2.寄存器方式编程实现 3.HAL库编程实现 4.软件仿真 三.总结 四.参考链接 一.原 ...
最新文章
- 基于chyh1990/caffe-compact在windows vs2013上编译caffe步骤
- 盘点开发中那些常用的MySQL优化
- python官网下载安装教程-各种版本的Python下载安装教程
- 66319d电源使用说明书_矿用防爆交换机如何正确安装调试和使用?
- linux安装卷管理,Linux安装管理ISCSI卷(initiator端)
- 耳机不分主从是什么意思_无延时音质好的蓝牙耳机能代替有线耳机吗—DOSS T60上手体验...
- python 两个数据框合并计算_一文掌握Excel、SQL、Python【数据合并】大法!
- mysql 错误 150_MySQL教程之error 150错误提示解决办法
- python培训班靠谱吗-学python去哪个培训机构好?靠谱的python培训机构推荐
- 1、和一定时找数组中的两个数
- unicode编码对照表
- Java架构学习(三十三)ActivityMQ基础消息中间件概述异步与同步MQ作用MQ件通讯方式MQ应用场景ActivityMQ安装使用ActivityMQ的案例主题和订阅
- Android App拥有system权限
- MT4API跟单、外汇API跟单接口详解
- C#中ManualResetEvent用法总结
- Springboot JUnit5 Controller 单元测试
- 使用第三方类库对html进行解析
- pscc2018安装服务器无响应,一招解决PSCC2018无法安装扩展插件
- robotframework打开ride.py 闪退,打不开
- 排序算法——冒泡排序(图解+代码)