G4板卡分享 | 详尽的G431RB开发板介绍之二软件工具及环境搭建

职业导航 2024-12-16 12:51:06 146

一、开发环境相关软件包

STM32G4系列芯片是ST最新的推出的产品,与芯片、板卡配套的软件开发工具还有待逐步完善。目前我手边能获取到的软件开发环境的有、KEIL以及AC6。这几款开发工具都做了更新,各自的便利性对比如下,各位根据自己现有的系统环境进行相关程序的下载和搭建:

1、首先说STM32CubeIDE,最新的版本更新到1.1.0

在官网的Search中输入STM32CubeIDE,在“ToolsSoftware”,选择“STM32CubeIDE”,

进入下载页面。

根据所使用的操作系统选择下载程序。


这里分别有Debian系、通用Linux、以及RPM包的系统安装文件,也有macOS、Windows下的安装文件,根据各自所需的环境下载对应包。工具下载完毕后分别进行安装,安装界面略过。

2、如果是KEIL工具,就需要到KEIL官网更新对应的工具开发包,下载地址链接:,如果下载太慢可以用其它下载工具进行下载,另外其它包如果缺失可以在论坛中,[Keil下载链接]从keil的包下载非常慢,清单更新2019-10-28帖子里根据对应地址下载最新的Keil包。

3、WorkbenchforSTM32(AC6)是在Eclipse的开发环境,在官网(需要注册),下载界面如下:


目前最新的版本是:April12,2019at16:41:04的。


4、ST-LINK固件更新:

STM32G431RB开发板在将ST-LINK的主控芯片升级为STM32F723IEK6后,相应的ST-LINK固件也更新称为ST-LINK-V3E,ST官方提供的stsw-link007也做了相应升级,通过USB接口可直接升级板载固件。

该项目地址:

二、软件的调试和Helloworld代码

以上几款软件相比之下,集成度最高还是STM32CubeIDE,插件的使用也是最新的;keil的包管理虽然方便但其在线更新比较慢,要下载对应的包手工升级,确实比较麻烦;WorkbenchforSTM32(AC6)最后的版本更新在2019年4月,最新的G4xx开发包的版本并不支持。

这里先用STM32CubeIDE开发HelloWorld验证一下相关包和软硬件环境,步骤如下:

1、新建一个STM32Project工程,New选择STM32Project;

2、在系统DownloadMCU的列表清单后,进入CubeMX的页面;


注意:这里红框部分,如果没有自动找到对应版本的固件包,需要下载或手工制定固件包的下载目录(根据各自CubeMX的安装环境不同而不同):


(关联菜单)

(项目初始界面)

7、选择所需功能组件的顺序如下:

1)RCC,选择晶振

2)因板子带时钟晶振,激活RTC时钟功能

3)根据电路图得知,与ST-LINK3芯片关联的VCP(虚拟串口)是LPUART1低功耗串口1;

4)选择MCU对应的引脚PIN功能,如下图:引脚功能设置要参考Nucleo-G431RB的原理图:


几个重要外设的原理图如上图,芯片的引脚功能选择入下图绿色部分:

5)相关的功能设置,如下:

a、GPIO设置参数:

b、串口参数设置:

c、RCC设置:

d、ST-LINK接口配置:

e、中断配置:

f、RTC时钟配置为LSE:


g、主频配置最大的170MHz


h、项目输出的内容一览,保存或关闭窗体,会自动生成相应代码

6、在以下程序文件里添加代码:

添加的代码内容如下:

/*USERCODEBEGINEM*///非中断延时枚举//分别延迟512、256、128、64、32、16、8、4、2、1、0enumEnum_Delay{Delay_512=512,Delay_256=256,Delay_128=128,Delay_64=64,Delay_32=32,Delay_16=16,Delay_8=8,Delay_4=4,Delay_2=2,Delay_1=1,Delay_0=0};/*USERCODEENDEM*/……/*USERCODEBEGINPrivatedefines*/defineOFF0//定义OFF//设置亮灯和关defineToggleLEDHAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);/*USERCODEENDPrivatedefines*/……

▲左右移动,查看完整代码

/*USERCODEBEGINPFP*/voidKeyPass(void);/*USERCODEENDPFP*//*USERCODEBEGIN0*/staticenumEnum_Delaydelay=Delay_512;//staticuint32_tEXTI_Times=0;volatileFunctionalStateEXTI_State=DISABLE;/*USERCODEEND0*/……..intmain(void){/*USERCODEBEGIN1*/uint8_tsta=ON;/*USERCODEEND1*/……/*Infiniteloop*//*USERCODEBEGINWHILE*/while(1){printf("HelloWorld!!!Delayis%d\n",delay);/*USERCODEENDWHILE*//*USERCODEBEGIN3*/LED(sta);sta=!sta;HAL_Delay(delay);}/*USERCODEEND3*/……/*USERCODEBEGIN4*/voidKeyPass(void){switch(delay){caseDelay_512:{delay=Delay_256;break;caseDelay_256:{//延时重新循环512--256--128.1--0--512循环其余delay=Delay_512;break;}}}/***GPIO中断回调函数*@paramGPIO_Pin*/voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){KeyPass();}}definePUTCHAR_PROTOTYPEint__io_putchar(intch)definePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)#if/*__GNUC__*//***@briefRetargetstheClibraryprintffunctiontotheUSART.*@paramNone*@retvalNone*/PUTCHAR_PROTOTYPE{/*Placeyourimplementationoffputchere*//*_COM1andLoopuntiltheoftransmission*/HAL_UART_Transmit(hlpuart1,(uint8_t*)ch,1,0xFFFF);returnch;}/*USERCODEEND4*/

▲左右移动,查看完整代码

编译后,连接开发板,在STM32CubeIDE中用Debug方式将代码下载到Nucleo-G431RB开发板中。


打开一个串口调试工具,打开串口后,能在串口工具中看见以下内容,开发板LD2灯伴随着串口信息跳动一闪一闪,当用户按键时LD2的闪烁频率进行转换,串口工具中跳动得数值也随着变化。

(串口显示)

(LED2交替闪烁)

本文地址:https://yjs.zzxfkm.com.cn/316695512046.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

二战考生到底该不该冲击名校?(Day50)

2025年高考英语易错题分类汇总:易错点27 读后续写

美国留学必须学会的“看病”英语

母亲节(Mother's Day)

澎湃思想周报|罗琳与跨性别群体之争;以色列吞并西岸计划

浙江湖州援疆指挥部开展送医下乡活动[中国网.援建新疆]浙江

新疆人的一天 | 为民节约20万的何曲夫妇

关于中国风,我有一句妈卖批必须要讲

友情链接

备案号:辽ICP备12008537号

网站地图