標(biāo)題: stm32f103單片機的IO口問題 [打印本頁]

作者: 幻海生    時間: 2022-11-17 14:21
標(biāo)題: stm32f103單片機的IO口問題
初學(xué)stm32,用推挽模式 讓 A0口01循環(huán),led左側(cè)必須接電源才亮,如A0口,若左側(cè)接地則完全沒反應(yīng),如B1口,是代碼的問題還是仿真的問題
看教程說推挽輸出是強驅(qū)動,不應(yīng)該連個led都驅(qū)動不了



代碼如下

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)
{
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
               
   GPIO_InitTypeDef GPIO_InitStructure;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(GPIOA, &GPIO_InitStructure);

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
   GPIO_Init(GPIOB, &GPIO_InitStructure);
        
   while (1)
   {
      GPIO_WriteBit(GPIOB, GPIO_Pin_1, (BitAction)1);
      Delay_ms(500);
      GPIO_ResetBits(GPIOA, GPIO_Pin_0);
      Delay_ms(500);
      GPIO_SetBits(GPIOA, GPIO_Pin_0);
      Delay_ms(500);
   }
}



作者: Hephaestus    時間: 2022-11-17 15:12
什么叫“二極管”?
作者: yzwzfyz    時間: 2022-11-17 16:51
查一下LED的手冊,看看LED在何種情況下才能亮?炊,就明白了。
作者:     時間: 2022-11-18 08:11
你把LED反著接,PA0再輸出高電平就能亮了,二極管未損壞情況下具有單向?qū)ǖ奶匦?hr noshade size="2" width="100%" color="#808080"> 作者: adad2    時間: 2022-11-18 08:59
這個是什么仿真軟件,介紹下
作者: gwffg    時間: 2022-11-18 10:15
adad2 發(fā)表于 2022-11-18 08:59
這個是什么仿真軟件,介紹下

Proteus
作者: Longan.Wang    時間: 2022-11-18 10:39
把GPIO_WriteBit(GPIOB, GPIO_Pin_1, (BitAction)1);換成
   GPIO_SetBits(GPIOB, GPIO_Pin_1);試試
作者: 幻海生    時間: 2022-11-18 12:06
本帖最后由 幻海生 于 2022-11-18 12:19 編輯
 發(fā)表于 2022-11-18 08:11
你把LED反著接,PA0再輸出高電平就能亮了,二極管未損壞情況下具有單向?qū)ǖ奶匦?/blockquote>

PB1口我一直給它高電平,沒連接led之前是有顯示紅色的高電平


連接之后就電平變成了灰色,就跟最開始的圖一樣, 拿來對照PA0口給外部電壓才亮,至于led的單向?qū)ㄊ橇私獾?br />
作者: 幻海生    時間: 2022-11-18 12:06
Longan.Wang 發(fā)表于 2022-11-18 10:39
把GPIO_WriteBit(GPIOB, GPIO_Pin_1, (BitAction)1);換成
   GPIO_SetBits(GPIOB, GPIO_Pin_1);試試

試了,還是一樣
emmmm
作者: Longan.Wang    時間: 2022-11-18 16:38
幻海生 發(fā)表于 2022-11-18 12:06
PB1口我一直給它高電平,沒連接led之前是有顯示紅色的高電平

你有這張圖就基本清楚了。這個是IO口的驅(qū)動能力不足,還有你本身的電路也有問題,驅(qū)動LED需要加上限流電阻。你在PB1與LED正極之間加上一個470歐姆左右的電阻試試;如果還是不行,就再編輯(左鍵雙擊或右鍵菜單選項)一下LED的屬性,把正向?qū)妷焊男∫稽c(可以一點點的試)。
作者: 幻海生    時間: 2022-11-19 08:29
Longan.Wang 發(fā)表于 2022-11-18 16:38
你有這張圖就基本清楚了。這個是IO口的驅(qū)動能力不足,還有你本身的電路也有問題,驅(qū)動LED需要加上限流電 ...

剛開始默認(rèn)模擬信號改成數(shù)字信號后,可以用了,感謝指點









歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1