[资源共享] 《芯圣51内核单片机HC89F0xx库分享》-GPIO库

[复制链接]
13438|14
 楼主| 正版长小强 发表于 2023-10-26 08:49 | 显示全部楼层 |阅读模式
#每日话题# #申请原创# #技术资源#

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

  11. #ifndef __X_GPIO_H__
  12. #define __X_GPIO_H__




  13. /*端口模式*/
  14. enum  Pin_Mode
  15. {         /*输入模式*/
  16.         GPIO_Mode_IN                                 =(unsigned char)0X00,
  17.         GPIO_Mode_IPD                         =(unsigned char)0X01,
  18.         GPIO_Mode_IPU                         =(unsigned char)0X02,
  19.         GPIO_Mode_IN_FLOATING   =(unsigned char)0X03,
  20.         GPIO_Mode_IN_SMT                =(unsigned char)0X04,         /*施密特*/
  21.         GPIO_Mode_IPD_SMT                =(unsigned char)0X05,         /*施密特*/
  22.         GPIO_Mode_IPU_SMT                =(unsigned char)0X06,  /*施密特*/
  23.         /*输出模式*/
  24.         GPIO_Mode_OUT_PP                 =(unsigned char)0X08,
  25.         GPIO_Mode_OUT_OD                 =(unsigned char)0X09,
  26.         GPIO_Mode_OUT_OD_PU         =(unsigned char)0X0A,
  27. };
  28. /*外设重映射 MAP*/
  29. enum  Pin_Remap
  30. {         /*MAP*/
  31.         Pin_Remap_T0        =(unsigned char)0X80,
  32.         Pin_Remap_T1        =(unsigned char)0X81,
  33.         Pin_Remap_T3        =(unsigned char)0X83,
  34.         Pin_Remap_T4        =(unsigned char)0X84,
  35.         Pin_Remap_T5        =(unsigned char)0X85,
  36.         Pin_Remap_CLKO      =(unsigned char)0X8F,

  37.         Pin_Remap_PWM0      =(unsigned char)0X90,
  38.         Pin_Remap_PWM01     =(unsigned char)0X91,
  39.         Pin_Remap_PWM1      =(unsigned char)0X94,
  40.         Pin_Remap_PWM11     =(unsigned char)0X95,
  41.         Pin_Remap_PWM2      =(unsigned char)0X98,
  42.         Pin_Remap_PWM21     =(unsigned char)0X99,
  43.         Pin_Remap_PWM3      =(unsigned char)0X9C,

  44.         Pin_Remap_TXD       =(unsigned char)0XA0,
  45.         Pin_Remap_RXD       =(unsigned char)0XA1,

  46.         Pin_Remap_SCL       =(unsigned char)0XA2,
  47.         Pin_Remap_SDA       =(unsigned char)0XA3,

  48.         Pin_Remap_SS               =(unsigned char)0XA4,
  49.         Pin_Remap_SCK       =(unsigned char)0XA5,
  50.         Pin_Remap_MOSI      =(unsigned char)0XA6,
  51.         Pin_Remap_MISO      =(unsigned char)0XA7,

  52.         Pin_Remap_TXD2      =(unsigned char)0XA8,
  53.         Pin_Remap_RXD2      =(unsigned char)0XA9,
  54. };

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

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

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

  75. #endif

               .c文件
              

  1. /**
  2. *   ************************************************************************************
  3. *                                                                X_GPIO
  4. *        ************************************************************************************
  5. *        @Examle Version                V1.0.0.0
  6. *        @Demo         Version                V1.0.0.0
  7. *        @Date                                2023.9.14
  8. *        ************************************************************************************
  9. *        实现了端口配置          : char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode)
  10. *        实现了外设端口映射          : char  PinRemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap)
  11. *   实现端口输入状态获取  :char  Pin_ReadInputDataBit(unsigned char Pin_BCD)
  12. *   ************************************************************************************
  13. **/
  14. #include "x_include.h"
  15. #include "x_gpio.h"


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

  30.    return 0;
  31. }

  32. /*
  33. 功能:外设功能引脚映射
  34. 参数:Pin_BCD 引脚
  35. 参数:Remap 外设
  36. 返回:0 暂未启用,计划做端口范围异常控制
  37. */
  38. char  PinRemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap)
  39. {
  40.          *(&P0M0 + Remap )  =         Pin_BCD          ;
  41.         return 0;       
  42. }
  43. /*
  44. 功能:输入状态获取
  45. 参数:Pin_BCD 引脚
  46. 返回:0 down  1 up
  47. */
  48. bit  Pin_ReadInputDataBit(unsigned char Pin_BCD)
  49. {
  50.   bit status = 0;
  51.   xdata strChar  Set_Pin;
  52.    Set_Pin.byte = Pin_BCD;  
  53.    switch(Set_Pin.half.low)  
  54.    {
  55.                    case 0x00:         status =   (( P0 >> Set_Pin.half.high ) & 0x01) ;                break;
  56. //                case 0x01:         status =   (( P1 >> Set_Pin.half.high ) & 0x01) ;                break;
  57.                 case 0x02:         status =   (( P2 >> Set_Pin.half.high ) & 0x01) ;                break;
  58.                 default:        break;
  59.    }
  60.    return status;
  61. }
  62. /*
  63. 功能:输出状态控制
  64. 参数:Pin_BCD 引脚
  65. 参数:status 0 down  1 up
  66. 返回:无
  67. */
  68. void  Pin_SetOutputDataBit(unsigned char Pin_BCD, unsigned char status)
  69. {
  70.         xdata strChar  Set_Pin;
  71.            Set_Pin.byte = Pin_BCD;  
  72.            switch(Set_Pin.half.low)  
  73.            {
  74.                    case 0x00: P0 &=        ~(1 << Set_Pin.half.high);P0 |=  (status << Set_Pin.half.high);                break;
  75. //                case 0x01: P1 &=        ~(1 << Set_Pin.half.high);P1 |=  (status << Set_Pin.half.high);                break;
  76.                 case 0x02: P2 &=        ~(1 << Set_Pin.half.high);P2 |=  (status << Set_Pin.half.high);                break;
  77.                 default:        break;
  78.            }
  79. }

