STC15系列库中两个自定义函数的更新

一、事件背景

1.出于操作IO口的需求,在LED操作例程当中我在官方库当中添加了两个gpio函数;详见基于STC15系列库操作LED灯-CSDN博客;在新的例程中察觉到两个函数操作的局限性,于是将两个函数内容进行相应修改,使其能适应更广泛的场景。

二、函数修改部分说明

1.原函数内容,原函数的局限在于单次只能操作一个引脚,而不能批量操作,对于51单片机常用的流水灯,数码管,点阵等外设操作无法起到简化操作的作用;

//添加置位函数定义
u8 GPIO_PIN_Set(u8 GPIO, u8 GPIO_Pin_x)
{
    if(GPIO > GPIO_P5)				return 1;	//空操作
    if(GPIO_Pin_x > GPIO_Pin_7)	    return 2;	//空操作

    if(GPIO == GPIO_P0)
    {
        if(GPIO_Pin_x == GPIO_Pin_0)    P00 = 1;
        if(GPIO_Pin_x == GPIO_Pin_1)    P01 = 1;
        if(GPIO_Pin_x == GPIO_Pin_2)    P02 = 1;
        if(GPIO_Pin_x == GPIO_Pin_3)    P03 = 1;
        if(GPIO_Pin_x == GPIO_Pin_4)    P04 = 1;
        if(GPIO_Pin_x == GPIO_Pin_5)    P05 = 1;
        if(GPIO_Pin_x == GPIO_Pin_6)    P06 = 1;
        if(GPIO_Pin_x == GPIO_Pin_7)    P07 = 1;
    }
    else if(GPIO == GPIO_P1)
    {
        if(GPIO_Pin_x == GPIO_Pin_0)    P10 = 1;
        if(GPIO_Pin_x == GPIO_Pin_1)    P11 = 1;
        if(GPIO_Pin_x == GPIO_Pin_2)    P12 = 1;
        if(GPIO_Pin_x == GPIO_Pin_3)    P13 = 1;
        if(GPIO_Pin_x == GPIO_Pin_4)    P14 = 1;
        if(GPIO_Pin_x == GPIO_Pin_5)    P15 = 1;
        if(GPIO_Pin_x == GPIO_Pin_6)    P16 = 1;
        if(GPIO_Pin_x == GPIO_Pin_7)    P17 = 1;
    }
    else if(GPIO == GPIO_P2)
    {
        if(GPIO_Pin_x == GPIO_Pin_0)    P20 = 1;
        if(GPIO_Pin_x == GPIO_Pin_1)    P21 = 1;
        if(GPIO_Pin_x == GPIO_Pin_2)    P22 = 1;
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值