历史上的今天
今天是:2025年07月18日(星期五)
2019年07月18日 | STM32cubeMX学习记录1-点亮LED
2019-07-18 来源:eefocus
一、准备工作:
1、安装STM32cubeMX软件,注意我使用的是5.0版之前的

2、安装keil-ARM软件,注意版本最好是5.2.6以后的
3、准备一个开发板
二、点灯实验(PB5接一个LED灯,低电平灯亮,高电平灯灭)
(后续涉及到多种方式操作的,只讲解一种,追求能实现目的即可)
1、打开STM32cubuMX软件

2、选择左边居中位置的“New Project”进行新建一个工程;
3、先输入开发板上芯片的型号,然后再双击选择实际的芯片封装;

4、晶振RCC设置,根据自己开发板上的情况选择。如图是开发板上的外部HSE和LSE都选择上了。

5、仿真器设置:使用ST-LINK,要在SYS内选择serial wire,同时打开嘀嗒定时器systick。
注意:如果没有选择serial wire,那么用ST-LINK第一次下载程序后就不能下载了,只能通过串口下载其他程序到单片机把程序覆盖才能恢复ST-LINK下载。

6、鼠标可以放在芯片的图片上操作(按住左键可以移动芯片,中间滚轮可以放大缩小,按住右键也可以移动芯片)。在芯片四轴的引脚上,鼠标左键可以选择引脚的功能(输入、输出等),选择完功能后,用右键可以设定引脚的定义,比如LED。选中的引脚会变颜色做区分。这里LED选择PB5,GPIO-OUTPUT



7、时钟树调整,未调整前SYSCLK是8MHz,调整后SYSCLK是72MHz,同时PCLK1要调整为36MHz。
注意:晶振频率可以根据实际情况进行调制


8、引脚设定(其实这里只要设定一个LED的引脚就可以了)
Configuration --System下的GPIO--选中PB5-下面会出现引脚的相关设定(这里设置低电平,推挽输出模式,低速率)

9、项目设定project-setting,设置这个工程的名称LED,存储的地址,保存keil5等等



10、选择Project-Generate code 生成工程文件

11、生成后会跳出提示,点击中间的打开工程(前提是你已经安装的keil-arm软件)

12、打开软件后编译一次,看是否有错误
13、如果输入中文没法显示,则要进入Edit-Configuration-encoding选择chinese GB2312保存即可

14、从程序中的main.c文件中的MX_GPIO_Init();函数可以定位到GPIO的设定,里面有
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);//输出低电平。所以程序直接下载下去灯就常亮了。
再次追踪HAL_GPIO_WritePin()函数可以找到stm32f1xx_hal_gpio.c文件,里面可以看到很多相关的函数,其中选择三个函数如下:
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) //可以设定高低电平
比如HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);//输出低电平
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);//输出高电平
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)//IO口翻转函数
比如HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin)
最后,在stm32f1xx_hal.h文件中有一个延时函数void HAL_Delay(uint32_t Delay);
这几个函数就可以简单的做一个LED闪烁实验了。

15、ST-LINK下载还需要注意几点:


Reset and Run要选择上,下载完开发板才会自动运行。
史海拾趣
|
大家好,上传一个单片机开发板的原理图,如果有错误请大家修改后再上传。 希望和大家共同研究,后面我将会上传有关LED电子显示屏的PCB图。希望大家多多指导! [ 本帖最后由 caihong0217 于 2008-11-1 15:07 编辑 ]… 查看全部问答> |
|
用单片机一个口接一个光耦TLP521,然后光耦接三极管,三极管驱动继电器,继电器和光耦的右端都是一个电源,单片机和光耦的左端是一个电源。 问题1:这样的设计对提高系统稳定性有效果么 问题2:其中光耦是不是多此一举,可以去掉呢 这里ZC0是接 ...… 查看全部问答> |
|
[原创].使用Nios II 9.1 SP1 SBTE的Flash Programmer的几点注意事项.[Nios II] 自从Altera公司推出Nios II 9.1 Software Build Tools for Eclipse(简称Nios II 9.1 SBTE),许多新特性的引入,令众多使用者感到欣慰,尤其是在编译的速度上。但是Nios II 9.1 SBTE并不完美,譬如说无法调用用户自定义外设的HAL文件、无 ...… 查看全部问答> |
|
我的CAMERA中断怎么使能了就不能禁止了?我把使能位清掉了还是关不了中断,虽然关不了,但不能进行实时捕捉了,什么原因? 我的CAMERA中断怎么使能了就不能禁止了?我把使能位清掉了还是关不了中断,虽然关不了,但不能进行实时捕捉了,什么原因?… 查看全部问答> |
|
WINCE在开机后自动弹出来一个WIFI无线配置的窗口,但是这个窗口比LCD高了,有没有好办法把这个窗口缩小一点呀!如果单改代码来缩小窗口,那窗口上的控件也要调整,比较麻烦,改资源文件又好像只有英文版的才有效,哪位前辈能给小弟一点建议呀?!… 查看全部问答> |
|
在浏览版块时候,看到了版主驿站,细细品读了一下soso姐写的东西,才知道还有这么多的东西需要注意学习,对自己的这则也有了很清楚的认识,感觉自己突然想有了工作的人似的还有工资 但是更重要的是对eeworld的理解更进一步的加深了,在奖惩方面,e ...… 查看全部问答> |
|
我看书上的C语言例程是调用了printf函数的。 但我编的一个小程序里却因为调用了printf函数,而链接不成功。 我的程序框架是这样的: #include "regs2407.h" #include "stdio.h" void main(void) { &nbs ...… 查看全部问答> |
|
各位大大好 小弟我是大三生之前都是用8051寫程式 後來老師說要微型化 所以買了一個LPC1768這個ARM的開發版http://twarm.com/commerce/product_info.php?products_id=844我是用FT232R去燒錄的類似這樣的接腳http://www.bing.com/images/ ...… 查看全部问答> |




