打印
[资源共享]

《芯圣51内核单片机HC89F0xx库分享》-GPIO库

[复制链接]
12730|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
正版长小强|  楼主 | 2023-10-26 08:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#每日话题# #申请原创# #技术资源#

                               《芯圣51内核单片机HC89F0xx库分享》- GPIO库
一、前言
       项目需要近期接触芯圣HC89F0xx系列51核单片机 ,超高的 性价比、灵活性 深深的吸引了我 。 为后续项目更快落地,开始做基础功能的封装库工作,不需要关系寄存器位功能,保障底层代码稳定可靠,工作重点在业务层。 定期更新 欢迎指正 ,因时间原因正文部分 以源代码为主 ,欢迎小伙伴协助编辑。
二、分享内容
       1:GPIO库
           1、1:对外接口
              E:\项目\模板\库\GPIO
           1、2:源码
               .H文件
               
/**
*   ************************************************************************************
*                                                                X_GPIO
*        ************************************************************************************
*        @Examle Version                V1.0.0.0
*        [url=home.php?mod=space&uid=1102]@demo[/url]         Version                V1.0.0.0
*        @Date                                2023.9.14
*        ************************************************************************************
*   ************************************************************************************
**/

#ifndef __X_GPIO_H__
#define __X_GPIO_H__




/*端口模式*/
enum  Pin_Mode
{         /*输入模式*/
        GPIO_Mode_IN                                 =(unsigned char)0X00,
        GPIO_Mode_IPD                         =(unsigned char)0X01,
        GPIO_Mode_IPU                         =(unsigned char)0X02,
        GPIO_Mode_IN_FLOATING   =(unsigned char)0X03,
        GPIO_Mode_IN_SMT                =(unsigned char)0X04,         /*施密特*/
        GPIO_Mode_IPD_SMT                =(unsigned char)0X05,         /*施密特*/
        GPIO_Mode_IPU_SMT                =(unsigned char)0X06,  /*施密特*/
        /*输出模式*/
        GPIO_Mode_OUT_PP                 =(unsigned char)0X08,
        GPIO_Mode_OUT_OD                 =(unsigned char)0X09,
        GPIO_Mode_OUT_OD_PU         =(unsigned char)0X0A,
};
/*外设重映射 MAP*/
enum  Pin_Remap
{         /*MAP*/
        Pin_Remap_T0        =(unsigned char)0X80,
        Pin_Remap_T1        =(unsigned char)0X81,
        Pin_Remap_T3        =(unsigned char)0X83,
        Pin_Remap_T4        =(unsigned char)0X84,
        Pin_Remap_T5        =(unsigned char)0X85,
        Pin_Remap_CLKO      =(unsigned char)0X8F,

        Pin_Remap_PWM0      =(unsigned char)0X90,
        Pin_Remap_PWM01     =(unsigned char)0X91,
        Pin_Remap_PWM1      =(unsigned char)0X94,
        Pin_Remap_PWM11     =(unsigned char)0X95,
        Pin_Remap_PWM2      =(unsigned char)0X98,
        Pin_Remap_PWM21     =(unsigned char)0X99,
        Pin_Remap_PWM3      =(unsigned char)0X9C,

        Pin_Remap_TXD       =(unsigned char)0XA0,
        Pin_Remap_RXD       =(unsigned char)0XA1,

        Pin_Remap_SCL       =(unsigned char)0XA2,
        Pin_Remap_SDA       =(unsigned char)0XA3,

        Pin_Remap_SS               =(unsigned char)0XA4,
        Pin_Remap_SCK       =(unsigned char)0XA5,
        Pin_Remap_MOSI      =(unsigned char)0XA6,
        Pin_Remap_MISO      =(unsigned char)0XA7,

        Pin_Remap_TXD2      =(unsigned char)0XA8,
        Pin_Remap_RXD2      =(unsigned char)0XA9,
};

/*
        功能:        将Pin_BCD端口配置成指定模式Pin_Mode
        例如:将P2.1 配置成推挽输出 Pin_Mode_Set(0X21,GPIO_Mode_OUT_PP);                       
*/
extern  char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode);       

/*
        功能:外设功能引脚映射
        例如:将P2.1 配置成TXD   PinRemapConfig(0X21,Pin_Remap_TXD_MAP);                       
*/
extern char  PinRemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap);

