STMCU小助手
发布时间:2022-4-25 20:55
|
7.1 新建NVIC工程0 C2 p! n! G+ W8 y: b 7.1.1 新建工程文件 在桌面新建文件夹,命名为“NVIC_Project”(根据实际需求选择文件夹存放路径和命名,其中路径不能包含中文),用于存放串口实验的工作空间。打开STM32CubeIDE软件,点击“Browse…”按钮,选择 “NVIC_Project”文件夹路径作为工作空间存放路径,然后点击“Launch”按钮,启动运行STM32CubeIDE。 + s% a. r; S& L: M$ ]
0 N _$ }/ v* o 点击“Start New STM32 project”按钮。 + o' l0 [3 L: `: l g
在搜索栏中输入需要配置的STM32芯片名称进行搜索,例如本文使用的芯片就输入“STM32H743II”,并单击选择对应封装“ LQFP176”,即可进入下一步。9 r6 e4 O/ j- x) I% w, r. P " u" c `( ~4 ? o
在进入芯片详细页面后,可以点击“Block Diagram”或者“Datasheet”对芯片进行概览。在确认芯片信息与手头的芯片一致后,点击Next下一步开始配置芯片。3 D, ^% ?% z r- y, Z; y: S# G# E& @ 1 Q# h4 l- S1 B f. m. U
4 S g( F: q$ H7 x$ Y& [ o6 q4 Z z 输入工程名,其余选型默认,点击“Finish”按钮。操作该步骤前需要保证网络正常,因为STM32CubeIDE需要下载对应芯片的数据包,也可以到STM官网上下载可离线安装的数据包。2 F: w( q$ s5 Q. k( o , h- W1 Y. E! y) [3 w) x
. L. ]9 r# \/ n. f& ]2 s, Z% D. j* g 点击“Yes”按钮。 - U% A0 d- }. G
; m8 T, F( u) G6 x1 ^$ Q% E 点击“Project Manager->Code Generator”,将“Generated files”第1和第2选项勾选,其余默认。+ d' r; p; o) @0 ]) q( _# H9 S # ?; B* `* B4 K% t [- f
点击“Pinout & Configuration->System Core->RCC”,在“RCC Mode”中将“High Speed Clock(HSC)”设置为“Crystal/Ceramic Resonator”,其余保持默认。. F- w2 Z* [9 L ) f r# V1 e0 ?9 h. ?
d5 `+ a9 i1 l 第一个选项High Speed Clock选择Crystal/Ceramic Resonator。其余选项无特殊需求不用打开。点击“Clock Configuration”,在“Input Frequency”输入“25”,在“PLL Source Mux”选择“HSE”作为时钟输入,在“System Clock Mux”选择“PLLCLK”作为时钟输入,在“SPI1,2,3 Clock Mux”输入“480”,然后按回车键,其他暂不设置,保持默认。# y d! r2 q0 m8 F+ D) ~& h
7.1.2 配置芯片内核6 S. C1 p9 v. @# l @' f 点击左边菜单栏“System Core”的“CORTEX_M7”进入M7的配置页面。( j* w5 X0 b! a9 U
$ a/ n) G. s1 o. y CPU ICache:使能I-Cache,用来缓存指令,选择打开。7 ]+ j5 Z1 J7 E$ T CPU DCache:使能D-Cache,用来缓存数据,选择打开,其他选项不变。 点击左侧“Trace and Debug”,进入“DEBUG”页面,用自己所用的调试方式,选的是“Serial Wire”。下面的选项是外部触发调试,暂且不开。' |: Y6 W* J, B- J6 L% e) e9 t
7.1.3 配置GPIO用于LED2 C G0 U% { s! E2 E1 ` 点击“Pinout & Configuration”,在软件右下角的引脚搜索框输入“PB0”,此时,STM32H743IIT6可视化图的PB0引脚闪烁,点击“PB0”引脚,在弹出的PB0功能列表中选择“GPIO_Output”功能。. ]( t& _3 f' M+ X1 ]8 \
同理,为PB1引脚选择“GPIO_Output”功能。2 r3 W* i: Q- n8 q2 Z" V! c5 r
" r' K1 V9 Y* Z: r ?0 L 点击“Pinout & Configuration->System Core->GPIO->PB0”,在“PB0 Configuration”中,按照下图对PB0进行配置。 ) m( r- J+ d+ e, Y
同理,对PB1进行如下配置:9 p6 z9 M+ c3 j- N4 x3 e GPIO output leval:GPIO的输出电平,选High为打开高电平。 GPIO mode:选择GPIO的模式,开漏或者推挽,这边选Push Pull为推挽模式! U$ J3 t7 X% d' G5 u GPIO Pull-up/Pull-down:GPIO上下拉模式,这根据电路LED选上拉模式。 Maximum output speed:GPIO的IO口响应速度。选择High高速模式。$ ^8 H6 _( A! I. A- {7 y User Label:GPIO的程序使用标签,例如本文这边将PB0的名称改为IO_LED0。 7.2 使用基本定时器中断 7.2.1 内部定时器设置& A: I* C' R$ K" v2 m 首先我们需要在定时器配置栏中将定时器初始化。 点击“Timers”-“TIM1”-“Clock Source”设置为“Internal Clock”将定时器1使用内部时钟。0 r) ?* g. n7 k: X6 {% t* Q) z
此时系统时钟需要刷新才能自动分配给定时器中断。点击“Clock Configuration”,点击“撤销”返回上一步,再点击“前进”复原以达到刷新的效果。/ l# U; R: I1 O) B
0 c5 |0 ]7 C4 C, v5 `( O 接着回到之前的TIM页面,将下方新增的“Configuration”将“ Prescaler”分频数设为48000,将“Counter Period”计数个数设为1000。由于系统时钟为480MHZ,因此将分频数设为48000得到10KHZ频率,10KHZ一次读数记10微秒,计数1000使定时器1在100ms时中断,并打开“auto-reload”开启自动清零。 - W) s9 D+ F& e
8 a+ y' F/ O6 n! K6 I: O; g' E) {" c 接着点击“NVIC Settings”开启定时器中断即可。( t! v# X" C- k# \1 d$ v TIM1为高级定时器,开启“ update interrupt”即可。
: T# |3 v* R$ M/ W4 r0 s 其余普通定时器正常开启定时器即可。
7.2.2 编写程序代码5 J7 U4 v `9 m 点击保存,并生成代码。
% n* L3 G$ m! d1 Z8 I 新建NVIC自己的HARDWAVE文件夹以及.c和.h文件,并添加路径调用。(详见5.8章)4 b" N$ |9 O6 e- L 6 @5 \8 f2 {2 [- M5 i
j9 X4 U9 _* ^2 ]) |' S( O& t
& [+ n( o6 h' o6 y! U 在“NVIC.h”中完成中断初始化函数以及回调函数的调用,同时调用“GPIO.h”“TIM.h” . x M0 \: O. \8 o4 J% z9 l. }
( D! C! Z3 q, `- Y6 r/ q 在“NVIC.c”中调用“NVIC.h”后,将定时器中断初始化代码以及回调函数添加即可。9 a3 t& o! R8 C. b& H
最后在“ main”函数中调用定时器中断初始化即可。 # K |1 W( _' @; H* ^) _3 t
烧录程序 至单片机开发板,可以看到定时器正常控制LED闪烁。 & D# Z! m4 E% K
! [7 f8 ?& ?' H7 Z8 [: M 附上程序:
( p' X: t N6 r8 s8 `1 q3 ~ " C1 E2 s& G% z* V' w& U$ X |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版