本帖最后由 EPTmachine 于 2023-11-16 22:30 编辑
开箱以及点灯、串口输出操作
11月10收到了论坛发来的板卡,本次测评的板卡是NUCLEO-U5A5ZJ-Q,在板卡的介绍中,板载的芯片为STM32U5A5ZJT6Q,在STM32系列芯片中属于超低功耗的高性能MCU。
1.1开发板资源概览
开发板的实物图如图所示。板载了ST-Link V3调试器、3色LED灯、一个复位按键、一个用户按键,Arduino接口以及一个Type C的USB口。
板卡上的外设资源分布如下
1.2 MCU功能概览
在官方的介绍界面可以看到MCU的功能框图,搭载了Cortex M33内核,160MHz的最高主频,丰富的外设资源(19个定时器,包括各种类型的定时器;UART、USB、SPI、I2C等常见的通讯接口;ADC、DAC、比较器、运算放大器等模拟外设;触摸IO和摄像头接口),支持ART图形加速引擎,支持TrustZone等,总的来说MCU的资源适合大多数低功耗场景下的应用。
1.3 串口和LED控制
通过查看原理图可知,LED1连接在PC7、LED2连接在PB7、LED3连接在PG2。USART1的TX引脚PA9和RX引脚PA10连接到调试器的VCP_TX和VCP_RX引脚。
程序的开发环境选择STM32CubeIDE,在IDE中创建工程时,选择NUCLEO-U5A5ZJ-Q板卡来创建工程,板卡上的LED和USART1的引脚已经初始化完毕,可以在程序中直接使用。
在主函数中添加串口重定向的代码和LED翻转、串口打印的代码。
添加串口重定向函数
- /* USER CODE BEGIN PFP */
- #if defined (__ICCARM__) || defined (__ARMCC_VERSION)
- #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
- #elif defined(__GNUC__)
- /* With GCC, small printf (option LD Linker->Libraries->Small printf
- set to 'Yes') calls __io_putchar() */
- #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
- #endif /* __ICCARM__ || __ARMCC_VERSION */
- /* USER CODE END PFP */
- /* USER CODE BEGIN 4 */
- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] Retargets the C library printf function to the USART.
- * @param None
- * @retval None
- */
- PUTCHAR_PROTOTYPE
- {
- /* Place your implementation of fputc here */
- /* e.g. write a character to the USART2 and Loop until the end of transmission */
- HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
- return ch;
- }
- /* USER CODE END 4 */
在主函数中添加演示代码
- /* USER CODE BEGIN 2 */
- printf("\r\n*********************************\r\n");
- printf("U5A5ZJ UART_LED_Demo\r\n");
- printf("*********************************\r\n");
- /* USER CODE END 2 */
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- printf("Toggle the LED\r\n");
- HAL_Delay(1000);
- HAL_GPIO_TogglePin(LED_BLUE_GPIO_Port, LED_BLUE_Pin);
- HAL_Delay(1000);
- HAL_GPIO_TogglePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin);
- HAL_Delay(1000);
- HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin);
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- }
- /* USER CODE END 3 */
代开串口调试助手可以看到串口打印的数据以LED灯的翻转。
|