STM32WB55RG开发----1.开发板测试
概述
STM32WB55 & SENSOR是一款基于STM32WB55系列微控制器的评估套件。该套件采用先进的无线通信技术,支持Bluetooth® 5.3规范、IEEE 802.15.4-2011 PHY和MAC,支持Thread和Zigbee® 3.0 ,为开发人员打开了广阔的物联网和智能设备应用领域。此外,该套件具有丰富的接口和外设,以及传感器(SENSOR)系列连接器接口,方便用户进行各种硬件连接和外设扩展。
这里通过配置LED和UART输出进行简单测试。
最近在弄ST的教程,需要样片的可以加群申请:615061293/925643491 。
硬件准备
首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为STM32WB55RGV6
视频教学
https://www.bilibili.com/video/BV1o2DzYrE59/
STM32WB55RG开发(1)----开发板测试
样品申请
https://www.wjx.top/vm/OhcKxJk.aspx#
源码下载
产品特性
STM32WB55xx和STM32WB35xx多协议无线和超低功耗器件内嵌功能强大的超低功耗无线电模块(符合蓝牙® 低功耗SIG规范5.0和IEEE 802.15.4-2011标准)。该器件内含专用的Arm® Cortex® -M0+,用于执行所有的底层实时操作。
这些器件基于高性能Arm® Cortex®-M4 32位RISC内核(工作频率可达64 MHz),旨在实现超低功耗。该内核带有单精度浮点运算单元(FPU),支持所有ARM®单精度数据处理指令和数据类型。它还具备DSP指令集和增强应用安全的内存保护单元(MPU)。
IPCC提供有六个双向通道的增强型处理器间通信。HSEM提供硬件信号量,用于在两个处理器之间共享公共资源。
这些器件内嵌高速存储器(最高1 MB Flash存储器用于STM32WB55xx、最高512 KB用于STM32WB35xx、最高256 KB的SRAM用于STM32WB55xx、96 KB用于STM32WB35xx)、一个Quad-SPI Flash存储器接口(可采用所有封装),以及广泛的增强型I/O和外设。
参考程序
https://github.com/CoreMaker-lab/STM32WB55_SENSOR
https://gitee.com/CoreMaker/STM32WB55_SENSOR
生成STM32CUBEMX
用STM32CUBEMX生成例程,这里使用MCU为STM32WB55RGV6。
配置时钟树,配置时钟为最大速率。
串口配置
查看原理图,PB6和PB7设置为开发板的串口。
配置串口,速率为115200。
LED配置
查看原理图,对应LED分别为PB0,PB1,PB5。
配置如下所示。
堆栈设置
若无法正常运行需要修改优化等级。
串口重定向
打开魔术棒,勾选MicroLIB
在main.c中,添加头文件,若不添加会出现 identifier "FILE" is undefined报错。
c
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
函数声明和串口重定向:
c
/* USER CODE BEGIN PFP */
int fputc(int ch, FILE *f){
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END PFP */
主循环
c
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET);
printf("LED ON!\n");
HAL_Delay(1000);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET);
printf("LED OFF!\n");
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */