查看: 3072|回复: 8

[已解决] KE GPIO 操作(已解决)

[复制链接]
  • TA的每日心情
    慵懒
    2018-10-7 11:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    25

    主题

    134

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    390
    最后登录
    2020-9-5
    发表于 2015-5-8 21:00:59 | 显示全部楼层 |阅读模式
    本帖最后由 FAYE-351782 于 2015-9-7 11:19 编辑

    看了MKE06 MCU的GPIO 寄存器说明,

    可以操作 GPIOA_PDOR    (端口数据输出寄存器) 更改IO 端口状态,


    但是又有 GPIOA_PSOR(置1),GPIOA_PCOR(清0),  GPIOA_PTOR(转换)也可以操作端口,

    他为什么这样做,不是觉得有点重复了么?
    我知道答案 目前已有8人回答
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2015-5-11 14:09:16 | 显示全部楼层
    我觉得不完全重复,比如在不知道原来的输出状态时,可以通过置1或0明确操作。至于PDOR,是输出数据了,作为数据寄存器,目的很明确,虽然与置位和清0都是输出数据的,也可以像置位那样,但那样,目的区不明确。PTOR是不管原来的状态时什么,通过操作可以保持原来的状态或翻转原来的状态。PTOR是与PDOR、PSOR、PCOR、不一样的。虽然这几个都是输出寄存器,目的不一样,是为了方便。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-5-11 15:45:14 | 显示全部楼层
    可以这样操作,但是,你写入的时候是直接|=1比较方便些吧。
    如果用PDOR的话输出低的时候要写
    PDOR= PDOR & 0xFFFE
    PCOR|=0x0001
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
    发表于 2015-5-11 16:17:14 | 显示全部楼层
    个人理解
    GPIOA_PDOR    只适用于配置为通用引脚输出上的逻辑值,这几个应该是和PORT寄存器配合使用的,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    143

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    491
    最后登录
    1970-1-1
    发表于 2015-5-12 08:29:11 | 显示全部楼层
    void GPIO_DQ_Out_Mode()
    {
        GPIOA_PDDR |= (1<<5);            //io设置为输出模式  PTA5
    }

    void GPIO_DQ_Input_Mode()
    {
        GPIOA_PDDR &= ~(1<<5);            //io设置为输入模式
    }

    void DQ_Write_1()     
    {
              //设置为输出高电平   
      GPIOA_PDOR |= (1<<5);
    }

    void DQ_Write_0()     
    {           
           //设置为输出低电平   Port Clear Output Register
        GPIOA_PDOR &= 0xffffffdf;
    }

    unsigned char DQ_ReadBit()   //读一位数据
    {
        unsigned char GetBit = 0;
       GetBit = (unsigned char)((GPIOA_PDIR>>5) & 0x00000001);
        return GetBit ;
    }
    我写的IO配置,大家看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31

    主题

    253

    帖子

    20

    金牌会员

    Rank: 6Rank: 6

    积分
    1532
    最后登录
    2021-7-20
    发表于 2015-5-22 21:10:09 | 显示全部楼层
    电平翻转应该快一点不然要读然后改。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-26 07:58 , Processed in 0.094439 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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