一、概述
早在201512月份就在STN32CUBEMX 4.12.0和相关文档中看到了Nucleo-144-64的消息, 不过那时候资料还很少,官网搜索只有寥寥几条结果。如今在ST面包板社区申请成功已经拿到一块Nucleo-G070RB,下面是开箱评测。首先要明白整个板子的硬件成本:淘宝相似款
                                                                                        001.JPG
不过淘宝是G071款。下面是ST G070产品组合的开发图,定位到2019年新款,新款,新款!重要的事说3遍!
                                                                                           002.JPG
结论1:预计本次赞助的开发板价值也在85RMB左右。
  而对于ST G070产品,其优势在于更多的IO口可以运用。
                                                                                           003.JPG    
官网上查询得出IO59个。没有支持CAN的功能,基本不能做汽车用通讯芯片。(小编是做汽车产品的,需要CAN口,新品不支持)
                                                                                    004.JPG      
                                                                                    005-1.JPG
结论2:对于很多IO口操作要求的,比如穿戴设备什么的,该入门级芯片还是很不错的。
开箱实物

                                                                                        a79ea1fb461f7d6b14d4e16866408e9.jpg
ST包装还是不错的,不过没有线束支持,需要调试时多准备各种开发工具。
                                                                               5e6dd65168366b4fe0733deac17272d.jpg
硬件检测
                                                                               007-1.JPG
                                                                   开发板原理图(用AD电路设计软件打开)

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

                                                                           ddb6be8d36c7b1a10487d771b743cad.jpg

这些都是ST开发的调试工具(大伙都熟悉吗?)
经过本人测试: ST-LINK V2及JLINK不能在Nucleo-G070RB上用,会出现如下问题
                                                                                        8989.JPG
PS:该问题或许能解决,但是我即使升级了硬件也没成功。
需要借助开发板原本的ST-LINK V2.1才能连接。在连接时,选择USBlink 更新,即可。
                                                                                                69bcbc305b2143a9939ac8318bba307.jpg    
上图是正常调试后的结果。硬件方面只需要一根数据线(USB mini)及开发板,其他都不需要。(很重要!)
结论4:开发板调试需要注意调试工具、明确开发板子上带的 jumper position,位置不准确不能调试,工具不对不能调试。
硬件说完了,再来说软件。
   先说最新的STM32CUBE MX
                                                                                                               005.JPG                
(在ST社区可以找到相关安装软件:https://www.stmcu.com.cn)该软件有2种创建工程的办法 MCU及开发板平台

                                                                                           006.JPG
                                           软件界面
                                                                                           007.JPG
                                                                                                               选择对应的开发板G070RB
                                                                                           008.JPG
                                                                                                                       对芯片进行配置
对于这个开发软件,很像matlab这种开发思路:图形化模块化,可以减少很多端口配置问题的低级错误,开发速度加快了。缺点也很明显,对于底层的位操作实现及验证基本由库函数代替,代码效率及查找资料操作底层寄存器的乐趣没有了。(ps:比较潮的开发工具)
再说说ST VISUAL DEVELOP,我在13年就在使用8S系列芯片,芯片加密软件调试都可以实现。喜欢复古风格可以尝试。
                                                                                     010.JPG
对于使用比较普遍的MDK软件,这里重点介绍下V5版本。
这个图标以前V4是蓝色的,版本更新后功能强大不少。支持ST等芯片在线安装插件。说白了就是在线安装各种头文件,启动文件。这个很重要,不然你会发现编译时有错误警告什么的。
                                     011.JPG
                                                                                 013.JPG
按需要安装相关插件包吧,我这次平台是G070,选择ST这个MCU,联网就能自动安装完成。中间过程中如果提示等待,可以点确认后继续。右下角有进度,该下载过程支持断线重连。
在下载完成后,会发现G070这个软件没有相关的examples,不要失望!   
                                                                                                    012.JPG
结论5:keil 在线安装pack很重要,对芯片的启动程序封装库函数等都在里面,不然不能编译。
接下来我们需要到ST官网上去下载一个叫STM32CubeG0_V1.0.0的文件包,里面有各种你想要的demo。(ps:有些example,keil有的,对于软件开发比较顺手)
可以看到对于所有的芯片资源都有例子,支持MX 也支持MDK,只需要打开对应的工程即可。PsMX安装需要支持java,直接去甲骨文那下载。其实安装MX时会直接链接到甲骨文网站下载java插件。运气好直接成功,运气不好就多点几次下载安装,甲骨文最近在裁员,服务器可能不好!
  接下来就是对官网上的例子一个一个学习验证了。怎么才算成功?
                                                                                    016.JPG
编译时没有错误,loadVerify OK。到这一步就是整个板子调试成功了。基于不同的开发目的,可以做各种试验。
                                                                                     017.JPG
对于这样的开发板子,官网例子还是很值得大家去学习的,可以连接板子后,单步硬件仿真,对于理解代码过程会有很好的帮助。(ps:赶紧all-in)
  不过对于这个开发板,本人从项目开发角度来说,对于硬件和软件开发人员都大大降低开发时间,加快开发进度。这一点来说,本开发板子还是非常值得去推广的。由于该MCU定位在入门及ARM,对于要求比较高的例如汽车VCU,汽车逆变器资源有限,不适合!而对于IO资源要求较高的例如智能穿戴产品,该平台还是很值得购买的。
下面重点以GPIO为例子 做进一步分析:
                                       打开工程:
                                                                                     018.JPG

                                                    7085505d7e4679e5d607b7e733090fb.jpg ed0465afc464d2caf258c97f7af891c.jpg
                                         可以发现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代码很规范,值得学习推荐.