一、移植到STM32G473RC准备工作; K- T( ~' w9 e$ d% U8 h8 \' q4 J5 | 1.1、Keil版本支持STM32 G系列' k: Y( T$ J0 v' m( N1 E% R 9 b& F" i# ~3 V8 F6 t8 C 1.2 Keil下找到G系列文件并下载安装+ V8 K5 E6 @) w, D) d 1.3 安装成功 : U7 s' K) |$ f `2 C- x8 K) I7 J( M 1.4 Keil版本过低,不支持新的DFP包造成的错误。(重新安装新版本即可,我尝试了MDK529.exe) 二、移植7 R/ N# z4 c3 F, a- s; W. z 2.1 安装STM32CubeMX,目前ST官方主推。( h' @2 O* l4 G# S) }$ L6 O 2.2 官方下载库文件(STM32G系列不再有std库,只有hal库) 2.3 导入库文件,打开STM32CubeMX,点击Help -> Manage embedded software packages 。: a7 s! ~ H/ y( W _3 x) h ; V+ V: O, l* W% ^, D 我这里是添加本地packages,即通过3.2已经有下载了hal库。 " R* h, u- J2 ~5 b5 u% { / Q: v0 R# I) R% e- V" g 2.4 选择IC,然后在Middleware下选择FREERTOS,版本10.2.1,接口选择CMSIS_V2(V2与V1的区别可以参考百度其他文档)。9 H) P. g, F; h, l& d1 F . T. l1 k* F" k9 O 8 Y3 q- K; w# f+ t+ i 2.5 SYS下的Timebase Source选择TIMI1,否则生成code是会有警告提示,与FreeRTOSg* J) K q/ X6 } 1 x$ c& }/ Y. m5 B HAL使用的是systick作为时钟源,现在使用了rtos,不建议hal库和rtos一起使用systick作为时钟源,否则会有冲突。$ {6 @. C2 x6 A( u: u/ R! O7 g SYS Timebase选择Tim1" n1 B; b& H B% w- s 4 d" b' {0 w6 C, W+ Z! s 4 G- \- v0 K O 2.6 选择MDK-ARM, 点击GENERATE CODE,生成工程。; J$ I& C" B* J/ p* w ( Z- k. Z8 {" z K ' @9 f3 r2 [& W/ s5 }7 u8 e 点击生成: 9 ?& E5 a# Y. `8 J! x( _1 g/ L 2.7 打开MDK工程,编译。* G- c: r" U7 c" L) k 6 \# x) V( n1 c9 D. K$ Y 三、源码下载(不使用STM32CubeMX移植的需要自行下载源码)( H1 Z5 G/ u a 1、虽然FreeRTOS官方最新版本为 FreeRTOSv10.3.1.zip, 但手头项目还是决定基于V9.0开始。目前官方下载路径已经迁移的Githu 7 f" b8 j, [1 B% J, d 8 ^/ y# D2 L1 R* _' U( V y, q, c 2、GIthub下载旧版本 (无需登录,游客下载)/ O3 N1 G% b, u+ E5 @ ; \ p% P- F4 U( M) T& k. L 7 M$ E2 K7 o$ T9 C) Q: w( |# B , D* O* a6 G; m3 L # v9 t! |& I; k- b( [! n 6 ~- C2 S! }/ Q: ? |
STM32固件库分享,超全系列整理
【经验分享】STM32G4_CORDIC与定点带符号整数数据格式
STM32的CAN FD位定时设置注意事项
基于STM32G474 中 Triggered-half 模式的实现
基于STM32G4的数字控制 15kW双向PFC
基于STM32G431简介
今天14:00 | 基于STM32的MATLAB电机控制方案直播
基于STM32G474外红外接收经验分享
STM32G431RBT6之Key模块入门
STM32G431RBT6--LED模块入门