/*高速模式直接操作IO
        功能:获取端口状态
        例如:将P0.4 配置成TXD   Pin_ReadInputDataBit(0X04);                       
*/
extern  bit  Pin_ReadInputDataBit(unsigned char Pin_BCD);
/*高速模式直接操作IO
        功能:控制端口状态
        例如:将P0.4 配置成高电平   Pin_SetOutputDataBit(0X04,1);                       
*/
extern  void  Pin_SetOutputDataBit(unsigned char Pin_BCD, unsigned char status);       

#endif

               .c文件
              

/**
*   ************************************************************************************
*                                                                X_GPIO
*        ************************************************************************************
*        @Examle Version                V1.0.0.0
*        @Demo         Version                V1.0.0.0
*        @Date                                2023.9.14
*        ************************************************************************************
*        实现了端口配置          : char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode)
*        实现了外设端口映射          : char  PinRemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap)
*   实现端口输入状态获取  :char  Pin_ReadInputDataBit(unsigned char Pin_BCD)
*   ************************************************************************************
**/
#include "x_include.h"
#include "x_gpio.h"


/*
功能:引脚功能配置
参数:Pin_BCD 引脚
参数:Mode 模式
返回:0 暂未启用,计划做端口范围异常控制
*/
char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode)
{
  xdata unsigned char  Mode_Reset[] = {0XF0,0x0F};
  xdata unsigned char   Reg_add = 0X00;
  xdata strChar  Set_Pin;
   Set_Pin.byte = Pin_BCD;
   Reg_add =         Set_Pin.half.low * 8 +          Set_Pin.half.high / 2;  
   *(&P0M0 + Reg_add ) = (*(&P0M0 + Reg_add )) &   Mode_Reset[ Set_Pin.half.high % 2]          |          ( Mode << (4 * (Set_Pin.half.high % 2)) );

   return 0;
}

/*
功能:外设功能引脚映射
参数:Pin_BCD 引脚
参数:Remap 外设
返回:0 暂未启用,计划做端口范围异常控制
*/
char  PinRemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap)
{
         *(&P0M0 + Remap )  =         Pin_BCD          ;
        return 0;       
}
/*
功能:输入状态获取
参数:Pin_BCD 引脚
返回:0 down  1 up
*/
bit  Pin_ReadInputDataBit(unsigned char Pin_BCD)
{
  bit status = 0;
  xdata strChar  Set_Pin;
   Set_Pin.byte = Pin_BCD;  
   switch(Set_Pin.half.low)  
   {
                   case 0x00:         status =   (( P0 >> Set_Pin.half.high ) & 0x01) ;                break;
//                case 0x01:         status =   (( P1 >> Set_Pin.half.high ) & 0x01) ;                break;
                case 0x02:         status =   (( P2 >> Set_Pin.half.high ) & 0x01) ;                break;
                default:        break;
   }
   return status;
}
/*
功能:输出状态控制
参数:Pin_BCD 引脚
参数:status 0 down  1 up
返回:无
*/
void  Pin_SetOutputDataBit(unsigned char Pin_BCD, unsigned char status)
{
        xdata strChar  Set_Pin;
           Set_Pin.byte = Pin_BCD;  
           switch(Set_Pin.half.low)  
           {
                   case 0x00: P0 &=        ~(1 << Set_Pin.half.high);P0 |=  (status << Set_Pin.half.high);                break;
//                case 0x01: P1 &=        ~(1 << Set_Pin.half.high);P1 |=  (status << Set_Pin.half.high);                break;
                case 0x02: P2 &=        ~(1 << Set_Pin.half.high);P2 |=  (status << Set_Pin.half.high);                break;
                default:        break;
           }
}

使用特权

评论回复
评论
正版长小强 2023-10-26 09:00 回复TA
@芯圣电子官方QQ@flybluefox@flybluefox 
沙发
正版长小强|  楼主 | 2023-10-26 08:58 | 只看该作者
本帖最后由 正版长小强 于 2023-10-26 09:02 编辑

1

使用特权

评论回复
板凳
tpgf| | 2023-11-2 16:27 | 只看该作者
这个封装库是楼主自己做的吗

使用特权

评论回复
评论
正版长小强 2023-11-10 08:20 回复TA
是的 ,目前 只是部分 工作状态的 配置 。后续后随项目使用情况 逐步 更新晚上 ,也欢迎大家一起维护起来 
地板
coshi| | 2023-11-2 16:56 | 只看该作者
官网有没有相关的引脚库呢

使用特权

