TI中文支持网
TI专业的中文技术问题搜集分享网站

用TM4C123GXL配置gpio遇到的问题

我想把PC4至高,但是用万用表测出来电压只有0.6 0.7左右,这是为什么呀?
不是应该3.3v吗?
我是这样配置的:
GPIO_PORTC_DATA_R |= 0X10

yayun xu:

回复 Michael Sun:

谢谢。
我照着你给的配置
把GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4,GPIO_DIR_MODE_OUT)
改成GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE,  GPIO_PIN_4)
就能输出3.3v。
但是这是为什么呀?
最近经常遇到这种问题,很是头痛呀。

Michael Sun:

回复 yayun xu:

GPIODirModeSet这个函数只是把这个GPIO的方向配置为输出。

GPIOPinTypeGPIOOutput这个函数的源码:

voidGPIOPinTypeGPIOOutput(uint32_t ui32Port, uint8_t ui8Pins){ // // Check the arguments. // ASSERT(_GPIOBaseValid(ui32Port));

// // Set the pad(s) for standard push-pull operation. // GPIOPadConfigSet(ui32Port, ui8Pins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);

// // Make the pin(s) be outputs. // GPIODirModeSet(ui32Port, ui8Pins, GPIO_DIR_MODE_OUT);}

这里会先把端口配置为GPIO功能,然后再配置方向。

这样就解释清楚了。

yayun xu:

回复 Michael Sun:

我之前是这样配置的

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4 ,GPIO_DIR_MODE_OUT);

GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_PIN_4);

改成

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE,  GPIO_PIN_4);

GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_PIN_4);

就能工作。

我理解你说的意思,但是我的程序是从别人写成功移植过来的,为什么别人可以用?我的就不行?

每次看别人的程序都会出现这样的问题。

yayun xu:

回复 Michael Sun:

非常感谢你耐心的解答。谢谢。

Michael Sun:

回复 yayun xu:

别客气,后面开发过程中遇到问题也欢迎贴上来大家一起讨论。

赞(0)
未经允许不得转载:TI中文支持网 » 用TM4C123GXL配置gpio遇到的问题
分享到: 更多 (0)