[STM32H7] Nucleo-H7A3ZI-Q 初体验

[复制链接]
10149|0
 楼主| Liyj336 发表于 2020-12-5 21:18 | 显示全部楼层 |阅读模式
本帖最后由 Liyj336 于 2020-12-5 21:22 编辑

很幸运参加STM32垂直应用周周学习挑战赛的活动,得到了ST官方的NUCLEO-H7A3ZI-Q板子,很感谢二姨给我的板子。我觉得学习是永远不会吃亏的事情,不仅得到了知识,还可能会拿到礼品,巨赚,所以大家还是积极参加STM32垂直应用周周学习挑战赛的活动。

开箱体验

我还是第一次接触Nucleo系列板块,我们先开看看整体的包装。

包装正面.jpg

包装中规中矩,但是白色的板卡还是挺好看的,还能看到板卡的基本介绍。等等,我怎么觉得板卡少了东西,怎么少了一些元器件没贴。我还以为是官方偷工减料,但是看了一下文档,其实是有原因的。包装背面是开始使用之前的一些说明。

包装背面.jpg

包括电源选择、部分LED灯亮灭情况说明。还有重要的一些,板卡资料资源链接。NUCLEO-H7A3ZI-Q板卡主控芯片是STM32H7A3ZIT6QU,其板卡规则如下。

型号说明.jpg

可以看出,该款芯片基本参数为STMH7A3系列芯片,144pins引脚,2MbyteFlash,内部SMPS。板卡正面图

正面.jpg

主控芯片STM32H7A3ZIT6QU

MCU.jpg

让我惊讶的是该板卡ST-Link V3所用的控制芯片也是STM32H7系列的芯片,第一次见STM32H7系列做成的ST-Link,感觉有点夸张,点赞!

st-link芯片.jpg

控制芯片的功能引脚都从背面用排针引出。好像NUCLEO板子都没什么板载外设,把控制芯片引脚全部引出,也可以自己做功能扩展。NUCLEO-HA3ZI-Q板子背面图。

背面.jpg
板卡介绍

NUCLEO-H7A3ZI-Q板卡基本没有板子外设。先来看看板子资源分布图。

框图.JPG 功能分布图.JPG

基本就是MCU、ST-Link、Led、按钮、电源、USB接口、IO口,资源确实有点少。注意上面图片中是有网口的,但是在NUCLEO-H7A3ZI-Q是没网口,该板卡可以三种不同型号板卡NUCLEO-H745ZI-Q、NUCLEO-H755ZI-Q、NUCLEO-H7A3ZI-Q。这三种差异如下,除了NUCLEO-H7A3ZI-Q没网口,其他都存在网口。所以前面我说得少贴的部分,就是与网口相关的电路部分。因为是NUCLEO-H7A3ZI-Q,所以啥也没贴。

NUCLEO-H7A3ZI-Q差异.JPG

该板卡有个电源选择接口JP2,可以分别选择四种供电方式。

  • ST-Link供电
  • VIN供电
  • 外部供电
  • USB充电口供电默认情况下是,使用ST-Link供电。

从原理图可以大概看出来,主要由几部分组成:MCU电路、IO扩展口电路、USB电路、网口电路、电源供应电路、ST-LinkV3电路。ST-LinkV3除了使用MCU的SWD引脚,还使用了MCU的UART引脚。由此可以看出ST-Link可以充当串口使用。

原理图部分.JPG
快速创建工程
使用CubeMX创建工程,使用CubeMX6.1.0版本。
  • 1、打开CubeMX,新建工程

新建工程.jpg
  • 2、点击选择Nucleo-H7A3ZI-Q

选择.jpg
  • 3、点击Start Project

板卡选择.png
  • 4、点击确定

确定.jpg
  • 5、可以看到已经配置好部分引脚

芯片.jpg
  • 6、工程配置

选择生成代码的目录,使用的IDE等


工程配置.jpg
  • 7、点击Generate Code

工程配置 - 副本.jpg
  • 8、生成结果

生成文件.jpg
  • 9、进行MDK-RAM文件夹,打开MDK工程

MDK.jpg

到此工程文件已经生产完毕,接下来就是点灯了。


  • 在main函数加入代码

  1. int main(void)
  2. {
  3.   /* USER CODE BEGIN 1 */

  4.   /* USER CODE END 1 */

  5.   /* MCU Configuration--------------------------------------------------------*/

  6.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  7.   HAL_Init();

  8.   /* USER CODE BEGIN Init */

  9.   /* USER CODE END Init */

  10.   /* Configure the system clock */
  11.   SystemClock_Config();

  12.   /* USER CODE BEGIN SysInit */

  13.   /* USER CODE END SysInit */

  14.   /* Initialize all configured peripherals */
  15.   MX_GPIO_Init();
  16.   //MX_USART3_UART_Init();
  17.   //MX_USB_OTG_HS_USB_Init();
  18.   /* USER CODE BEGIN 2 */

  19.   /* USER CODE END 2 */

  20.   /* Infinite loop */
  21.   /* USER CODE BEGIN WHILE */
  22.   while (1)
  23.   {
  24.     /* USER CODE END WHILE */
  25.   HAL_GPIO_WritePin(GPIOB, LD1_Pin|LD3_Pin, GPIO_PIN_RESET);

  26.   /*Configure GPIO pin Output Level */
  27.   HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);

  28.                 HAL_Delay(1000);
  29.                
  30.                     /* USER CODE END WHILE */
  31.   HAL_GPIO_WritePin(GPIOB, LD1_Pin|LD3_Pin, GPIO_PIN_SET);

  32.   /*Configure GPIO pin Output Level */
  33.   HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
  34.     /* USER CODE BEGIN 3 */
  35.                 HAL_Delay(1000);
  36.   }
  37.   /* USER CODE END 3 */
  38. }



  • 编译

编译.jpg
  • 选择下载算法

size未修改.png
  • 下载这时出现错误如下。

下载错误.jpg
  • 解决办法,更改Ram的size大小。

修改size.jpg
  • 再次下载

下载成功.jpg
  • 运行

灯亮.jpg 灯灭.jpg
总结

我觉得Nucleo的板卡总体来说还是比较好的,白色的PCB板看着也好看,就是板载外设太少了,基本就是一个MCU加一个ST-Link,但是MCU的IO口都通过排针引出,这增加了MCU功能开发空间,但是需要通过排线连接外设,或者自己画扩展板。我觉得ST官方的板子都比较贵,Nucleo-H7A3ZIT-Q板子官方报价是29刀,板载资源少,价格是有点小贵,还是希望ST芯片不要再涨价了,板卡价格也可以降一点。





选择下载算法.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部