评论回复
5
wiba| | 2023-11-2 17:25 | 只看该作者
这种库里边需要包含比较全的函数吗

使用特权

评论回复
6
kxsi| | 2023-11-2 17:45 | 只看该作者
能自己写一个库 已经对相关引脚研究的很透彻了

使用特权

评论回复
7
drer| | 2023-11-2 18:11 | 只看该作者
一个完整的gpio库都需要包含什么内容呢

使用特权

评论回复
评论
正版长小强 2023-11-10 08:18 回复TA
这个库 并不完整 ,只做了配置部分 ,是大家使用频率最高的 ,后续 会逐步 加入 
8
qcliu| | 2023-11-2 18:36 | 只看该作者
请问这个库可以适用于全系列的芯片吗

使用特权

评论回复
评论
正版长小强 2023-11-10 08:17 回复TA
文中是 HC89F04xx, 初步涉及是这款,近期接触到了 05xx 也封装下 马上更新 ,目前手头芯片就两款 其它型号兼容还没验证。 
9
正版长小强|  楼主 | 2023-11-10 08:36 | 只看该作者
本帖最后由 正版长小强 于 2024-1-2 08:24 编辑

本次更新增加了对 HC89F0541 的端口 配置支持为了自动适配 所使用的 芯片 在.H 文件中 有 芯片头文件 包含检查 ,目前我接触到2款芯片,已经做适配 。
依赖的#include "x_include.h"  文件,主要功能是芯片头文件包含  ,IO 功能分配  , 这样就可与 全局配置IO 比较清晰,防止冲突  。     

/****************************************code    .C************************************************************/

/**
*   ************************************************************************************
*                                                                X_GPIO
*        ************************************************************************************
*        @Examle Version                V1.1.0.0
*        [url=home.php?mod=space&uid=1102]@demo[/url]         Version                V1.1.0.0
*        @Date                                2023.11.01
*        ************************************************************************************
*        实现了端口配置          : char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode)
*        实现了外设端口映射          : char  PinRemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap)
*   实现端口输入状态获取  :char  Pin_ReadInputDataBit(unsigned char Pin_BCD)
*   ************************************************************************************
**/

#include "x_gpio.h"


/*
功能:引脚功能配置
参数:Pin_BCD 引脚
参数:Mode 模式
返回:0 暂未启用,计划做端口范围异常控制
*/
char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode)
{
  #if defined (__HC89F0322_H__) || defined(__HC89F0411A_H__)
  xdata unsigned char  Mode_Reset[] = {0XF0,0x0F};
  #endif
  xdata unsigned char   Reg_add = 0X00;
  xdata strChar  Set_Pin;
   
   Set_Pin.byte = Pin_BCD;
   #if defined (__HC89F0322_H__) || defined(__HC89F0411A_H__)
   Reg_add =         Set_Pin.half.low * 8 +          Set_Pin.half.high / 2;  
   *(&P0M0 + Reg_add ) = (*(&P0M0 + Reg_add )) &   Mode_Reset[ Set_Pin.half.high % 2]          |          ( Mode << (4 * (Set_Pin.half.high % 2)) );
   #endif
   #if defined (__HC89F0541_H__)
      Reg_add =         Set_Pin.half.low * 8 +          Set_Pin.half.high ;  
      *(&P0M0 + Reg_add ) = Mode;
   #endif

   
   return 0;
}

