因为疫情封闭,导致活动两个月后才拿到板卡,这几天利用空余时间研究学习了一番,开箱篇就省略了,直接进行点灯篇 ,作为一名STM32初学者,计划是一步一步的进行此板卡的学习,帖子中一定有一些用词不当,论述不当,引用不当,操作不当的“四不当”情况出现,欢迎坛友们批评指正,谢谢!. Z7 [; Z o3 N) }+ a本来打算用CubeMX+CubeIDE,但是因为习惯了用MDK,所以就用了自己习惯的IDE编译环境MDK V5.37,后面有时间再学习CubeIDE,到时再跟坛友们学习讨论。 首先是安装STM32CubeMX并打开,安装H7的最新Pack包(相信大家都知道怎么做,故省略了此步骤);新建H7A3的点灯工程;/ |# K, h0 [- D- i1 X4 K$ M0 M : J0 K8 e! N. a2 d6 Y- b新建工程有两个选项,下方图片给出了相关说明,此处我们选择第一项,以MCU从零开始创建;
/ q# e4 j; h5 h R" K6 h. {+ y; \& n1 E" C 输入所需MCU的型号相关字段,此处输入“H7A3”,选框中会下拉出包含此字段的所MCU型号,我们下拉到此板卡主控MCU的型号处,点击即可,此时窗口右下角会出现此MCU型号的;& J* {8 Y- _" e5 V- @ ! v! W8 P: B! H: {3 Q2 a; r% X 4 u+ j' v8 H: }7 ?/ h
双击MCU型号栏,即可进入工程的相关外设的配置页面;(会出现一个有关预设置存储保护区块的窗口,点击Yes即可看见调用进度条) " L7 j1 K# @: ~& J& J& G/ Y& L
) h$ }* d6 X2 T2 }- \4 ~. _
7 [+ ^0 t- a+ {* G0 p* j( [; P6 l4 C4 G8 T ' \0 V+ P- k+ Z K$ b* s0 X/ J. u) }0 [9 I$ J$ l0 Q+ | 参照板卡的原理图,可以确定PB0默认控制LD1,故在工程中针对PB0引脚做以下相关设置;
![]() # k# a- C. F V8 V' y, i* N/ y 1、设置PB0为GPIO_Output模式 2、点击展开左侧外设选项栏的“System Core” 3、再点击下方的”GPIO“ 4、在右侧出现的”GPIO Mode and Configuration“窗口在点击下方的“GPIO”栏中的“PB0”0 E! m) W4 Q& J; Y$ a) o" f 5、下方会出现“PB0 Configuration”操作窗口,具体操作项说明见上图,此处更改“GPIO output level"为”High“,设置”User Label“为”LD1“ 3 q* W) Q G" R: P 因只是简单的点灯,故时钟设置为系统默认即可,此处不进行操作。 + v X: L4 Q1 w 以上设置完成后,点击”Project Manager“进行工程的代码生成相关设置; 4 W: [/ V e" @6 H, `; A ; o3 G- Z: W! m% ~ q0 B! x
进入“Projcet”,) P$ l2 s1 M1 o 1、设置工程名称为“LD1”,% { ^! e* Z6 t) l: Y) X 2、选择工程的保存路径 3、选择编译用的IDE及版本5 E: w F/ N3 G$ [. F # D* _7 R2 _- J ![]() 9 x* i7 S- ]- k/ S0 a/ k! S 点击左侧的“Code Generator”,勾选下图中的选项,具体看下图中的说明;/ o( Q( j+ i8 I! i& A8 @ + y8 E) x5 G3 ^# Q/ t
- j- P3 p+ O8 p7 F/ e# P1 }( I d: [ s' C2 S3 X' C 点击左侧的”Advanced Settings“,点击“Driver Selector”栏中的”HAL“,出现下拉窗,点选"LL"选择以LL库生成代码,原因见图;下方的“Generated Function Calls”栏内的两项保持默认即可,原因见下图中说明;
通过以上操作,已经完成了点灯所需的相关所有设置;点击窗口右上角的“GENERATE CODE"生成工程代码即可;代码生成后会出现对工程的处理方式窗口;点击”Open Project“;1 }9 K" a* D: J' E
* i1 ^# N) d$ u& N$ f9 I3 Z" a$ _ `- S* n" x6 \. L/ I 会自动打开MDK编译软件(前提是设置MDK为默认打开方式);: w+ R2 e$ B& w* | 双击打开main.c文件:(用户代码的添加说明见下图) ! B7 J0 @ m; D7 t8 }
![]() 双击打开gpio.c文件:9 o8 o) \& [. J6 z0 |1 n ![]()
# R. O ]8 t# J3 p; U0 U0 u: m 从原理图上可以看出,PB0输出高电平就可以控制NPN三极管Q1导通来点亮LD1;5 O) S7 W# D$ S* s 所以不需要添加任何代码,直接编译即可;
接下来设置板载St-link进行下载程序到板卡;点击MDK工具栏上的”魔法棒“,按图片顺序进行设置即可; + d" d) R3 Y1 |6 a' F![]() ![]()
$ d/ q7 H$ @' }$ x" F
# g& i' @1 i7 Z, y% z( Y
/ c, ^; i) `! I 上图的编程数据空间段如果在需要设置的前提下没有设置,会出现下图中的错误提示(此板卡照图上设置即可);
. [$ X1 Q+ I6 q# R7 O0 ]5 f# s ![]() ![]() 以上设置好后,点击”下载“按钮,下载成功后如下图; ![]()
自动运行效果见下图:* o4 Z3 {! H; h; O# K7 p# m7 K 1 W! x- i8 G) F* \# |% u" D) R
工程代码附件:8 ^- i/ v5 S6 C4 @/ Y1 F ! Z* O2 @9 g3 _
LD1.rar
(3.57 MB, 下载次数: 5)
|
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
微信公众号
手机版
+ g* x& j2 S, ]+ X# m) x+ P