查看: 2063|回复: 8

[其他] GPIO 置位清零翻转控制

[复制链接]
  • TA的每日心情
    开心
    2016-11-14 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    63

    主题

    605

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1783
    最后登录
    2016-11-14
    发表于 2015-7-30 11:23:00 | 显示全部楼层 |阅读模式
    为什么这样设置,就可以实现GPIO口的置位清零翻转控制呢,小白看不懂,请高手详解一下,谢谢!
    我知道答案 目前已有8人回答
    1.png
    2.png

    评分

    参与人数 1NXP金币 +10 收起 理由
    小七 + 10 打赏!

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-7-31 08:37:56 | 显示全部楼层
    楼主把上述两者之间完整链接的代码分享一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-14 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    63

    主题

    605

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1783
    最后登录
    2016-11-14
     楼主| 发表于 2015-7-31 09:19:00 | 显示全部楼层
    FSL_TICS_ZP 发表于 2015-7-31 08:37
    楼主把上述两者之间完整链接的代码分享一下

    其实代码就是YL-KL26Z开发板里面的GPIO-KEY例程,我就是看不懂里面的那个GPIO置位清零翻转控制函数是什么原理的,请说明一下,谢谢~~~

    Demo_KEY_GPIO.rar

    637.64 KB, 下载次数: 6, 下载积分: 威望 1

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-7-31 10:24:19 | 显示全部楼层
    ##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号
    举个例子
    #define XNAME(n)   x ## n  

    如果这样使用宏:XNAME(8)
    则会被展开成这样:x8
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-14 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    63

    主题

    605

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1783
    最后登录
    2016-11-14
     楼主| 发表于 2015-7-31 13:39:39 | 显示全部楼层
    FSL_TICS_ZP 发表于 2015-7-31 10:24
    ##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号
    举个例子
    #define XNAME( ...

    你解释的不够完整喔,那样还是不能解释到他为什么可以翻转电平啊,求解释
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    273

    帖子

    0

    高级会员

    Rank: 4

    积分
    718
    最后登录
    1970-1-1
    发表于 2015-7-31 15:01:16 | 显示全部楼层
    版主其实解释的很清楚啊,既然知道##的作用,
    以GPIO_SET(MKL_PORTB,18);为例

    #define MKL_PORTB      B
    GPIO_SET(MKL_PORTB,18);    就相当于GPIOB_PSOR=(1<<18);
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-14 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    63

    主题

    605

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1783
    最后登录
    2016-11-14
     楼主| 发表于 2015-7-31 15:09:37 | 显示全部楼层
    Jay-295455 发表于 2015-7-31 15:01
    版主其实解释的很清楚啊,既然知道##的作用,
    以GPIO_SET(MKL_PORTB,18);为例

    原来POSR是个寄存器,我还以为是个函数来的呢~~~,太粗心了~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2015-7-31 15:14:57 | 显示全部楼层
    多看参考手册
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-14 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    63

    主题

    605

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1783
    最后登录
    2016-11-14
     楼主| 发表于 2015-7-31 15:17:22 | 显示全部楼层

    因为之前开发其他的时候,翻转电平的话,都是直接~就行了,没想到还整个寄存器来控制他,万万没想到~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 23:58 , Processed in 0.107258 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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