一、开发环境相关软件包: s2 J9 S: H+ M6 a6 q STM32G4系列芯片是ST最新的推出的产品,与芯片、板卡配套的软件开发工具还有待逐步完善。目前我手边能获取到的软件开发环境的有STM32CubeIDE 1.1.0、KEIL 以及AC6。这几款开发工具都做了更新,各自的便利性对比如下,各位根据自己现有的系统环境进行相关程序的下载和搭建: j Z+ K$ ^% v" T# R. L1、 首先说STM32CubeIDE,最新的版本更新到1.1.0 5 I- x: ^" v( W0 X# O0 H3 d 这里分别有Debian系、通用Linux、以及RPM包的系统安装文件,也有macOS、Windows下的安装文件,根据各自所需的环境下载对应包。工具下载完毕后分别进行安装,安装界面略过。& } L* [- m* M7 H" A 目前最新的版本是:April 12, 2019 at 16:41:04 的V2.9。3 A$ g; I) f7 E: O ' u. q4 _7 O) ] 4、ST-LINK固件更新:' d' c- g; O9 R3 w8 `: ^STM32G431RB开发板在将ST-LINK的主控芯片升级为STM32F723IEK6后,相应的ST-LINK固件也更新称为ST-LINK-V3E,ST官方提供的stsw-link007也做了相应升级,通过USB接口可直接升级板载固件。) P0 H# ]) o8 m( |3 A& _ 该项目地址:http://www.st.com/en/development-tools/stsw-link007.html 以上几款软件相比之下,集成度最高还是STM32CubeIDE,插件的使用也是最新的;keil的包管理虽然方便但其在线更新比较慢,要下载对应的包手工升级,确实比较麻烦;Workbench for STM32(AC6)最后的版本更新在2019年4月,最新的G4xx开发包V 1.1.0的版本并不支持。 这里先用STM32CubeIDE开发HelloWorld验证一下相关包和软硬件环境,步骤如下:8 ^% Y& P3 |/ m# `! ` 1、新建一个STM32 Project工程, New>>>>选择STM32 Project; 4 U- h6 ]) z9 x3 j 2、在系统Download MCU的列表清单后,进入CubeMX的页面;* V5 t1 y5 l' {6 Z 3、在CubeMX初始页面选择工程所需的MCU型号后,点击下一步:+ {& _7 v' ~( w% S) s 5、在系统自动创建成功后,在打开关联透视图提示菜单中,点击“Yes”,带有Helloworld.ioc文件的STM32工程就建好了:(关联菜单) (项目初始界面), U# K& R1 S. M% O' {0 f0 G 1 e4 b. V: i0 t0 _. r5 F' I9 q8 { 7、选择所需功能组件的顺序如下:1)RCC,选择晶振 , W7 G5 |% A. y! d% } 2)因板子带时钟晶振,激活RTC时钟功能$ H0 U) _" ~, \ . u, k" u7 U! s5 X: ?* l; } 几个重要外设的原理图如上图,芯片的引脚功能选择入下图绿色部分:' O9 W9 ^; @5 }! l b、串口参数设置:( B5 ~# V' X. E* ]6 ~: [ c、RCC设置:. N$ @) {" S+ w% }2 |4 A d、ST-LINK接口配置:2 ~* ]- R; i3 ?$ D- L+ V6 Y e、中断配置:" U2 j" ?" M8 t: H" o4 `$ C- g" ?/ R P4 S f、RTC时钟配置为LSE:g、主频配置最大的170MHz ) e; `2 {% ?; u h、项目输出的内容一览,保存或关闭窗体,会自动生成相应代码8 a$ [+ P4 ?. K# `1 X9 i& u& r main.h 添加的代码内容如下:
//设置亮灯和关! H9 K9 C6 r' Q* C5 D) V8 R! |5 [% \ #define LED(STA) (STA)?HAL_GPIO_WritePin(LD2_GPIO_Port,LD2_Pin,GPIO_PIN_SET):HAL_GPIO_WritePin(LD2_GPIO_Port,LD2_Pin,GPIO_PIN_RESET)//闪亮LED#define ToggleLED HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);/* USER CODE END Private defines */…… ▲ 左右移动,查看完整代码 int main(void){ /* USER CODE BEGIN 1 */ uint8_t sta = ON; /* USER CODE END 1 */…… /* Infinite loop */ /* USER CODE BEGIN WHILE */while (1) {printf("Hello World!!! Delay is %d\n",delay); /* USER CODE END WHILE *//* USER CODE BEGIN 3 */LED(sta); sta = !sta; HAL_Delay(delay);} /* USER CODE END 3 */……/* USER CODE BEGIN 4 */void KeyPass(void) { switch (delay) { case Delay_512: { delay = Delay_256; break; case Delay_256: { //延时重新循环512-->256-->128....1-->0-->512 循环 其余 delay = Delay_512; break; } }}/** * GPIO中断回调函数 * @param GPIO_Pin */void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { KeyPass(); }}#ifdef __GNUC__/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf * set to 'Yes') calls __io_putchar() */#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)#endif /* __GNUC__ */ /** * @brief Retargets the C library printf function to the USART. * @param None * @retval None */PUTCHAR_PROTOTYPE{ /* Place your implementation of fputc here */ /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */ HAL_UART_Transmit(&hlpuart1, (uint8_t *)&ch, 1, 0xFFFF); return ch;}/* USER CODE END 4 */ ▲ 左右移动,查看完整代码 , G' `' c8 o+ h
(LED2交替闪烁) |
谢谢lz! |
代码显示不全,请问下有附件可以下载嘛? |
【经验分享】STM32G4_CORDIC与定点带符号整数数据格式
STM32固件库分享,超全系列整理
STM32的CAN FD位定时设置注意事项
基于STM32G474 中 Triggered-half 模式的实现
基于STM32G4的数字控制 15kW双向PFC
基于STM32G431简介
今天14:00 | 基于STM32的MATLAB电机控制方案直播
基于STM32G474外红外接收经验分享
STM32G431RBT6之Key模块入门
STM32G431RBT6--LED模块入门