找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3313|回復(fù): 1
收起左側(cè)

stm32寄存器編程配置浮空輸入時(shí)程序卡死了

[復(fù)制鏈接]
ID:228154 發(fā)表于 2017-8-17 19:43 | 顯示全部樓層 |閱讀模式
我在用寄存器編程的方式控制tcs230模塊的時(shí)候,在配置OUT腳浮空輸入的時(shí)候程序卡死了
下面是我寫的用來配置寄存器的函數(shù),前面幾個(gè)配置推挽輸出的都正常,但是到后面配置浮空輸入的時(shí)候卡住了
求大神為我指點(diǎn)一下迷津(用串口輸出的是調(diào)試信息,忽略掉就可以了)
還有就是我的tcs230模塊的OE引腳始終是低電平,用程序控制根本無效,之前用51和32的固件庫編程都是這樣,難道是硬件本身就是這樣的嗎?
  1. static void TCS230_GPIO_Init(void) {
  2.         RCC->APB2ENR|=1<<3;             //使能PORTA接口時(shí)鐘
  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浮空輸入,程序進(jìn)行到這里會(huì)卡住
  37.                
  38.           USART1->DR=0x36;
  39.           while((USART1->SR&0X40)==0);
  40. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:228154 發(fā)表于 2017-8-18 08:32 | 顯示全部樓層
前面使能時(shí)鐘那句注釋忘改了,實(shí)際上是使能的GPIOB的時(shí)鐘。。。汗。。。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表