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灯。