之前就听说ST新出的芯片不在支持标准库了,板子拿到手之后去MDK下载DFP,果然已经没有了对标准库的支持。于是转到了用cubemx新建工程,我用的版本是4.26。
在新建工程的过程中,由于G0芯片才发布,并且ST发布了新款的CubeMx5.0,所以4.26目前是不支持STM32G0系列芯片的初始化工作。
这下就让我不得不用新版本了,可是听很多人吐槽了新版本的bug,还有点不舍得老版本。不过相信ST终将会把CUBEMX做好的。 在更新版本的过程中也遇到了问题。通过V4.26不能更新到5.0,然后我又尝试了去官网下载,官网更坑。点击get software按照提示一阵操作,结果发现是一个循环:官网发给我封邮件,叫我点击链接下载软件,当我进入它给的那个链接里面时发现我点击get software仍然是叫我填邮箱信息,接下来就是等发邮件。这时我明白了这是一个死循环。 一天过去了,回到宿舍发现重启笔记本已经可以使用新版的CubeMx5.0了。之后看到可以更新到5.0.1版本的,也按照同样的方法更新了。接下来就是用强大的CubeMx创建新工程了。
软件默认初始化的外设
软件默认的工程配置
在新建工程过程中遇到了一些问题: 1. 通过cubemx新建MDK工程会出现不包含启动所需的汇编文件,也就是那个stm32g071xx.s文件,需要自己去手动添加。后来又测试了几次,发现这个问题是偶然出现的,不知道是什么原因。 2. 通过cubemx新建IAR8工程(吐槽一下,IAR8相比IAR7来说真的是慢了好多)问题更多一些,首先是工程配置中的General Options->Target中的processor variant->Core应该选择Cortex-M0+,而软件生成的配置是Cortex-M3,另外就是C/C++ Compiler->reprocessor 缺少包含core_cm0plus.h的目录
3. 另外一个问题就是,在cubemx下创建了低功耗串口1的程序发现在MDK中运行良好,而在IAR8中运行不起来,是同一份代码,去掉串口初始化就能正常运行了,目前还不知道是什么原因。进入调试模式就直接跑一个循环里了,看注释的意思是等待PLL稳定,不知道IAR动了啥手脚,导致时钟配置有问题。
我的IAR版本信息
在MDK环境中运行低功耗串口1,没有问题
今天暂时就这样吧,我把我出现问题的工程也贴出来,如果有同在测评G0的小伙伴看到,麻烦帮忙看一下是否是设置问题导致出现这些bug。NUCLEO-G071RB测评报告--2.踩坑
http://www.stmcu.org.cn/module/forum/thread-619024-1-1.html
|