[技术问答] 请教 HC32F002 位 读取

[复制链接]
1334|10
 楼主| volbin0042 发表于 2022-12-22 11:06 | 显示全部楼层 |阅读模式
HC32F002_DDL_Rev1.0.1
GPIO.h
#define GPIO_PB05_READ()               REG_READBITS(GPIOB->IN, GPIO_PIN_05)
=====================================================
程序代码如下
boolean_t VOLB;
VOLB=GPIO_PB05_READ();

当PB05为HI 时  VOLB传回0x20
不应该是传回1吗?

读位 啥变成 字节
mcu021 发表于 2022-12-22 11:59 | 显示全部楼层
为了编译后的代码尺寸小。你可以试试返加0、1 与返回0,非0的代码大小有多少差别。
 楼主| volbin0042 发表于 2022-12-22 14:24 | 显示全部楼层
mcu021 发表于 2022-12-22 11:59
为了编译后的代码尺寸小。你可以试试返加0、1 与返回0,非0的代码大小有多少差别。 ...

是这意思吗?
VOLB=(GPIO_PB05_READ()&0X20);
if(VOLB==0)
        {
                oldstate2=255;
        }
if((VOLB!=0)&(oldstate2==255))
        {
                LPUART_Transmit(LPUART0, FUN00[5], 5, 0xFFFFFF);
                oldstate2=0;
        }
我想知道这个函式库是否有问题
还是我理解错误       
ddllxxrr 发表于 2022-12-22 15:36 | 显示全部楼层
没有错,32位机,包括STM32,读位的库函数都是这样。判断时不用布尔
 楼主| volbin0042 发表于 2022-12-23 09:16 | 显示全部楼层
ddllxxrr 发表于 2022-12-22 15:36
没有错,32位机,包括STM32,读位的库函数都是这样。判断时不用布尔

明白了
DPS1 =GPIO_PD04_READ();
DPS2 =GPIO_PD05_READ();
DPSW =GPIO_PORTD_READ();

位读取 有MASK 一样回传字节
tpgf 发表于 2023-1-3 10:36 | 显示全部楼层
怎么会呢 你定义的就是布尔型变量 不会出现字节型的结果啊
nawu 发表于 2023-1-3 11:06 | 显示全部楼层
感觉数据类型不匹配  给布尔赋值任何不为零的字节都是真
aoyi 发表于 2023-1-3 11:14 | 显示全部楼层
读取位值的库函数都是这样的 不要使用布尔型变量
zljiu 发表于 2023-1-3 11:24 | 显示全部楼层
通过位进行读取吧  不要是用这种布尔变量 不准确的
gwsan 发表于 2023-1-3 11:54 | 显示全部楼层
这种变量的形式使用的不是很好 最好不用布尔型
tfqi 发表于 2023-1-3 12:02 | 显示全部楼层
请问DPS1和DPS2都是什么种类的数据类型呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

70

帖子

1

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