标题:
stm32用寄存器编程方法配置GPIO引脚为浮空输入的时候程序会卡在那条语句上
[打印本页]
作者:
wmxs
时间:
2017-8-17 19:17
标题:
stm32用寄存器编程方法配置GPIO引脚为浮空输入的时候程序会卡在那条语句上
如题,我在用tcs230模块时,用寄存器编程的时候,在配置GPIO引脚的时候发现程序会卡死在配置浮空输入的那条语句上下面是我用来配置GPIO引脚的函数,前面的推挽输出都是正常的,但是到了配置浮空输入的时候就卡住了(PB15脚)
求大神帮我看看到底是怎么回事(使用串口输出的用来调试用的,忽略掉就可以了)
还有就是我的tcs230模块的OE引脚好像始终是低电平,根本不受程序的控制,我在用51和用固件库编程的时候都是这样,是硬件本身就是这样的吗?
static void TCS230_GPIO_Init(void) {
RCC->APB2ENR|=1<<3; //使能PORTA接口时钟
USART1->DR=0x30;
while((USART1->SR&0X40)==0);
GPIOB->CRH&=0XFFFFF0FF;
GPIOB->CRH|=0X00000300; //PB10推挽输出
GPIOB->ODR|=1<<2; //PB10输出高电平
USART1->DR=0x31;
while((USART1->SR&0X40)==0);
GPIOB->CRH&=0XFFFF0FFF;
GPIOB->CRH|=0X00003000; //PB11推挽输出
GPIOB->ODR|=1<<3; //PB11输出高电平
USART1->DR=0x32;
while((USART1->SR&0X40)==0);
GPIOB->CRH&=0XFFF0FFFF;
GPIOB->CRH|=0X00030000; //PB12推挽输出
GPIOB->ODR|=1<<4; //PB12输出高电平
USART1->DR=0x33;
while((USART1->SR&0X40)==0);
GPIOB->CRH&=0XFF0FFFFF;
GPIOB->CRH|=0X00300000; //PB13推挽输出
GPIOB->ODR|=1<<5; //PB13输出高电平
USART1->DR=0x34;
while((USART1->SR&0X40)==0);
GPIOB->CRH&=0XF0FFFFFF;
GPIOB->CRH|=0X03000000; //PB14推挽输出
GPIOB->ODR|=1<<6; //PB14输出高电平
USART1->DR=0x35;
while((USART1->SR&0X40)==0);
GPIOB->CRH&=0X0FFFFFFF;
USART1->DR=0x40;
while((USART1->SR&0X40)==0);
GPIOB->CRH|=0X40000000; //PB15浮空输入,是外部中断的输入线,但是程序到了这一步后会卡死,不知道是什么原因
USART1->DR=0x36;
while((USART1->SR&0X40)==0);
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1