/*
功能:外设功能引脚映射
参数:Pin_BCD 引脚
参数:Remap 外设
返回:0 暂未启用,计划做端口范围异常控制
*/
char  Pin_RemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap)
{
         *(&P0M0 + Remap )  =         Pin_BCD          ;
        return 0;       
}
/*
功能:输入状态获取
参数:Pin_BCD 引脚
返回:0 down  1 up
*/
bit  Pin_ReadInputDataBit(unsigned char Pin_BCD)
{
  bit status = 0;
  xdata strChar  Set_Pin;
   Set_Pin.byte = Pin_BCD;  
   switch(Set_Pin.half.low)  
   {
      #ifdef  GPIO_P0  
                   case 0x00:         status =   (( P0 >> Set_Pin.half.high ) & 0x01) ;                break;
          #endif
      #ifdef  GPIO_P1
                case 0x01:         status =   (( P1 >> Set_Pin.half.high ) & 0x01) ;                break;
      #endif
          #ifdef  GPIO_P2
                case 0x02:         status =   (( P2 >> Set_Pin.half.high ) & 0x01) ;                break;
          #endif
           #ifdef  GPIO_P3
        case 0x03:         status =   (( P3 >> Set_Pin.half.high ) & 0x01) ;                break;
      #endif
                default:        break;
   }
   return status;
}
/*
功能:输出状态控制
参数:Pin_BCD 引脚
参数:status 0 down  1 up
返回:无
*/
void  Pin_SetOutputDataBit(unsigned char Pin_BCD, unsigned char status)
{
        xdata strChar  Set_Pin;
           Set_Pin.byte = Pin_BCD;  
           switch(Set_Pin.half.low)  
           {
          #ifdef  GPIO_P0
                   case 0x00: P0 &=        ~(1 << Set_Pin.half.high);P0 |=  (status << Set_Pin.half.high);                break;
          #endif
      #ifdef  GPIO_P1
                case 0x01: P1 &=        ~(1 << Set_Pin.half.high);P1 |=  (status << Set_Pin.half.high);                break;
      #endif
          #ifdef  GPIO_P2
                case 0x02: P2 &=        ~(1 << Set_Pin.half.high);P2 |=  (status << Set_Pin.half.high);                break;
          #endif
      #ifdef  GPIO_P3
        case 0x03: P3 &=        ~(1 << Set_Pin.half.high);P3 |=  (status << Set_Pin.half.high);                break;
      #endif
                default:        break;
           }
}

/****************************************code    .H************************************************************/


/**
*   ************************************************************************************
*                                                                X_GPIO
*        ************************************************************************************
*        @Examle Version                V1.1.0.0
*        @Demo         Version                V1.1.0.0
*        @Date                                2023.11.01
*        ************************************************************************************
*   ************************************************************************************
**/

#ifndef __X_GPIO_H__
#define __X_GPIO_H__
#include "x_include.h"


#if defined(__HC89F0411A_H__) || defined (__HC89F0322_H__) || defined (__HC89F0541_H__)
        #define     GPIO_P0
#endif

#if                                                          defined (__HC89F0322_H__) || defined (__HC89F0541_H__)
        #define     GPIO_P1
#endif

#if defined(__HC89F0411A_H__) || defined (__HC89F0322_H__) || defined (__HC89F0541_H__)
        #define     GPIO_P2
#endif

#if                                                                                                                    defined (__HC89F0541_H__)
        #define     GPIO_P3
#endif




#if defined (__HC89F0322_H__) || defined(__HC89F0411A_H__)

/*端口模式*/
enum  Pin_Mode
{         /*输入模式*/
        GPIO_Mode_IN                         =(unsigned char)0X00,
        GPIO_Mode_IPD                         =(unsigned char)0X01,
        GPIO_Mode_IPU                         =(unsigned char)0X02,
        GPIO_Mode_IN_FLOATING   =(unsigned char)0X03,
        GPIO_Mode_IN_SMT                =(unsigned char)0X04,         /*施密特*/
        GPIO_Mode_IPD_SMT                =(unsigned char)0X05,         /*施密特*/
        GPIO_Mode_IPU_SMT                =(unsigned char)0X06,  /*施密特*/
        /*输出模式*/
        GPIO_Mode_OUT_PP                 =(unsigned char)0X08,
        GPIO_Mode_OUT_OD                 =(unsigned char)0X09,
        GPIO_Mode_OUT_OD_PU         =(unsigned char)0X0A,
};

#endif
#if defined (__HC89F0541_H__)

#define   GPIO_PIN_ENABLE_OUT   (unsigned char)0x80
#define   GPIO_PIN_ENABLE_IN    (unsigned char)0x40
#define   GPIO_PIN_ENABLE_UP    (unsigned char)0x20
#define   GPIO_PIN_ENABLE_DOWN  (unsigned char)0x10

#define   GPIO_PIN_ENABLE_SMT   (unsigned char)0x80
#define   GPIO_PIN_ENABLE_OD    (unsigned char)0x40

#define   GPIO_PIN_ENABLE_20MA  (unsigned char)0x00
#define   GPIO_PIN_ENABLE_10MA  (unsigned char)0x01
#define   GPIO_PIN_ENABLE_7MA   (unsigned char)0x02
#define   GPIO_PIN_ENABLE_4MA   (unsigned char)0x03

