各位午安,我最近在用28335外接一个模块来读取其测量结果,用的是普通GPIO模式与其通信;这个模块之前我在STM32上调通了,可在28335上就怎么也读不回来数据,二者都是用杜邦线连接的。
我对比了源码,发现读寄存器函数有区别,具体如下:
28335:
……
if(GpioDataRegs.GPADAT.bit.GPIO10==1)
{
dat |= 0x0001;
}
else
{
dat &= 0xFFFE;
}
……
GPIO配置如下:
EALLOW;
……
GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO10 = 0;
……
EDIS;
STM32读寄存器代码如下:
if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_4))
dat |= 0x01;
else
dat &= 0xFE;
另附GPIO_ReadInputDataBit的源代码:
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
uint8_t bitstatus = 0x00;
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET)
{
bitstatus = (uint8_t)Bit_SET;
}
else
{
bitstatus = (uint8_t)Bit_RESET;
}
return bitstatus;
}
我想问的是CCS有没有这类读取输入引脚的库函数?我好直接调用。我用的版本是CCSv4.12。
Susan Yang:
回复 yingkan fu:
很高兴能帮到您!