你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

NUCLEO-WBA65RI硬件资源、LED和串口打印

[复制链接]
EPTmachine 发布时间:2025-7-3 23:03

NUCLEO-WBA65RI是基于STM32WBA65RIV7的评估板,芯片内核为Cortex-M33,片上有2MBFlash存储空间以及512KB的SRAM。

board_view.jpg

1、板卡硬件资源

板卡有MB2130 MCU射频板和MB1801 夹层板组成。MB2130 MCU射频板包含主控MCU和集成PCB天线,MB1801 夹层板包含3个用户LED、3个用户按键、1个复位按键、USB TypeC接口、ST LinkV3调试器、USB TypeC调试接口以及拓展IO等用于测试芯片功能的外设。整个板卡的硬件系统框图如下:

Block_Diagram.png

在板卡的硬件介绍手册中可以看到板卡上对应资源的位置。

PCB_Top_View.png

PCB_Bottom_View.png

2、LED点灯以及串口打印

2.1 相关硬件

查看板卡的硬件原理图可知板载的LED和串口连接如下

LED_Schmetic.png

USART_Schematic.png

MCU_Pins.png

外设 MCU引脚
串口RX PA8
串口TX PB12
LED1 PD8
LED2 PC4
LED3 PB8

2.2 工程配置

在STM32CubeIDE中创建STM32WBA65RIV7的工程。

MCU_Select.png

指定工程名并创建工程

Project_name.png

打开工程中WBA65_led_uart_print.ioc文件进入CubeMX界面,使能ICACHE,提高代码的执行效率

Enable_ICACHE.png

开发板板载有32MHz的外部晶振,修改RCC配置。

RCC_USE_HSE.png

Clock Configuration界面修改时钟树配置

Clock_Configuration.png

在USART1界面设定USART1的工作模式和参数,并指定相应引脚的功能。

USART1_Settings.png

同样地,修改控制LED的引脚的功能为GPIO_Ouput

LED_GPIO_Set.png

在GPIO页面修改串口引脚的输出速度

USART_GPIO_Speed_Change.png

设定完成后保存文件并生成代码。

2.3 应用代码

定义LED引脚的宏定义,便于代码阅读

#define LD1_GPIO_PORT                          GPIOD
#define LD1_PIN                                GPIO_PIN_8

#define LD2_GPIO_PORT                          GPIOC
#define LD2_PIN                                GPIO_PIN_4

#define LD3_GPIO_PORT                          GPIOB
#define LD3_PIN                                GPIO_PIN_8

在主函数中添加以下代码实现流水灯的效果

while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_GPIO_TogglePin(LD1_GPIO_PORT, LD1_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
    HAL_GPIO_TogglePin(LD2_GPIO_PORT, LD2_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
    HAL_GPIO_TogglePin(LD3_GPIO_PORT, LD3_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
  }

在代码中引入<stdio.h>头文件,并添加以下printf重定向代码,实现串口打印字符串的功能。

#ifdef __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)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */

/*
**
  * @brief  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 EVAL_COM1 and Loop until the end of transmission */
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

  return ch;
}

在主函数添加printf信息输出函数,输出信息到串口控制台

printf("\n\r UART Printf Example: retarget the C library printf function to the UART\n\r");

3、程序运行

编译下载完成后,程序的运行效果如下

02_led_uart.gif

收藏 评论0 发布时间:2025-7-3 23:03

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版