找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2171|回復: 10
打印 上一主題 下一主題
收起左側(cè)

stm32f103單片機的IO口問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1050519 發(fā)表于 2022-11-17 14:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
初學stm32,用推挽模式 讓 A0口01循環(huán),led左側(cè)必須接電源才亮,如A0口,若左側(cè)接地則完全沒反應,如B1口,是代碼的問題還是仿真的問題
看教程說推挽輸出是強驅(qū)動,不應該連個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);
   }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2022-11-17 15:12 | 只看該作者
什么叫“二極管”?
回復

使用道具 舉報

板凳
ID:123289 發(fā)表于 2022-11-17 16:51 | 只看該作者
查一下LED的手冊,看看LED在何種情況下才能亮?炊,就明白了。
回復

使用道具 舉報

地板
ID:405850 發(fā)表于 2022-11-18 08:11 | 只看該作者
你把LED反著接,PA0再輸出高電平就能亮了,二極管未損壞情況下具有單向?qū)ǖ奶匦?/td>
回復

使用道具 舉報

5#
ID:941265 發(fā)表于 2022-11-18 08:59 | 只看該作者
這個是什么仿真軟件,介紹下
回復

使用道具 舉報

6#
ID:416015 發(fā)表于 2022-11-18 10:15 來自觸屏版 | 只看該作者
adad2 發(fā)表于 2022-11-18 08:59
這個是什么仿真軟件,介紹下

Proteus
回復

使用道具 舉報

7#
ID:77589 發(fā)表于 2022-11-18 10:39 | 只看該作者
把GPIO_WriteBit(GPIOB, GPIO_Pin_1, (BitAction)1);換成
   GPIO_SetBits(GPIOB, GPIO_Pin_1);試試
回復

使用道具 舉報

8#
ID:1050519 發(fā)表于 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 />
回復

使用道具 舉報

9#
ID:1050519 發(fā)表于 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
回復

使用道具 舉報

10#
ID:77589 發(fā)表于 2022-11-18 16:38 | 只看該作者
幻海生 發(fā)表于 2022-11-18 12:06
PB1口我一直給它高電平,沒連接led之前是有顯示紅色的高電平

你有這張圖就基本清楚了。這個是IO口的驅(qū)動能力不足,還有你本身的電路也有問題,驅(qū)動LED需要加上限流電阻。你在PB1與LED正極之間加上一個470歐姆左右的電阻試試;如果還是不行,就再編輯(左鍵雙擊或右鍵菜單選項)一下LED的屬性,把正向?qū)妷焊男∫稽c(可以一點點的試)。
回復

使用道具 舉報

11#
ID:1050519 發(fā)表于 2022-11-19 08:29 | 只看該作者
Longan.Wang 發(fā)表于 2022-11-18 16:38
你有這張圖就基本清楚了。這個是IO口的驅(qū)動能力不足,還有你本身的電路也有問題,驅(qū)動LED需要加上限流電 ...

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




回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表