//設置爲輸入上拉,防止浮空引腳,減小電流消耗及不肯定狀態 P0SEL = 0x00; P0DIR = 0x00; P0INP &= ~0xFF; P1SEL = 0x00; P1DIR = 0x00; P1INP &= ~0xFF;
上面看了文檔後知道是什麼意思了。可是下面緊接着一段代碼相似上面部分代碼,就是此段出了問題。函數
P2SEL &= ~0x07; P2DIR &= ~0x1F; P2INP &= ~0x1F; P2INP |= 0xE0;
屏蔽掉上段代碼,問題解決。可是我仍是不知道爲何這段代碼會形成溫度採集的值始終不變。ui
下面是完整後進入低功耗模式的設置代碼。調試
void halMcuSetLowPowerMode(uint8 mode) { //設置爲輸入上拉,防止浮空引腳,減小電流消耗及不肯定狀態 P0SEL = 0x00; P0DIR = 0x00; P0INP &= ~0xFF; P1SEL = 0x00; P1DIR = 0x00; P1INP &= ~0xFF; // [放大模塊低功耗處理] // P1SEL &= ~0x02; P1DIR |= 0x02; P1_1 = 0; // P1SEL &= ~0x10; P1DIR |= 0x10; P1_4 = 0; //貌似這裏有問題,這段代碼作啥子? // P2SEL &= ~0x07; // P2DIR &= ~0x1F; // P2INP &= ~0x1F; // P2INP |= 0xE0; Init_SLEEP_TIMER(); Set_ST_Period(RF_CYCLE*100); PowerMode(mode); // comment: not yet implemented // HAL_ASSERT(FALSE); }
_______________________________________________________上面是昨日code
今天跟老闆說了BUG的緣由,看了代碼後就知道是哪裏的問題了。也怪本身看數據手冊沒有理解透徹。P0INP與P1INP中控制上啦下啦是要看P2INP的。P2INP的高三位纔是起決定做用的。
文檔