STMCU小助手
发布时间:2022-4-26 22:56
|
简介1 E/ Y) o7 E# K! i STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。+ o) L( G/ K7 M3 H ; |# M. s* [- B) ` 在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间。+ K; v, K) p6 C, x9 M1 b* f 9 {- q7 r. E7 o 补充:32的三种开发模式 1.stm32能基于寄存器开发,就是和51单片机一样,直接对寄存器进行编程。基于寄存器编写的代码简练、执行效率高。但由于 STM32 微控制器的片上外设和寄存器数量太多,这种编程方式移植性差,寄存器名称记起来也很痛苦。 ( Q9 |. M9 c5 v5 m. h3 [& [ 2.基于st官方的固件库进行开发。现在大部分stm32教程教的都是这种库函数开发,如正点原子,野火等。他相比寄存器开发更加简单,我们不需要记住每个寄存器的地址和名称,只要会调用ST官方封装好的库函数进行编程就可以了。 3.基于STM32cubemx进行开发,就是我们今天要给大家介绍的内容。STM32cubemx使用的是st官方新推出的HAL库,然后我们可以通过软件内设计好的图形化界面进行配置,软件自动生成生成配置代码,然后我们再在IDE上面codding。5 {) ]2 W! g1 ]2 l! T 2 l0 m) P$ a& o( l, z( v% h 那么,如何编写一个基于HAL库的简单的STM32程序?(点亮一个LED)4 k& d1 U1 v+ V 一.需要的软件9 Q- s1 b$ x3 t+ Y: s6 l STM32cubemx,keil5(或者其他支持cubemx插件的ide,如clion,vscode)# @1 \3 K6 N' j 二.STM32CubeMX的界面配置4 p$ E1 N: e( _; ^8 V8 E+ ~4 U9 A 首先你需要下载32的软件包,步骤如图# ^5 m' V6 ~% R( s ! S: w2 p5 _) w. g& [
然后搜索芯片型号,然后新建工程(这边以STM32F103C8T6为例)
6 F( a, o$ h1 j 然后会出现配置界面 / ?# y& b6 a+ Z, l
左边是32的片上资源,右边是GPIO引脚的配置界面& S2 A$ Y) c" m7 h2 f DMA控制器! X: H. h0 Y- O! z: q7 U% h GPIO口 GPIO的工作方式有4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入 4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能 " I8 ?1 X6 S/ U0 Q! f
% X+ L& i8 A( }! v 在STM32中选用IO模式:
NVIC(嵌套向量中断控制器) 进行中断优先级分组# c5 D- T# Y5 a ]8 [6 `/ c/ N3 k RCC(时钟) 设置你的时钟源,32有五个时钟源 ! o1 T0 p9 b3 u# k( V IWDG(独立看门狗)WWDG(窗口看门狗) 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 回到正题,点灯只需要用到RCC配置,GPIO配置 将外部高速时钟(HSE)配置为Crystal/Ceramic Resonator(晶体/陶瓷谐振器),外部低速时钟(LSE)用不到,可以不配置0 h- `/ |, P; L1 a3 P1 y$ P
5 o3 p" {5 g: a/ Z# ~ 配置GPIO 0 g. k y* x+ o( b+ b! y
3 e7 ~ X' A# g7 f2 M 然后点击clock configuration配置时钟树。, V: w. c! Q* w 2 P/ k+ b1 b3 u: d2 J: o2 S
; x6 ]1 O" I$ [- _4 r
0 p, B$ B7 E1 ^: K
1 p9 M0 h$ e, |" i( Q+ _ 然后点击generate code,点击open project ' _$ f: O8 o/ }- D9 y$ o1 W& z
~* w$ [. f1 R: l 编译没有报错,可以用用串口将hex文件烧入单片机中,也可以直接使用JATG或SWD烧录 补充:单片机的三种烧录模式ICP,IAP,ISP7 M: d$ c# p$ h8 a ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。 ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。 IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。 e; ~5 l; e0 a% ]6 K- v& p # L) [6 { `& I5 B; l, B5 T |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版