开发板基本参数
开发板基本参数在官网上面都可以查看到,就不详细介绍了。
我们可以发现这块开发板分为两个部分,并使用巧妙的设计将两个部分分开,左边是集成了ST-LINK/V2仿真器的电路,中间有个C8T6的芯片,右边是STM32G070RBT6的最小系统板,左右都把IO口都引出了。
如果仔细观察,就会发现裸露的焊盘,这是为了能够在同一块电路板板上使用多种类型的芯片做的设计,换芯片的话,只要更换其中的元件,就可以变成另一种芯片的核心版,无需改变电路设计。这块开发板上只有一片32.768 KHz的晶体振荡器低速晶振,没有一般的8MHz的高速晶振,开始我觉得很奇怪,在查看电路原理图之后才发现,原来处理器和板载ST-Link/V2仿真器的STM32C8T6芯片共用一个高速晶振,好设计!!!
上电测试
上电亮三个LED灯,运行的是官方初始化的DEMO程序,电脑USB也出现了ST-LINK/V2的识别,上电测试没问题。
程序测试
首先是USART的 DMA中断通信测试,因为ST的新出的芯片不支持标准库了,所以我选用HAL库,用STM32CubeMX生成代码(以后可能试试用LL库,ST官方的历程了有LL库的内容,可以看出这块芯片是支持LL库的)。我们打开STM32CubeMX,首先是外部时钟源设置,我们选择Crystal/Ceramic Resonator。
记得在SYS选项上勾选Serial Wire,不然调试会出问题。接着是配置UART,我们用DMA中断的方式配置UART,所以在这里打勾。
在DMA Settings选项添加DMA通道,把RX和TX都加进去。
将字长(word length)改为8bit,不然如果不同步修改调试器配置就会出现乱码,倒不是说7bit、5bit、6bit不可以用,在特殊场合是有特殊用处的,比如说在传输0-127的数据时用7bit可以提升速度,然后把波特率改为9600。
然后生成代码,这里我们对生成的代码进行一些改动,设置缓冲区数组uint8_t aTxBuffer[ ]和uint8_t aRxBuffer[ ],用来保存串口缓冲区数据,并添加一些管脚的支持, - 当电路板2正在等待来自电路板1的信息时,其LED4正在发光,每半秒闪一下。按下板1上的用户按钮。然后,板1以DMA模式向板2发送一条消息,将其发送回板1也处于DMA模式。最后,板1和2将收到的消息与发送的消息进行比较。如果消息相同,则测试通过,LED4不亮,实际效果如下。
图二中按下User按钮后LED4不亮了
接下来我们给G0加上一个操作系统,看看操作系统运行情况。给工程创建两个实时任务,任务一通过等待任务二的信号,然后运行。
FreeRTOS.c的代码
然后进入仿真模式,查看代码运行状态,可以看到代码可以很好地运行,程序在两个线程之间切换来切换去,在Watch窗口可以查看变量状态,可以在线程中加上断点,可以debug。
总结
集成了ST-LINK/V2仿真器,让debug更加方便。
开发板小巧携带方便,可以在很多项目中应用,也是很多初学STM32的开发人员的首选。
开发板质量良好,运行起来无任何质量问题。
相比于其他高性能的单片机,低功耗性能足够优秀。
ST在做到成本未提升,功耗没有提高的情况下,提高主频,很优秀。
本文作者:EEToday网友 比特小丸子
点击阅读原文,查看更多STM32G0产品信息