本帖最后由 如去如来 于 2021-9-5 19:40 编辑

首先,我们需要下载到st官方的一些例程demo,到官方网站上去下载需要的STM32Cube MCU Package for STM32G4 series开发板固件包STM32CubeG4,地址链接为https://www.st.com/content/st_com/zh/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-mcu-mpu-packages/stm32cubeg4.html

可以看到页面上显示的最新版本为1.4.0版,然后点击get from GitHub这个按钮,就自动跳转到GitHub页面https://github.com/STMicroelectronics/STM32CubeG4。这里提一个小技巧,如果GitHub下载比较慢的话,可以在GitHubfork一下这个工程,然后在gitee上把这个工程转储下,就可以得到比较快的clone速度。

另外,好像这是第一次发现st官方固件包有GitHub页面clone链接,确实比以前网页版下载方式给力多了。Clone完成后,如下图所示。
dfbec97e3c22fb80b0374a61efe158d.png
可以看到,速度几乎接近10MB。这个固件包总大小为600MB左右,clone时间不过一分钟,杠杠的。

然后我们可以打开clone后的工程目录,如下图。
0238bed12e454a941a194a3c1865671.png
第一个子目录下面,就是我们的开发板相关的具体demo工程了。进入子目录后如下图。
531465837970f52a90ec88834588a42.png

可以看到SRC目录下面的源代码文件除了main文件外,还有buckboosthw_3p3z_controllerledrgb三个APP源文件。我们需要的正是那个LEDRGB

下面我们用mdkiarcubeIDE等开发工具来试用这个demo工程,这里试试看mdk。打开后如下图,需要安装1.4.0固件包的keil版本。这里我们也用包安装器再安装一下。
af058fbb7b04a9c990e9b0e85f5bd43.png
完成后,就可以进行mdk工程的有关设置了,如下图所示。
424ece74904ec7a2b6999e5c8855b38.png
当然我们这个工程已经是设置好了的,我们只需要直接连接到笔记本上,就可以编译,链接,烧录,调试和测试本demo的功能了。

观察这个demo可以发现,APP框架是一个基于事件驱动的状态机架构。绝大多数单片机APP都可以如此实现,是一个非常通用的例程demo
b236c89515c247ac1e79e33bdd9059f.png
然后点击build按钮,就可以进行编译链接。如下图。
18eca8ea4b0735f742ce7f8b42c77b6.png
点击load按钮下载固件到开发板上,这里会先报错,必须先完成stlink-v3固件升级,如下图。
6ca8ef9c2bcc35321810922316c8402.png
然后load按钮下载固件到开发板的功能就可以正常工作,如下图。
7b0ef9c1915fa4844f5febcded65967.png
Load完成后,就能看到开发板上,默认的状态机工作工况,也就是红绿黄蓝四个信号灯不停的闪烁。然后,可以每次按下joystick的确认按键,则开发板的工况就不停的在demo所示STATE_4LEDSTATE_LED_COLORSTATE_LED_WHITESTATE_BUCKSTATE_BUCKBOOST五种状态机中循环切换。

具体操作情况请看视频记录,视频我已经发到了B站https://www.bilibili.com/video/BV1LU4y1P782/链接,还有https://u.eet-china.com/video/me/time_3895378/1链接,请到B站和面包论坛都观看本视频。
最后是源码地址https://gitee.com/liunix61/STM32CubeG4,有这个板子的同学们可以用Git直接clone到你的电脑上,进行测试和评估等。