评论

@21小跑堂  发表于 2023-10-26 09:22
@芯圣电子官方QQ@flybluefox@flybluefox  发表于 2023-10-26 09:00
@芯圣电子官方QQ  发表于 2023-10-26 08:59
 楼主| 正版长小强 发表于 2023-10-26 08:58 | 显示全部楼层
本帖最后由 正版长小强 于 2023-10-26 09:02 编辑

1
tpgf 发表于 2023-11-2 16:27 | 显示全部楼层
这个封装库是楼主自己做的吗

评论

是的 ,目前 只是部分 工作状态的 配置 。后续后随项目使用情况 逐步 更新晚上 ,也欢迎大家一起维护起来  发表于 2023-11-10 08:20
coshi 发表于 2023-11-2 16:56 | 显示全部楼层
官网有没有相关的引脚库呢
wiba 发表于 2023-11-2 17:25 | 显示全部楼层
这种库里边需要包含比较全的函数吗
kxsi 发表于 2023-11-2 17:45 | 显示全部楼层
能自己写一个库 已经对相关引脚研究的很透彻了
drer 发表于 2023-11-2 18:11 | 显示全部楼层
一个完整的gpio库都需要包含什么内容呢

评论

这个库 并不完整 ,只做了配置部分 ,是大家使用频率最高的 ,后续 会逐步 加入  发表于 2023-11-10 08:18
qcliu 发表于 2023-11-2 18:36 | 显示全部楼层
请问这个库可以适用于全系列的芯片吗

