发新帖本帖赏金 100.00元(功能说明)我要提问
返回列表
打印
[STM32H5]

喜得STM32H503RBT6-Nucleo

[复制链接]
1292|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 yangjiaxu 于 2023-7-28 13:41 编辑
#申请原创# @21小跑堂 好久没拿到过ST的新品了,这次拿到一个STM32H503真的很惊讶又惊喜,因为一般大厂家的新的芯片大致能代表这个厂家的方向,还有就是整体嵌入式的大致发展方向。既然都说到这儿了,那一定要好好的“品味”一下STM32H5啦。
本次我拿到的是STM32H503RBT6-Nucleo,这ST的Nucleo就代表的是芯片的评估板,板载基本什么外设都没有,有的就是将芯片的IO尽数引出,方便工程师们进行芯片的评估与测试。接下来就看看STM32H503RBT6-Nucleo的板子上都有些啥吧。
打开包装盒子,里面有个说明手册和一个电路板,手册上大致告诉资料渠道。不过可以看出ST的包装比较用心了,用比较环保的纸盒,这一点比较给力。

图1 开发板开箱

拿起开发板,可以看出开发板的改变照比以往的开发板有很大的改变。首先说板载调试器方面,H5的板载调试器选择了ST比较新款的STlink V3的调试器,该调试器采用F723为主控,其调试速度与稳定性照比以往的STlink V2来说可要好不少。接下来要说的一个点就是ST改了以往常用的MicroUSB接口,换成了Type-C接口。这种是值得说一说的,因为电子产品的更新换代真的很快,现在手里已经很少有microUSB的接口数据线了,大多数都已经更换为Type-C接口的数据线,因此这里比较想说的是ST真的是与时俱进,既可以省掉数据线的成本,又可以解决工程师桌面数据线杂乱无章的问题。
这里我拿到开发板的时候还遇到一个小小的问题,就是如果使用不带数据功能的Type-c数据线接在STLINK接口的时候,开发板是未供电状态,后来换一根带数据功能的数据线给STM32H503RBT6-Nucleo接在电脑上,属实是OK的,电脑端会有个虚拟U盘,同时电脑可以识别出是STlink V3。
从图2上可以看出,属实板载没有什么多余的元件,少许的芯片仅仅是作为保护或者是电源存在,有两个按键,一个是复位按键,一个是用户按键,板载有LED,作为用户指示灯,预留个Type-c的USB接口,该接口作为MCU的USB输出。IO通过排针引出,同时引出一组arduino接口方便与其他arduino设备进行连接和拓展。

图2STM32H503RBT6-Nucleo开发板

看完硬件,就要搭建软件的环境了,说实话,针对软件部分我还是擅长使用标准库,可惜了,新款的ST的MCU都将不提供标准库了,都是HAL或者是LL库,同时支持cubemx创建底层的工程配置。既然这样,那就“入乡随俗”吧,本次将采用cubemx+keil 5 进行环境搭建。
之前电脑装过cubemx,因此合计就不用再装了,直接就用就好了,没想到给我报个错误。该错误的大致意思是不能创建工程,主要是没有加载该芯片的xml文件,既然这样就给cubemx升个级吧,只有升级估计才能解决这个问题。这里我升级后的cubemx的版本为:Version 6.8.1。

图3 cubemx创建工程报错

当升级完成之后,属实可以找到自己想要的对应的MCU型号了,本次由于使用的是官方开发板,因此可以在这里直接选择对应的电路板,选择自己需要的开发板之后点击开始即可创建可视化配置工程。

图4cubemx创建基本工程

创建好之后就可以通过配置IO,时钟,外设等等,这里我是直接默认的配置,因为我查看了一下,发现如果没有特殊需求和其他IO的使用,完全可以默认,直接创建工程。接下来就是配置保存名称和地址了。

图5创建基本工程完成

看到图5的界面之后,就可以打开工程了,这里打开工程的时候,提示我没有pack,需要安装个pack支持包,用keil的时候属实是需要这个支持包的,因此下载安装一下就好了。https://www.keil.arm.com/packs/stm32h5xx_dfp-keil/devices/(好久不去keil官网了,发现竟然改版了,不错,界面简洁了许多,很漂亮)

图6 pack下载位置

当安装好之后,就可以快乐的玩耍了。打开工程之后,查找关于LED和按键的端口定义,这里按键是PC13,LED是PA5。于是通过程序的读写函数实现对按键端口的状态读取,对LED的状态进行控制。
具体代码如下:
  if(0 == HAL_GPIO_ReadPin(B1_BLUE_USER_BUTTON_GPIO_Port, B1_BLUE_USER_BUTTON_Pin))
                {
                                HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_SET);                                
                }
                else
                                HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_RESET);        

至此,STM32H503RBT6-Nucleo的基本工程已经创建好了,通过按键可以实现灯状态的变化,总的来说,使用cubemx非常方便,尤其是针对新的MCU和HAL,可以快速上手。



使用特权

评论回复

打赏榜单

21小跑堂 打赏了 60.00 元 2023-08-09
理由:补

沙发
yangjiaxu|  楼主 | 2023-7-28 13:14 | 只看该作者
由于工程比较大,所以就不发上来了,其实改动的不多,利用cubemx直接生成的工程,基本没做修改,只是做了IO的读取和IO的输出,作为按键和LED的控制。这里如果烧录失败了,需要注意将这里关掉就好了。

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 40.00 元 2023-07-28
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
21小跑堂 2023-7-28 14:30 回复TA
搭建STM32H503环境,创建测试工程,完成开发第一步,开发关键问题点阐述详细,步骤清晰。 
发新帖 本帖赏金 100.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

487

主题

2087

帖子

5

粉丝