查看: 3486|回复: 6

[分享] 【YL-KL26Z试用】+ 我的GPIO操作库

[复制链接]
  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
    发表于 2015-3-17 15:12:24 | 显示全部楼层 |阅读模式
    昨天终于收到了小七寄来的YL-KL26Z开发板,鉴于本人比较喜欢库函数操作方式,但又不太喜欢ST类库的臃肿,网上找个FSL库也不太适合我的习惯。因此打算自己封装一个,全部都是使用内联函数的形式,这样可以提高运行效率。
    辛苦了一个晚上加一个上午终于赶出来了,分享给大家,望指正:
    片段:
    /** \brief      ÅäÖà GPIO Òý½Å¹¦ÄÜ
    *  \param [in] port: ¶Ë¿ÚºÅ[PORTA.PORTB.PORTC.PORTD.PORTE]
    * \param [in] pin : Òý½ÅºÅ[PORT_Pin0.PORT_Pin1...]
    * \param [in] func: Òý½Å¹¦ÄÜÏà»òºóµÄÖµ
    *                    [Êä³öÇý¶¯ÄÜÁ¦ GPIO_LowDriveStrength     or GPIO_HighDriveStrength   and
    *                     ÊäÈëÎÞÔ´Â˲¨ GPIO_PassiveFilterDisable or GPIO_PassiveFilterEnable and
    *                     Êä³öѹ°ÚÂÊ   GPIO_FastSlewRate         or GPIO_SlowSlewRate        and
    *                     ÊäÈëÉÏÏÂÀ    GPIO_PullDisable          or GPIO_PullEnable          and
    *                     ÉÏÏÂÀ Ñ¡Ôñ   GPIO_PullDown             or GPIO_PullUp]
    */
    __STATIC_INLINE void GPIO_PinFuncConfiguration(PORT_Type * port,uint8_t pin,uint32_t func)
    {
    port->PCR[pin] = (port->PCR[pin] & \
                       (~(uint32_t)(PORT_PCR_DSE_MASK | PORT_PCR_PFE_MASK | \
                        PORT_PCR_SRE_MASK | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK))) | \
                      func;
    }

    kinetis_gpio.rar (2.24 KB, 下载次数: 23)
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
     楼主| 发表于 2015-3-17 15:15:40 | 显示全部楼层
    keil下的中文在其他地方竟然显示乱码!!!!吐槽一下。

    再说明一下:
    FSL 官方的PE我用不习惯,用的是KEIL环境CMSIS框架,IAR下也是支持的。
    另外我自己定义了几种数据类型:
    typedef enum {false   = 0,true    = !false}   bool;
    typedef enum {disable = 0,enable  = !disable} FunctionalState;
    typedef enum {reset   = 0,set     = !reset}   ITStatus,FlagStatus,BitAction;
    typedef enum {error   = 0,success = !error}   ErrorStatus;

    #define FALSE    false
    #define TRUE     true

    #define DISABLE  disable
    #define ENABLE   enable

    #define RESET    reset
    #define SET      set

    #define ERROR    error
    #define SUCCESS  success
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2015-3-18 11:26:15 | 显示全部楼层
    非常感谢你的经验分享!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    91

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    267
    最后登录
    2015-10-23
    发表于 2015-4-28 11:22:09 | 显示全部楼层
    感谢楼主分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2015-4-28 22:39:39 | 显示全部楼层
    cxtarm 发表于 2015-3-17 15:15
    keil下的中文在其他地方竟然显示乱码!!!!吐槽一下。

    再说明一下:

    同感觉,习惯了KEIL
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    317

    帖子

    0

    高级会员

    Rank: 4

    积分
    862
    最后登录
    1970-1-1
    发表于 2015-6-3 01:14:35 | 显示全部楼层
    习惯了,也就只有包容了。同样用keil。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17

    主题

    244

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    339
    最后登录
    1970-1-1
    发表于 2015-6-3 08:07:06 | 显示全部楼层
    厉害!小弟学习了
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-27 03:21 , Processed in 0.094763 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表