Blen 发表于 2012-8-27 12:36:21

stm32 能否对GPIO进行字节操作???

stm32 能否对GPIO进行字节操作?
我试过以下方式对GPIOA低8位进行操作:
u8 *p8;
p8 = &GPIOA->ODR;
*P8 = 0x25;
纯软件仿真情况下,结果是对的,但是真正下到芯片里面运行就不对了,会影响到GPIOA的高8位。
stm32手册说可以字、半字、字节操作,不知怎么实现。
 
 
 

青檬 发表于 2012-8-29 16:43:33

RE:stm32 能否对GPIO进行字节操作???【悬赏问答】

肯定可以了,对数据寄存器低字节赋值,然后对高字节进行与操作清零!

航天航海 发表于 2012-8-30 14:59:17

RE:stm32 能否对GPIO进行字节操作???【悬赏问答】

呵呵,学习了,不明白,
只知道
STM32对GPIO操作必须是32位全字操作

cjq_enjoy-15073 发表于 2012-9-1 10:40:52

RE:stm32 能否对GPIO进行字节操作???【悬赏问答】

可以的 模拟位操作

zykzyk-93033 发表于 2012-9-1 22:16:31

RE:stm32 能否对GPIO进行字节操作???【悬赏问答】

它的位数是32位的,你在对某个位操作时,使用与或者或进行改写操作即可。:D

wkuang 发表于 2012-9-2 00:13:32

RE:stm32 能否对GPIO进行字节操作???【悬赏问答】

手动模拟不就行了,用 c语言的 位操作,    &0xfff0,就表示只操作低八位

amsl 发表于 2013-8-29 11:55:45

回复:stm32 能否对GPIO进行字节操作???【悬赏问答】

可以自己实现这些函数
void GPIO_Write_Byte_High(GPIO_TypeDef *GPIOx, uint8_t PortVal)
{
GPIOx->ODR = (GPIOx->ODR&0x00FF) | ((uint16_t)PortValODR&0xFF00) | (PortVal);
}
页: [1]
查看完整版本: stm32 能否对GPIO进行字节操作???