Telink-泰凌微电子B91是其最新一代TLSR9系列芯片的通用开发平台的核心部分。该开发板搭载了TLSR9系列的旗舰型号芯片,全面覆盖包括TLSR921x和TLSR951x在内的该系列所有芯片的开发。B91开发板以及配套的烧录和调试工具和相关配件,共同构成了一个完整的开发套件,可用于实现各类物联网应用的原型开发。
这个芯片内置了先进的32位RISC-V MCU,集成了DSP和浮点运算扩展指令,支持多种先进的物联网连接技术规范,如经典蓝牙、蓝牙低功耗、蓝牙Mesh、Zigbee、Apple HomeKit、Apple Find My、Thread、Matter以及2.4GHz专有协议,且能实现部分多协议并行操作。这使得B91开发套件在物联网领域具有广泛的应用前景。
下面开始点灯:
先上原理图,灯与MCU的连接方式。
LED灯1 2 3 4是通过J34这个座子,19P 21P 23P 25P通过跳帽连接到MCU的PB4 5 6 7,也就是MCU的11脚-14脚。

LED引脚图:

MCU连接示意图:
点亮LED灯图:

代码:
设置GPIO引脚为高电平的函数:
// 将指定的GPIO引脚设置为高电平
static inline void gpio_set_high_level(gpio_pin_e pin)
{
// 获取引脚编号的低8位(假设pin类型的高位有其他用途,如端口信息)
unsigned char bit = pin & 0xff;
// 设置对应引脚在GPIO输出寄存器中的位为1,将引脚电平设置为高
BM_SET(reg_gpio_out(pin), bit);
}
// 如果MCU核心为B91,则定义以下LED灯的GPIO引脚
#if(MCU_CORE_B91)
#define LED1 GPIO_PB4 // LED1连接到GPIOB的第4位
#define LED2 GPIO_PB5 // LED2连接到GPIOB的第5位
#define LED3 GPIO_PB6 // LED3连接到GPIOB的第6位
#define LED4 GPIO_PB7 // LED4连接到GPIOB的第7位
#endif
// 将指定的GPIO引脚设置为输出模式
static inline void gpio_output_en(gpio_pin_e pin)
{
// 获取引脚编号的低8位
unsigned char bit = pin & 0xff;
// 清除对应引脚在GPIO输出使能寄存器中的位,将引脚设置为输出模式
// (注意这里使用的是BM_CLR宏,表示清除位,设置为输出)
BM_CLR(reg_gpio_oen(pin), bit);
}
gpio_function_en(LED1); // 设置LED1引脚功能
gpio_output_en(LED1); // 设置LED1为输出模式
gpio_set_high_level(LED1); // 点亮LED1上面的代码是用于控制GPIO(通用输入/输出)引脚功能的函数,并特别定义了LED灯对应的GPIO引脚。通过调用这些函数,可以配置GPIO引脚为输出模式,并设置其电平状态以控制LED灯的亮灭。
gpio_set_high_level(gpio_pin_e pin): 这个函数用于将指定的GPIO引脚设置为高电平状态。它首先获取引脚编号的低8位,然后使用BM_SET宏将对应引脚在GPIO输出寄存器中的位设置为1,从而将引脚电平设置为高。这通常用于点亮LED灯。
#if(MCU_CORE_B91) ... #endif: 这是一个条件编译指令,它只在MCU核心为B91时生效。在这个条件下,定义了四个LED灯对应的GPIO引脚,分别是LED1到LED4,它们分别连接到GPIOB的第4到第7位。
gpio_output_en(gpio_pin_e pin): 这个函数用于将指定的GPIO引脚设置为输出模式。它同样首先获取引脚编号的低8位,然后使用BM_CLR宏清除对应引脚在GPIO输出使能寄存器中的位。这个操作实际上是将引脚配置为输出模式,因为通常情况下,如果输出使能寄存器中的位被设置(即1),则引脚处于输入模式;而清除该位(即0)则将其设置为输出模式。
gpio_function_en(LED1);: 这行代码调用gpio_function_en函数来设置LED1引脚的功能。虽然gpio_function_en函数的定义没有给出,但根据命名和常见做法,这个函数通常用于将引脚配置为通用IO功能,而不是其他特殊功能(如模拟输入、PWM输出等)。
gpio_output_en(LED1);: 这行代码调用gpio_output_en函数,将LED1引脚配置为输出模式。
gpio_set_high_level(LED1);: 最后,这行代码调用gpio_set_high_level函数,将LED1引脚设置为高电平状态,从而点亮LED灯。
我要赚赏金
