一、概述
早在2015年12月份就在STN32CUBEMX 4.12.0和相关文档中看到了Nucleo-144及-64的消息, 不过那时候资料还很少,官网搜索只有寥寥几条结果。如今在ST面包板社区申请成功已经拿到一块Nucleo-G070RB,下面是开箱评测。首先要明白整个板子的硬件成本:淘宝相似款

不过淘宝是G071款。下面是ST G070产品组合的开发图,定位到2019年新款,新款,新款!重要的事说3遍!

结论1:预计本次赞助的开发板价值也在85RMB左右。
而对于ST G070产品,其优势在于更多的IO口可以运用。

官网上查询得出IO口59个。没有支持CAN的功能,基本不能做汽车用通讯芯片。(小编是做汽车产品的,需要CAN口,新品不支持)


结论2:对于很多IO口操作要求的,比如穿戴设备什么的,该入门级芯片还是很不错的。
二 、 开箱实物

ST包装还是不错的,不过没有线束支持,需要调试时多准备各种开发工具。

三 、 硬件检测

开发板原理图(用AD电路设计软件打开)

开发板pcb
通过实物比较发现:ST官方的板子有更新,pcb上器件布局位置有变化,官网上的硬件版本及接口与实物不一致。
不过,对于硬件原理图及接口布局,还是很规范的,对后续硬件设计还是很有帮助作用,后续开发相关板子可以根据官方原理图去做继续开发,可以缩短开发时间。
结论3:有小瑕疵,但是不影响使用。
四 、 调试

这些都是ST开发的调试工具(大伙都熟悉吗?)
经过本人测试: ST-LINK V2及JLINK不能在Nucleo-G070RB上用,会出现如下问题

PS:该问题或许能解决,但是我即使升级了硬件也没成功。
需要借助开发板原本的ST-LINK V2.1才能连接。在连接时,选择USBlink 更新,即可。

上图是正常调试后的结果。硬件方面只需要一根数据线(USB mini)及开发板,其他都不需要。(很重要!)
结论4:开发板调试需要注意调试工具、明确开发板子上带的 jumper position,位置不准确不能调试,工具不对不能调试。
硬件说完了,再来说软件。
先说最新的STM32CUBE MX

(在ST社区可以找到相关安装软件:https://www.stmcu.com.cn)该软件有2种创建工程的办法 MCU及开发板平台

软件界面

选择对应的开发板G070RB

对芯片进行配置
对于这个开发软件,很像matlab这种开发思路:图形化模块化,可以减少很多端口配置问题的低级错误,开发速度加快了。缺点也很明显,对于底层的位操作实现及验证基本由库函数代替,代码效率及查找资料操作底层寄存器的乐趣没有了。(ps:比较潮的开发工具)
再说说ST VISUAL DEVELOP,我在13年就在使用8S系列芯片,芯片加密软件调试都可以实现。喜欢复古风格可以尝试。

对于使用比较普遍的MDK软件,这里重点介绍下V5版本。
这个图标以前V4是蓝色的,版本更新后功能强大不少。支持ST等芯片在线安装插件。说白了就是在线安装各种头文件,启动文件。这个很重要,不然你会发现编译时有错误警告什么的。


按需要安装相关插件包吧,我这次平台是G070,选择ST这个MCU,联网就能自动安装完成。中间过程中如果提示等待,可以点确认后继续。右下角有进度,该下载过程支持断线重连。
在下载完成后,会发现G070这个软件没有相关的examples,不要失望!

结论5:keil 在线安装pack很重要,对芯片的启动程序封装库函数等都在里面,不然不能编译。
接下来我们需要到ST官网上去下载一个叫STM32CubeG0_V1.0.0的文件包,里面有各种你想要的demo。(ps:有些example,keil有的,对于软件开发比较顺手)
可以看到对于所有的芯片资源都有例子,支持MX 也支持MDK,只需要打开对应的工程即可。Ps: MX安装需要支持java,直接去甲骨文那下载。其实安装MX时会直接链接到甲骨文网站下载java插件。运气好直接成功,运气不好就多点几次下载安装,甲骨文最近在裁员,服务器可能不好!
接下来就是对官网上的例子一个一个学习验证了。怎么才算成功?

编译时没有错误,load后 Verify OK。到这一步就是整个板子调试成功了。基于不同的开发目的,可以做各种试验。

对于这样的开发板子,官网例子还是很值得大家去学习的,可以连接板子后,单步硬件仿真,对于理解代码过程会有很好的帮助。(ps:赶紧all-in)
不过对于这个开发板,本人从项目开发角度来说,对于硬件和软件开发人员都大大降低开发时间,加快开发进度。这一点来说,本开发板子还是非常值得去推广的。由于该MCU定位在入门及ARM,对于要求比较高的例如汽车VCU,汽车逆变器资源有限,不适合!而对于IO资源要求较高的例如智能穿戴产品,该平台还是很值得购买的。
下面重点以GPIO为例子 做进一步分析:
打开工程:



可以发现LED4在闪烁:
分析运行代码:
LED4_GPIO_CLK_ENABLE();
/* -2- Configure IO in output push-pull mode to drive external LEDs */
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Pin = LED4_PIN;
HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);
/* Insert delay 100 ms */
HAL_Delay(1000); 更改数字100变为1000即可设置闪烁频率
}
/* USER CODE END 3 */
}
GPIO为最方便的代码运行测试,不过在硬件仿真debug时,不能直接改为1000,需要再次编译后load后才能验证闪烁频率变化。当然 ,也可以试试外部按键控制GIPO-LED4点亮,只需要运行demo中的GPIO-EXTI工程,你会发现按下蓝色按键,LED-4就可以点亮,在按一次就灭了,是不是觉得很神奇呢?
小伙伴们要想get更多STM32-G070RB相关资讯,可以申请相关开发板,动手做起来!毕竟动手调试才是嵌入式的王道。加油!!!
结论6:通过代码学习,debug硬件仿真可以做到对IO口的精确控制,官方demo代码很规范,值得学习推荐.