标题: stm32寄存器编程配置浮空输入时程序卡死了 [打印本页]

作者: wmxs    时间: 2017-8-17 19:43
标题: stm32寄存器编程配置浮空输入时程序卡死了
我在用寄存器编程的方式控制tcs230模块的时候,在配置OUT脚浮空输入的时候程序卡死了
下面是我写的用来配置寄存器的函数,前面几个配置推挽输出的都正常,但是到后面配置浮空输入的时候卡住了
求大神为我指点一下迷津(用串口输出的是调试信息,忽略掉就可以了)
还有就是我的tcs230模块的OE引脚始终是低电平,用程序控制根本无效,之前用51和32的固件库编程都是这样,难道是硬件本身就是这样的吗?
  1. static void TCS230_GPIO_Init(void) {
  2.         RCC->APB2ENR|=1<<3;             //使能PORTA接口时钟
  3.   
  4.           USART1->DR=0x30;
  5.           while((USART1->SR&0X40)==0);        
  6.         GPIOB->CRH&=0XFFFFF0FF;
  7.         GPIOB->CRH|=0X00000300;         //PB10推挽输出
  8.         GPIOB->ODR|=1<<2;               //PB10输出高电平
  9.         
  10.           USART1->DR=0x31;
  11.           while((USART1->SR&0X40)==0);        
  12.         GPIOB->CRH&=0XFFFF0FFF;
  13.         GPIOB->CRH|=0X00003000;         //PB11推挽输出
  14.         GPIOB->ODR|=1<<3;               //PB11输出高电平
  15.         
  16.           USART1->DR=0x32;
  17.           while((USART1->SR&0X40)==0);        
  18.         GPIOB->CRH&=0XFFF0FFFF;
  19.         GPIOB->CRH|=0X00030000;         //PB12推挽输出
  20.         GPIOB->ODR|=1<<4;               //PB12输出高电平

  21.           USART1->DR=0x33;
  22.           while((USART1->SR&0X40)==0);
  23.         GPIOB->CRH&=0XFF0FFFFF;
  24.         GPIOB->CRH|=0X00300000;         //PB13推挽输出
  25.         GPIOB->ODR|=1<<5;               //PB13输出高电平

  26.           USART1->DR=0x34;
  27.           while((USART1->SR&0X40)==0);        
  28.         GPIOB->CRH&=0XF0FFFFFF;
  29.         GPIOB->CRH|=0X03000000;         //PB14推挽输出
  30.         GPIOB->ODR|=1<<6;               //PB14输出高电平        

  31.           USART1->DR=0x35;
  32.           while((USART1->SR&0X40)==0);
  33.         GPIOB->CRH&=0X0FFFFFFF;
  34.           USART1->DR=0x40;
  35.           while((USART1->SR&0X40)==0);
  36.         GPIOB->CRH|=0X40000000;                     //PB15浮空输入,程序进行到这里会卡住
  37.                
  38.           USART1->DR=0x36;
  39.           while((USART1->SR&0X40)==0);
  40. }
复制代码




作者: wmxs    时间: 2017-8-18 08:32
前面使能时钟那句注释忘改了,实际上是使能的GPIOB的时钟。。。汗。。。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1