OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32G070RB(二)Demo1:使用CubeMX生成工程

共2条 1/1 1 跳转至

STM32G070RB(二)Demo1:使用CubeMX生成工程

菜鸟
2021-01-25 19:36:15    评分

下面来体验一下使用CubeMX生成第一个工程:Hello World + Blink。


CubeMX最近有大改版, 从4.x升级到5.x。从个人角度来讲,这个工具虽仍有提升空间,但快速图形化生成工程、配置功能,非常便捷。可以说因为CubeMX的存在,STM32系列芯片增色不少。


CubeMX的安装就不多说了,很简单的操作。直接打开CubeMX,这里有一个吐槽点,就是每次打开强制下载最新的硬件描述信息,个人认为应该按需下载:


图6 CubeMX打开后的强制下载最新信息窗口



网速好的话一会就下载完了,要是知道板子型号的话使用左边的过滤器很快就可找到Nucleo G070RB板子模板。使用芯片作为模板也可以,但使用板子模版更快捷,有一些现成的配置可直接利用。


图7 选择开发板模板


接下来系统会提示是否使用默认配置。个人认为这是个槽点,如果使用自定义配置, 直接选芯片还选板子干什么。如果是我理解错误,请大咖斧正。


图8 默认配置确认窗口


之后进入项目编辑阶段,因为使用的是默认配置,只需要稍作修改即可。


图9 项目编辑窗口


注意这里有个小坑,默认配置USART使用7bit通信模式。 如果不注意同步修改调试工具的配置那么运行后输出就是乱码。 当然也可以修改调试工具的配置,但是还是按照常规思维将串口改为8bit模式为好。


图10 按照7bit配置初始的乱码



按照常规思维这里改成8bit模式:


图11 常规思维的8bit配置


7bit,9bit这些模式在实际工程中的确有用到的场合,如仅仅传输0-127的数据时用7bit可以提升速率,主从组网时使用9bit多一个控制位。还有些芯片与工具可以支持最低5bit模式,理由就是32个位置可以传输A-Z的字母集了。但是默认配置7bit模式感觉是故意给工程师出附加题的节奏。


其余外设视乎需要而配置,我在项目中还配置了ADC,GPIO等外设,这里不一一详述,后面会给出参考设计的下载地址。所有配置结束后选择代码生成输出类型,本人使用Keil MDK,用户按需选择,最后点击Generate Code就可生成工程框架。


图12 选择代码工程输出类型


如果第一次打开G0系列的工程,Keil MDK还会让你下载一个DFP。按照提示操作即可,总之工程自动化程度的提高也是有代价的,代价就是安装很多支持包。总体而言是值得的。生成的工程直接就可以编译下载运行了,但是要看出点效果来还得加几句,我添加的是打印ADC的采样值,还有LD4闪烁。此外还要重定向USART2到pritnf。


图13 重定向串口到printf


在主文件中添加这个函数:

int stdout_putchar (int ch)

{

uint8_t c = ch;

HAL_UART_Transmit(&huart2, &c, 1, 1);

return ch;

}

其余代码不赘述,感兴趣的直接下后文代码。注意如果你的用户代码要避免下次自动生成代码被覆盖的话, 要加在这种宏之间:

/* USER CODE BEGIN 2 */

HAL_ADC_Start_DMA(&hadc1, (uint32_t*)g_adc_buf, sizeof(g_adc_buf)/sizeof(g_adc_buf[0]));

printf("Clock:%u Hz\n", SystemCoreClock);

/* USER CODE END 2 */

本贴属于转载,如有侵权请联系删除






关键词: STM32G070RB     板子     芯片     内核     Nucl    

高工
2021-01-25 22:45:08    评分
2楼

教程的很详细


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]