请教下大家,上电后延时5S(防swim脚锁死),再把SWIM脚设成输出脚,让它能输出高低电平。但实测,这脚一直是高电平。是否我下面的设置,不足以让SWIM脚成功设成输出?
/* 定义TXenable IO PORT与PIN SWIM */
#define TXenable_GPIO_PORT (GPIOD)
#define TXenable_GPIO_PINS (GPIO_PIN_5)
void SWIMset_IO(void)
{
/* 配置TXenable IO 为输出模式 */
GPIO_Init(TXenable_GPIO_PORT, (GPIO_Pin_TypeDef)TXenable_GPIO_PINS, GPIO_MODE_OUT_PP_HIGH_SLOW);//上电时不发射
}
/**
* @函数名 AutoCHK
* @功 能
* @参 数 无
* @返回值 无
*/
void AutoCHK(void)
{
GPIO_WriteLow(TXenable_GPIO_PORT,(GPIO_Pin_TypeDef)TXenable_GPIO_PINS);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
GPIO_WriteHigh(TXenable_GPIO_PORT,(GPIO_Pin_TypeDef)TXenable_GPIO_PINS);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
GPIO_WriteLow(TXenable_GPIO_PORT,(GPIO_Pin_TypeDef)TXenable_GPIO_PINS);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
GPIO_WriteHigh(TXenable_GPIO_PORT,(GPIO_Pin_TypeDef)TXenable_GPIO_PINS);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
}
void main(void)
{
IoSetUp_Init();
/* LED初始化 */
LED_Init();
GPIO_WriteLow(LED_GPIO_PORT,LED_GPIO_PINS);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
GPIO_WriteHigh(LED_GPIO_PORT,LED_GPIO_PINS);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF); Delay(0xFFFF);
if(!GPIO_ReadInputPin(OUTPUTselect_GPIO_PORT, (GPIO_Pin_TypeDef)OUTPUTselect_GPIO_PINS)) OUTPUTmode=RESET;//RESET:有物高
else OUTPUTmode=SET; // SET:
if ((GPIO_ReadInputData(EX
ti_GPIO_PORT) EXTI_GPIO_PINS) == 0x00)//无物
{
GPIO_WriteHigh(LED_GPIO_PORT, LED_GPIO_PINS);
if(OUTPUTmode==RESET) GPIO_WriteLow(OUTPUT_GPIO_PORT,OUTPUT_GPIO_PINS);
else GPIO_WriteHigh(OUTPUT_GPIO_PORT,OUTPUT_GPIO_PINS);
}
else //有物
{
GPIO_WriteLow(LED_GPIO_PORT, LED_GPIO_PINS);
if(OUTPUTmode==RESET) GPIO_WriteHigh(OUTPUT_GPIO_PORT,OUTPUT_GPIO_PINS);
else GPIO_WriteLow(OUTPUT_GPIO_PORT,OUTPUT_GPIO_PINS);
}
/* 外部中断初始化 */
EXTI_Init();
/* 使能总中断 */
enableInterrupts();
SWIMset_IO();
AutoCHK();
while (1)
{
;
}
}