
因为疫情封闭,导致活动两个月后才拿到板卡,这几天利用空余时间研究学习了一番,开箱篇就省略了,直接进行点灯篇![]() 本来打算用CubeMX+CubeIDE,但是因为习惯了用MDK,所以就用了自己习惯的IDE编译环境MDK V5.37,后面有时间再学习CubeIDE,到时再跟坛友们学习讨论。" c0 e( s* W& ~7 r: W6 ?7 M 首先是安装STM32CubeMX并打开,安装H7的最新Pack包(相信大家都知道怎么做,故省略了此步骤);新建H7A3的点灯工程; ![]() ' p6 W! d3 ]+ x2 X! y8 [3 ? 新建工程有两个选项,下方图片给出了相关说明,此处我们选择第一项,以MCU从零开始创建;+ I! P$ J. @4 ^ ![]() ![]() 输入所需MCU的型号相关字段,此处输入“H7A3”,选框中会下拉出包含此字段的所MCU型号,我们下拉到此板卡主控MCU的型号处,点击即可,此时窗口右下角会出现此MCU型号的;9 f) j1 D7 {3 l C& o, W ![]() ![]() 双击MCU型号栏,即可进入工程的相关外设的配置页面;(会出现一个有关预设置存储保护区块的窗口,点击Yes即可看见调用进度条). M) X' r7 ]5 M& C/ ~ ! @( c, t+ H D! i7 F' b ![]() ![]() 1 T# c ?9 G! f* u9 B- y% Y ![]() ![]() ![]() 6 ?! _9 ]( M" i6 F5 D 参照板卡的原理图,可以确定PB0默认控制LD1,故在工程中针对PB0引脚做以下相关设置;$ S' \( t! d& j! [% B 0 O( V5 R; G0 M. J. y% Y4 J) e ![]() ' {# x( k6 p! t; P* }* I7 } ![]() 0 K5 c; H6 G* Z+ L/ c ![]() 1、设置PB0为GPIO_Output模式$ q5 g6 R/ ?, v n& R 2、点击展开左侧外设选项栏的“System Core”% O# H6 P+ N9 W7 y5 A 3、再点击下方的”GPIO“, L8 g% e7 ]2 P4 i' T 4、在右侧出现的”GPIO Mode and Configuration“窗口在点击下方的“GPIO”栏中的“PB0”5 @* W# V7 r' V) H 5、下方会出现“PB0 Configuration”操作窗口,具体操作项说明见上图,此处更改“GPIO output level"为”High“,设置”User Label“为”LD1“. A {2 Y# @1 R) c! @ 0 u/ _% J8 s) T/ F* j* Z1 a5 b) T 因只是简单的点灯,故时钟设置为系统默认即可,此处不进行操作。 5 X) |* e2 w' `' Y# g4 q$ r 以上设置完成后,点击”Project Manager“进行工程的代码生成相关设置;, h2 x. j: `$ U ![]() ![]() 进入“Projcet”, 1、设置工程名称为“LD1”,1 N0 ~9 b6 r i3 ^: |, @* ?& C 2、选择工程的保存路径 3、选择编译用的IDE及版本/ u5 c& K" O4 S 4 g5 T1 b- \9 g$ D ![]() ! S* h$ b9 M/ Q( n8 B3 I0 H 点击左侧的“Code Generator”,勾选下图中的选项,具体看下图中的说明; ![]() ![]() 8 H3 V4 l8 h# ~ M6 {" C8 A _ 点击左侧的”Advanced Settings“,点击“Driver Selector”栏中的”HAL“,出现下拉窗,点选"LL"选择以LL库生成代码,原因见图;下方的“Generated Function Calls”栏内的两项保持默认即可,原因见下图中说明;' m7 B- o4 V4 m + D2 }, E+ e/ b. Z( ]4 \/ C ![]() . i- E' Z. ]( E! i, Z% ~ 通过以上操作,已经完成了点灯所需的相关所有设置;点击窗口右上角的“GENERATE CODE"生成工程代码即可;代码生成后会出现对工程的处理方式窗口;点击”Open Project“;1 I- i. ?( c9 K* t& q6 Q ! t4 Q' h( }6 z, n7 s ![]() ![]() ' [, T6 B8 N- j3 i; S+ m 会自动打开MDK编译软件(前提是设置MDK为默认打开方式);& \7 q% e4 H- T0 r8 ? 双击打开main.c文件:(用户代码的添加说明见下图) ![]() ![]() 双击打开gpio.c文件:3 B+ H' g. z) a5 t$ t; [ * `0 N/ n' Q0 o1 @8 z ![]() ![]() & L, C& b% z N% x) c: s 从原理图上可以看出,PB0输出高电平就可以控制NPN三极管Q1导通来点亮LD1; 所以不需要添加任何代码,直接编译即可;' D* q) h/ y- R) J5 ` ![]() " T- z. r( _/ }0 H 接下来设置板载St-link进行下载程序到板卡;点击MDK工具栏上的”魔法棒“,按图片顺序进行设置即可;" Z% ?' O7 g- L- o$ N E# L8 e ( U# a: _6 s+ Q% c/ W( b ![]() ![]() ![]() ![]() ![]() , R% t( |* k9 O* H: ] ![]() ) P. N: |9 p( ?% d 上图的编程数据空间段如果在需要设置的前提下没有设置,会出现下图中的错误提示(此板卡照图上设置即可); ![]() ![]() # |; v; y* G3 X ![]() ![]() # D! y1 p1 n+ n2 i 以上设置好后,点击”下载“按钮,下载成功后如下图; ![]() ![]() 9 {! k: V5 A" v3 O, I6 I 自动运行效果见下图:3 A4 I! W) z+ k D * j. y+ T' q9 a+ E' ?. Y: a ![]() 3 B) Z4 Y0 q# d8 T 工程代码附件: ![]() |
拷打cubemx【002】——自定义还需基于芯片的工程
STM32硬件结构学习
STM32中BOOT的作用
STM32H7的TCM,SRAM等五块内存基础知识
STM32H7的TCM,SRAM等五块内存基础知识
简单了解一下STM32H7的BDMA
有奖预约 | STM32H7R7基于RT-Thread RTOS的智能终端GUI解决方案
【STM32H745I-DISCO】基于TouchGFX的工业控制器界面设计
STM32H745I-DISCO串口打印
【STM32H745I-DISCO】TouchGFX探索——3、触屏滑屏操作与中文显示
2 H" O% R, ?! t5 z