[产品应用] CW32l010最小系统板利用开漏输出点灯

[复制链接]
145|7
Zhiniaocun 发表于 2025-8-26 08:45 | 显示全部楼层 |阅读模式
使用cw32生态社区的l010系列最小系统板可以使用开漏输出进行点灯,示例如下




可以看到原理图中,led1与电阻串联,所以既可进行推挽输出,也可进行开漏输出

开漏输出通常是呈现高阻态,即为上拉电阻,这里一般取上拉电阻为10k左右。

Q1:能否使用开漏输出
可以使用开漏输出模式来控制该灯。在开漏输出模式下,CW32 的 GPIO 引脚pinb0只负责将引脚拉低(接地),而拉高则需要依靠外部上拉电阻(这里的 R3 就可以起到这个作用)。当 GPIO 输出低电平时,LED 阳极接地,形成回路,LED 点亮;当 GPIO 输出高阻态时,由于上拉电阻的作用,LED 阳极被拉高到 VCC 电平,LED 熄灭。

Q2:该电阻能否作为上拉电阻
该电阻 R3 可以作为上拉电阻。5.1K 的电阻值在一般的电路设计中是比较常见的上拉电阻取值。它能够在开漏输出模式下,当 GPIO 引脚处于高阻态时,将连接的引脚(PB0)拉高到 VCC 电平,满足开漏输出模式下的上拉需求,同时也能起到一定的限流作用,保护 LED 和 GPIO 引脚。

下面来介绍相应代码部分来实现功能

int32_t main(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};// 定义GPIO初始化结构体并初始化为0

    SYSCTRL_HSI_Enable(SYSCTRL_HSIOSC_DIV12);// 启用HSI时钟,分频系数为12


    __SYSCTRL_GPIOA_CLK_ENABLE();// 启用GPIOA时钟
    __SYSCTRL_GPIOB_CLK_ENABLE(); // 启用GPIOB时钟

    GPIO_InitStruct.IT = GPIO_IT_NONE;// 中断模式设置为无中断
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD ;// 设置GPIO模式为开漏输出
    GPIO_InitStruct.Pins = LED_GPIO_PINS;// 设置GPIO引脚为LED引脚

    GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);// 初始化指定的GPIO端口

    while (1)
    {
        GPIO_TogglePin(LED_GPIO_PORT, LED_GPIO_PINS);// 切换LED的状态(开/关)
        Delay(0xFFFF);// 调用延时函数
               
               
    }
}



定义LED引脚

#define LED_GPIO_PORT CW_GPIOB
#define LED_GPIO_PINS GPIO_PIN_0


简单的延时函数

void Delay(__IO uint16_t nCount)
{
    /* Decrement nCount value */
    while (nCount != 0)
    {
        nCount--;
    }
}


该延时函数只做示范,没用滴答定时器无法精准定时。
————————————————
版权声明:本文为CSDN博主「大漠无河」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2302_80124130/article/details/145524104

小小蚂蚁举千斤 发表于 2025-8-26 23:03 | 显示全部楼层
卡BUG了什么都没u有
jf101 发表于 2025-9-23 16:46 | 显示全部楼层
CW32l010最小系统板利用开漏输出点灯
中国龙芯CDX 发表于 2025-9-25 14:17 | 显示全部楼层
点灯输出是最基本的操作很重要
OKAKAKO 发表于 2025-9-26 17:13 | 显示全部楼层
开漏输出点灯输出功率比较大
懒癌晚期患者 发表于 2025-9-27 20:29 | 显示全部楼层
不过,实际应用中可能需要更精确的延时函数。
星辰大海不退缩 发表于 2025-9-27 13:48 | 显示全部楼层
用滴答定时器也可以实现的
小夏天的大西瓜 发表于 2025-9-28 15:46 | 显示全部楼层
开漏输出主要是接地输出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

260

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部