硬汉嵌入式论坛

 找回密码
 立即注册
查看: 336|回复: 5
收起左侧

[技术讨论] 华大HC32F460 IO口翻转问题 ,进行2次或运算如何实现的翻转?

[复制链接]

2

主题

5

回帖

11

积分

新手上路

积分
11
发表于 2024-1-31 16:25:32 | 显示全部楼层 |阅读模式

网上找了个测试代码也是这样写的,不理解




回复

使用道具 举报

2

主题

5

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-1-31 16:27:15 | 显示全部楼层
oid send_test()
{
  
    uint16_t *POx;
    while(1)
    {
            POx = (uint16_t *)((uint32_t)(&M4_PORT->PORRA) );
        *POx = (*POx) | Pin05;

            POx = (uint16_t *)((uint32_t)(&M4_PORT->POSRA) );
        *POx = (*POx) | Pin05;
  
    }


}
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/a982606774/article/details/121526185
回复

使用道具 举报

2

主题

5

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-1-31 16:27:31 | 显示全部楼层
/**
*******************************************************************************
** \brief   Toggle Port Pin
**
** \param   [in]  enPort               GPIO port index, This parameter can be
**                                     any value of @ref en_port_t
** \param   [in]  u16Pin               GPIO pin index, This parameter can be
**                                     any composed value of @ref en_pin_t
** \retval  Ok                         Set successful to corresponding pins
**
******************************************************************************/
en_result_t PORT_Toggle(en_port_t enPort, uint16_t u16Pin)
{
    uint16_t *POTRx;

    /* parameter check */
    DDL_ASSERT(IS_VALID_PORT(enPort));

    POTRx = (uint16_t *)((uint32_t)(&M4_PORT->POTRA) + 0x10u * enPort);
    *POTRx |= u16Pin;
    return Ok;
}
回复

使用道具 举报

1

主题

13

回帖

16

积分

新手上路

积分
16
发表于 2024-1-31 17:58:29 | 显示全部楼层
*POx每次获取的寄存器不一样,没看过芯片um,推测PORRA和POSRA分别是Port的Reset和Set寄存器,写1有效,这样子就能翻转
回复

使用道具 举报

1

主题

51

回帖

54

积分

初级会员

积分
54
发表于 2024-1-31 18:04:43 | 显示全部楼层
可以参考这个寄存器说明
QQ图片20240131180409.png
回复

使用道具 举报

2

主题

5

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2024-2-1 13:50:50 | 显示全部楼层
谢谢
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 19:55 , Processed in 0.209421 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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