在线时间3 小时
UID404412
ST金币0
蝴蝶豆0
注册时间2007-5-29
初级会员
- 最后登录
- 2018-11-28
|
楼主 |
发表于 2015-6-20 15:42:09
|
显示全部楼层
a0a.1 32b0c
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
{
/* Check the parameters */
assert_param(IS_GPIO_PIN(GPIO_Pin));
assert_param(IS_GPIO_PIN_ACTION(PinState));
if(PinState != GPIO_PIN_RESET)
{
GPIOx->BSRR = GPIO_Pin;
}
else
{
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
}
没达到GPIO_Write的同样效果,
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET)
只是把GPIOC所有端口置1而已,如果我要输出0x5555,还是做不到。
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
GPIO_PinState bitstatus;
/* Check the parameters */
assert_param(IS_GPIO_PIN(GPIO_Pin));
if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
{
bitstatus = GPIO_PIN_SET;
}
else
{
bitstatus = GPIO_PIN_RESET;
}
return bitstatus;
}
typedef enum
{
GPIO_PIN_RESET = 0,
GPIO_PIN_SET
}GPIO_PinState;
看得出来返回值只有0或1两种状态而已 |
|