这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【分享评测,赢取加热台】+Telink-泰凌微电子B91点灯篇

共1条 1/1 1 跳转至

【分享评测,赢取加热台】+Telink-泰凌微电子B91点灯篇

助工
2024-04-11 18:59:49   被打赏 20 分(兑奖)     打赏

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

image.png

LED引脚图:

image.png

MCU连接示意图:

image.png点亮LED灯图:

image.png

代码:

设置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灯的亮灭。

  1. gpio_set_high_level(gpio_pin_e pin): 这个函数用于将指定的GPIO引脚设置为高电平状态。它首先获取引脚编号的低8位,然后使用BM_SET宏将对应引脚在GPIO输出寄存器中的位设置为1,从而将引脚电平设置为高。这通常用于点亮LED灯。

  2. #if(MCU_CORE_B91) ... #endif: 这是一个条件编译指令,它只在MCU核心为B91时生效。在这个条件下,定义了四个LED灯对应的GPIO引脚,分别是LED1到LED4,它们分别连接到GPIOB的第4到第7位。

  3. gpio_output_en(gpio_pin_e pin): 这个函数用于将指定的GPIO引脚设置为输出模式。它同样首先获取引脚编号的低8位,然后使用BM_CLR宏清除对应引脚在GPIO输出使能寄存器中的位。这个操作实际上是将引脚配置为输出模式,因为通常情况下,如果输出使能寄存器中的位被设置(即1),则引脚处于输入模式;而清除该位(即0)则将其设置为输出模式。

  4. gpio_function_en(LED1);: 这行代码调用gpio_function_en函数来设置LED1引脚的功能。虽然gpio_function_en函数的定义没有给出,但根据命名和常见做法,这个函数通常用于将引脚配置为通用IO功能,而不是其他特殊功能(如模拟输入、PWM输出等)。

  5. gpio_output_en(LED1);: 这行代码调用gpio_output_en函数,将LED1引脚配置为输出模式。

  6. gpio_set_high_level(LED1);: 最后,这行代码调用gpio_set_high_level函数,将LED1引脚设置为高电平状态,从而点亮LED灯。



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]