工具与软件:
您好!!
我正在我的项目中使用 TM4C1230H6PM 控制器、我将使用 PB1 (引脚编号46)作为输出引脚并尝试切换该引脚、但即使试图使该引脚处于高电平或低电平的趋势也不会切换。 问题可能是什么??? 我检查了其他引脚 PB2和 PB3、其发生方式与端口相同、我只能切换 PB0引脚。 下面是我的代码、请看一下、如果有任何更改、请为我提供建议。
#include "main.h"
int Index = 1;
int count;
int check_release,relese_couter;
extern uint8_t rev_data[3];
int value;
#define GNSS_OFF "GF0"
#define GNSS_ON "GF1"
#define SYNC_OFF "SW0"
#define SYNC_ON "SW1"
#define HOLD "HLD"
void Keypad_Init(void)
{
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); //LED
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
// This is using for the PD7 Pin
HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTD_BASE + GPIO_O_CR) |= 0x80;
HWREG(GPIO_PORTD_BASE + GPIO_O_AFSEL) &= 0x80;
HWREG(GPIO_PORTD_BASE + GPIO_O_DEN) |= 0x80;
HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = 0;
/*
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTB_BASE + GPIO_O_AFSEL) &= ~(1 << 1);
HWREG(GPIO_PORTB_BASE + GPIO_O_AMSEL) &= ~(1 << 1);
HWREG(GPIO_PORTB_BASE + GPIO_O_DEN) |= (1 << 1);
HWREG(GPIO_PORTB_BASE + GPIO_O_DIR) |= (1 << 1);
HWREG(GPIO_PORTB_BASE + GPIO_O_ODR) &= ~(1 << 1);
HWREG(GPIO_PORTB_BASE + GPIO_O_PUR) |= (1 << 1);
HWREG(GPIO_PORTB_BASE + GPIO_O_PDR) &= ~(1 << 1);
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = 0;
*/
/******* KEYPAD PB *********/
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_0);
ROM_GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_0, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD_WPD);
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_1);
ROM_GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_3, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD_WPD);
ROM_GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_1,0);
delay(1000);
ROM_GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_1,1);