/*端口模式*/
enum  Pin_Mode
{         /*输入模式*/
        GPIO_Mode_IN                         =(unsigned char)(GPIO_PIN_ENABLE_IN),
        GPIO_Mode_IPD                         =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_DOWN),
        GPIO_Mode_IPU                         =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_UP),
        GPIO_Mode_IN_FLOATING   =(unsigned char)(GPIO_PIN_ENABLE_IN ),
        GPIO_Mode_IN_SMT                =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_SMT),         /*施密特*/
        GPIO_Mode_IPD_SMT                =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_SMT | GPIO_PIN_ENABLE_DOWN),         /*施密特*/
        GPIO_Mode_IPU_SMT                =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_SMT | GPIO_PIN_ENABLE_UP),  /*施密特*/
        /*输出模式*/
        GPIO_Mode_OUT_PP                 =(unsigned char)(GPIO_PIN_ENABLE_OUT),
        GPIO_Mode_OUT_OD                 =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD),
        GPIO_Mode_OUT_OD_PU         =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP),

    GPIO_Mode_OUT_PP_20MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_20MA),
        GPIO_Mode_OUT_PP_10MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_10MA),
        GPIO_Mode_OUT_PP_7MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_7MA),
        GPIO_Mode_OUT_PP_4MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_4MA),

    GPIO_Mode_OUT_OD_70MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_20MA),
        GPIO_Mode_OUT_OD_28MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_10MA),
        GPIO_Mode_OUT_OD_14MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_7MA),
        GPIO_Mode_OUT_OD_7MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_4MA),

    GPIO_Mode_OUT_OD_PU_70MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_20MA),
        GPIO_Mode_OUT_OD_PU_28MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_10MA),
        GPIO_Mode_OUT_OD_PU_14MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_7MA),
        GPIO_Mode_OUT_OD_PU_7MA            =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_4MA),
};

#endif

/*外设重映射 MAP*/
enum  Pin_Remap
{         /*MAP*/
        Pin_Remap_T0        =(unsigned char)0X80,
        Pin_Remap_T1        =(unsigned char)0X81,
        Pin_Remap_T3        =(unsigned char)0X83,
        Pin_Remap_T4        =(unsigned char)0X84,
        Pin_Remap_T5        =(unsigned char)0X85,
        Pin_Remap_CLKO_MAP  =(unsigned char)0X8F,

        Pin_Remap_PWM0      =(unsigned char)0X90,
        Pin_Remap_PWM01     =(unsigned char)0X91,
        Pin_Remap_PWM1      =(unsigned char)0X94,
        Pin_Remap_PWM11     =(unsigned char)0X95,
        Pin_Remap_PWM2      =(unsigned char)0X98,
        Pin_Remap_PWM21     =(unsigned char)0X99,
        Pin_Remap_PWM3      =(unsigned char)0X9C,

        Pin_Remap_TXD       =(unsigned char)0XA0,
        Pin_Remap_RXD       =(unsigned char)0XA1,

        Pin_Remap_SCL       =(unsigned char)0XA2,
        Pin_Remap_SDA       =(unsigned char)0XA3,

        Pin_Remap_SS               =(unsigned char)0XA4,
        Pin_Remap_SCK       =(unsigned char)0XA5,
        Pin_Remap_MOSI      =(unsigned char)0XA6,
        Pin_Remap_MISO      =(unsigned char)0XA7,

        Pin_Remap_TXD2      =(unsigned char)0XA8,
        Pin_Remap_RXD2      =(unsigned char)0XA9,
};


/*
        功能:        将Pin_BCD端口配置成指定模式Pin_Mode
        例如:将P2.1 配置成推挽输出 Pin_Mode_Set(0X21,GPIO_Mode_OUT_PP);                       
*/
extern  char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode);       

/*
        功能:外设功能引脚映射
        例如:将P2.1 配置成TXD   PinRemapConfig(0X21,Pin_Remap_TXD_MAP);                       
*/
extern char  Pin_RemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap);

/*高速模式直接操作IO
        功能:获取端口状态
        例如:将P0.4 配置成TXD   Pin_ReadInputDataBit(0X04);                       
*/
extern  bit  Pin_ReadInputDataBit(unsigned char Pin_BCD);
/*高速模式直接操作IO
        功能:控制端口状态
        例如:将P0.4 配置成高电平   Pin_SetOutputDataBit(0X04,1);                       
*/
extern  void  Pin_SetOutputDataBit(unsigned char Pin_BCD, unsigned char status);       

#endif













x_gpio.rar

2.44 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

194

帖子

4

粉丝