评论

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

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

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

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

  14. #include "x_gpio.h"


  15. /*
  16. 功能:引脚功能配置
  17. 参数:Pin_BCD 引脚
  18. 参数:Mode 模式
  19. 返回:0 暂未启用,计划做端口范围异常控制
  20. */
  21. char  Pin_Mode_Set(unsigned char Pin_BCD,enum  Pin_Mode  Mode)
  22. {
  23.   #if defined (__HC89F0322_H__) || defined(__HC89F0411A_H__)
  24.   xdata unsigned char  Mode_Reset[] = {0XF0,0x0F};
  25.   #endif
  26.   xdata unsigned char   Reg_add = 0X00;
  27.   xdata strChar  Set_Pin;
  28.    
  29.    Set_Pin.byte = Pin_BCD;
  30.    #if defined (__HC89F0322_H__) || defined(__HC89F0411A_H__)
  31.    Reg_add =         Set_Pin.half.low * 8 +          Set_Pin.half.high / 2;  
  32.    *(&P0M0 + Reg_add ) = (*(&P0M0 + Reg_add )) &   Mode_Reset[ Set_Pin.half.high % 2]          |          ( Mode << (4 * (Set_Pin.half.high % 2)) );
  33.    #endif
  34.    #if defined (__HC89F0541_H__)
  35.       Reg_add =         Set_Pin.half.low * 8 +          Set_Pin.half.high ;  
  36.       *(&P0M0 + Reg_add ) = Mode;
  37.    #endif

  38.    
  39.    return 0;
  40. }

  41. /*
  42. 功能:外设功能引脚映射
  43. 参数:Pin_BCD 引脚
  44. 参数:Remap 外设
  45. 返回:0 暂未启用,计划做端口范围异常控制
  46. */
  47. char  Pin_RemapConfig(unsigned char Pin_BCD,enum  Pin_Remap  Remap)
  48. {
  49.          *(&P0M0 + Remap )  =         Pin_BCD          ;
  50.         return 0;       
  51. }
  52. /*
  53. 功能:输入状态获取
  54. 参数:Pin_BCD 引脚
  55. 返回:0 down  1 up
  56. */
  57. bit  Pin_ReadInputDataBit(unsigned char Pin_BCD)
  58. {
  59.   bit status = 0;
  60.   xdata strChar  Set_Pin;
  61.    Set_Pin.byte = Pin_BCD;  
  62.    switch(Set_Pin.half.low)  
  63.    {
  64.       #ifdef  GPIO_P0  
  65.                    case 0x00:         status =   (( P0 >> Set_Pin.half.high ) & 0x01) ;                break;
  66.           #endif
  67.       #ifdef  GPIO_P1
  68.                 case 0x01:         status =   (( P1 >> Set_Pin.half.high ) & 0x01) ;                break;
  69.       #endif
  70.           #ifdef  GPIO_P2
  71.                 case 0x02:         status =   (( P2 >> Set_Pin.half.high ) & 0x01) ;                break;
  72.           #endif
  73.            #ifdef  GPIO_P3
  74.         case 0x03:         status =   (( P3 >> Set_Pin.half.high ) & 0x01) ;                break;
  75.       #endif
  76.                 default:        break;
  77.    }
  78.    return status;
  79. }
  80. /*
  81. 功能:输出状态控制
  82. 参数:Pin_BCD 引脚
  83. 参数:status 0 down  1 up
  84. 返回:无
  85. */
  86. void  Pin_SetOutputDataBit(unsigned char Pin_BCD, unsigned char status)
  87. {
  88.         xdata strChar  Set_Pin;
  89.            Set_Pin.byte = Pin_BCD;  
  90.            switch(Set_Pin.half.low)  
  91.            {
  92.           #ifdef  GPIO_P0
  93.                    case 0x00: P0 &=        ~(1 << Set_Pin.half.high);P0 |=  (status << Set_Pin.half.high);                break;
  94.           #endif
  95.       #ifdef  GPIO_P1
  96.                 case 0x01: P1 &=        ~(1 << Set_Pin.half.high);P1 |=  (status << Set_Pin.half.high);                break;
  97.       #endif
  98.           #ifdef  GPIO_P2
  99.                 case 0x02: P2 &=        ~(1 << Set_Pin.half.high);P2 |=  (status << Set_Pin.half.high);                break;
  100.           #endif
  101.       #ifdef  GPIO_P3
  102.         case 0x03: P3 &=        ~(1 << Set_Pin.half.high);P3 |=  (status << Set_Pin.half.high);                break;
  103.       #endif
  104.                 default:        break;
  105.            }
  106. }

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


  1. /**
  2. *   ************************************************************************************
  3. *                                                                X_GPIO
  4. *        ************************************************************************************
  5. *        @Examle Version                V1.1.0.0
  6. *        @Demo         Version                V1.1.0.0
  7. *        @Date                                2023.11.01
  8. *        ************************************************************************************
  9. *   ************************************************************************************
  10. **/

  11. #ifndef __X_GPIO_H__
  12. #define __X_GPIO_H__
  13. #include "x_include.h"


  14. #if defined(__HC89F0411A_H__) || defined (__HC89F0322_H__) || defined (__HC89F0541_H__)
  15.         #define     GPIO_P0
  16. #endif

  17. #if                                                          defined (__HC89F0322_H__) || defined (__HC89F0541_H__)
  18.         #define     GPIO_P1
  19. #endif

  20. #if defined(__HC89F0411A_H__) || defined (__HC89F0322_H__) || defined (__HC89F0541_H__)
  21.         #define     GPIO_P2
  22. #endif

  23. #if                                                                                                                    defined (__HC89F0541_H__)
  24.         #define     GPIO_P3
  25. #endif




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

  27. /*端口模式*/
  28. enum  Pin_Mode
  29. {         /*输入模式*/
  30.         GPIO_Mode_IN                         =(unsigned char)0X00,
  31.         GPIO_Mode_IPD                         =(unsigned char)0X01,
  32.         GPIO_Mode_IPU                         =(unsigned char)0X02,
  33.         GPIO_Mode_IN_FLOATING   =(unsigned char)0X03,
  34.         GPIO_Mode_IN_SMT                =(unsigned char)0X04,         /*施密特*/
  35.         GPIO_Mode_IPD_SMT                =(unsigned char)0X05,         /*施密特*/
  36.         GPIO_Mode_IPU_SMT                =(unsigned char)0X06,  /*施密特*/
  37.         /*输出模式*/
  38.         GPIO_Mode_OUT_PP                 =(unsigned char)0X08,
  39.         GPIO_Mode_OUT_OD                 =(unsigned char)0X09,
  40.         GPIO_Mode_OUT_OD_PU         =(unsigned char)0X0A,
  41. };

  42. #endif
  43. #if defined (__HC89F0541_H__)

  44. #define   GPIO_PIN_ENABLE_OUT   (unsigned char)0x80
  45. #define   GPIO_PIN_ENABLE_IN    (unsigned char)0x40
  46. #define   GPIO_PIN_ENABLE_UP    (unsigned char)0x20
  47. #define   GPIO_PIN_ENABLE_DOWN  (unsigned char)0x10

  48. #define   GPIO_PIN_ENABLE_SMT   (unsigned char)0x80
  49. #define   GPIO_PIN_ENABLE_OD    (unsigned char)0x40

  50. #define   GPIO_PIN_ENABLE_20MA  (unsigned char)0x00
  51. #define   GPIO_PIN_ENABLE_10MA  (unsigned char)0x01
  52. #define   GPIO_PIN_ENABLE_7MA   (unsigned char)0x02
  53. #define   GPIO_PIN_ENABLE_4MA   (unsigned char)0x03

  54. /*端口模式*/
  55. enum  Pin_Mode
  56. {         /*输入模式*/
  57.         GPIO_Mode_IN                         =(unsigned char)(GPIO_PIN_ENABLE_IN),
  58.         GPIO_Mode_IPD                         =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_DOWN),
  59.         GPIO_Mode_IPU                         =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_UP),
  60.         GPIO_Mode_IN_FLOATING   =(unsigned char)(GPIO_PIN_ENABLE_IN ),
  61.         GPIO_Mode_IN_SMT                =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_SMT),         /*施密特*/
  62.         GPIO_Mode_IPD_SMT                =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_SMT | GPIO_PIN_ENABLE_DOWN),         /*施密特*/
  63.         GPIO_Mode_IPU_SMT                =(unsigned char)(GPIO_PIN_ENABLE_IN | GPIO_PIN_ENABLE_SMT | GPIO_PIN_ENABLE_UP),  /*施密特*/
  64.         /*输出模式*/
  65.         GPIO_Mode_OUT_PP                 =(unsigned char)(GPIO_PIN_ENABLE_OUT),
  66.         GPIO_Mode_OUT_OD                 =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD),
  67.         GPIO_Mode_OUT_OD_PU         =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP),

  68.     GPIO_Mode_OUT_PP_20MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_20MA),
  69.         GPIO_Mode_OUT_PP_10MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_10MA),
  70.         GPIO_Mode_OUT_PP_7MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_7MA),
  71.         GPIO_Mode_OUT_PP_4MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_4MA),

  72.     GPIO_Mode_OUT_OD_70MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_20MA),
  73.         GPIO_Mode_OUT_OD_28MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_10MA),
  74.         GPIO_Mode_OUT_OD_14MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_7MA),
  75.         GPIO_Mode_OUT_OD_7MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_4MA),

  76.     GPIO_Mode_OUT_OD_PU_70MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_20MA),
  77.         GPIO_Mode_OUT_OD_PU_28MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_10MA),
  78.         GPIO_Mode_OUT_OD_PU_14MA        =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_7MA),
  79.         GPIO_Mode_OUT_OD_PU_7MA            =(unsigned char)(GPIO_PIN_ENABLE_OUT | GPIO_PIN_ENABLE_OD | GPIO_PIN_ENABLE_UP | GPIO_PIN_ENABLE_4MA),
  80. };

  81. #endif

  82. /*外设重映射 MAP*/
  83. enum  Pin_Remap
  84. {         /*MAP*/
  85.         Pin_Remap_T0        =(unsigned char)0X80,
  86.         Pin_Remap_T1        =(unsigned char)0X81,
  87.         Pin_Remap_T3        =(unsigned char)0X83,
  88.         Pin_Remap_T4        =(unsigned char)0X84,
  89.         Pin_Remap_T5        =(unsigned char)0X85,
  90.         Pin_Remap_CLKO_MAP  =(unsigned char)0X8F,

  91.         Pin_Remap_PWM0      =(unsigned char)0X90,
  92.         Pin_Remap_PWM01     =(unsigned char)0X91,
  93.         Pin_Remap_PWM1      =(unsigned char)0X94,
  94.         Pin_Remap_PWM11     =(unsigned char)0X95,
  95.         Pin_Remap_PWM2      =(unsigned char)0X98,
  96.         Pin_Remap_PWM21     =(unsigned char)0X99,
  97.         Pin_Remap_PWM3      =(unsigned char)0X9C,

  98.         Pin_Remap_TXD       =(unsigned char)0XA0,
  99.         Pin_Remap_RXD       =(unsigned char)0XA1,

  100.         Pin_Remap_SCL       =(unsigned char)0XA2,
  101.         Pin_Remap_SDA       =(unsigned char)0XA3,

  102.         Pin_Remap_SS               =(unsigned char)0XA4,
  103.         Pin_Remap_SCK       =(unsigned char)0XA5,
  104.         Pin_Remap_MOSI      =(unsigned char)0XA6,
  105.         Pin_Remap_MISO      =(unsigned char)0XA7,

  106.         Pin_Remap_TXD2      =(unsigned char)0XA8,
  107.         Pin_Remap_RXD2      =(unsigned char)0XA9,
  108. };


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

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

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

  129. #endif













x_gpio.rar

2.44 KB, 下载次数: 9

您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

194

帖子

4

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