首先,我们需要下载到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下载比较慢的话,可以在GitHub上fork一下这个工程,然后在gitee上把这个工程转储下,就可以得到比较快的clone速度。
另外,好像这是第一次发现st官方固件包有GitHub页面clone链接,确实比以前网页版下载方式给力多了。Clone完成后,如下图所示。
![dfbec97e3c22fb80b0374a61efe158d.png dfbec97e3c22fb80b0374a61efe158d.png](https://static.assets-stash.eet-china.com/forum/202109/05/190905kh7azmhwx3z35zdt.png)
可以看到,速度几乎接近10MB。这个固件包总大小为600MB左右,clone时间不过一分钟,杠杠的。
然后我们可以打开clone后的工程目录,如下图。
![0238bed12e454a941a194a3c1865671.png 0238bed12e454a941a194a3c1865671.png](https://static.assets-stash.eet-china.com/forum/202109/05/191012ywwpfgvctytf8xug.png)
第一个子目录下面,就是我们的开发板相关的具体demo工程了。进入子目录后如下图。
![531465837970f52a90ec88834588a42.png 531465837970f52a90ec88834588a42.png](https://static.assets-stash.eet-china.com/forum/202109/05/191109goh4frggkh3ftfkh.png)
可以看到SRC目录下面的源代码文件除了main文件外,还有buckboost,hw_3p3z_controller,ledrgb三个APP源文件。我们需要的正是那个LEDRGB。
下面我们用mdk,iar,cubeIDE等开发工具来试用这个demo工程,这里试试看mdk。打开后如下图,需要安装1.4.0固件包的keil版本。这里我们也用包安装器再安装一下。
![af058fbb7b04a9c990e9b0e85f5bd43.png af058fbb7b04a9c990e9b0e85f5bd43.png](https://static.assets-stash.eet-china.com/forum/202109/05/191209d9qa4ntty9ybhh7z.png)
完成后,就可以进行mdk工程的有关设置了,如下图所示。
![424ece74904ec7a2b6999e5c8855b38.png 424ece74904ec7a2b6999e5c8855b38.png](https://static.assets-stash.eet-china.com/forum/202109/05/191253dz0kuu7gn17vnnnv.png)
当然我们这个工程已经是设置好了的,我们只需要直接连接到笔记本上,就可以编译,链接,烧录,调试和测试本demo的功能了。
观察这个demo可以发现,APP框架是一个基于事件驱动的状态机架构。绝大多数单片机APP都可以如此实现,是一个非常通用的例程demo。
![b236c89515c247ac1e79e33bdd9059f.png b236c89515c247ac1e79e33bdd9059f.png](https://static.assets-stash.eet-china.com/forum/202109/05/191349fcqu4y97bu70yez1.png)
然后点击build按钮,就可以进行编译链接。如下图。
![18eca8ea4b0735f742ce7f8b42c77b6.png 18eca8ea4b0735f742ce7f8b42c77b6.png](https://static.assets-stash.eet-china.com/forum/202109/05/191439iwf666xoch5s3c5e.png)
点击load按钮下载固件到开发板上,这里会先报错,必须先完成stlink-v3固件升级,如下图。
![6ca8ef9c2bcc35321810922316c8402.png 6ca8ef9c2bcc35321810922316c8402.png](https://static.assets-stash.eet-china.com/forum/202109/05/191530qe7fecwjtjww78fc.png)
然后load按钮下载固件到开发板的功能就可以正常工作,如下图。
![7b0ef9c1915fa4844f5febcded65967.png 7b0ef9c1915fa4844f5febcded65967.png](https://static.assets-stash.eet-china.com/forum/202109/05/191628kpphcshhcygvvhyh.png)
Load完成后,就能看到开发板上,默认的状态机工作工况,也就是红绿黄蓝四个信号灯不停的闪烁。然后,可以每次按下joystick的确认按键,则开发板的工况就不停的在demo所示STATE_4LED,STATE_LED_COLOR,STATE_LED_WHITE,STATE_BUCK,STATE_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到你的电脑上,进行测试和评估等。