久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9124|回復: 1
收起左側

學習筆記-STM32F1 GPIO 工作原理(摘錄)

[復制鏈接]
ID:91350 發表于 2015-9-30 01:00 | 顯示全部樓層 |閱讀模式
      
    這星期因工作比較繁忙,每天都很晚下班,剩余的時間少之又少。但這個星期過的非常充實,把自己的想要在不需要改動任何代碼的情況下檢測并自動適配底層驅動的設計思路得到驗證,從而實現一套系統兼容多種不同的硬件設備,讓客戶在硬件上有多種組合選擇的余地。雖然還只是比較粗糙的框架,倘若繼續深入完善該設計,一定會讓我們公司的系統更加智能化,從而減輕軟件方面的負擔,提高工作效率,蠻有成就感的。說的好像好高大上,哈哈。其實也就是一堆的函數指針指來指去的。越來越喜歡C了,喜歡這種不受束縛的實現自己想法的感覺。這次的實現,感覺仍有很多地方考慮的不夠周全,仍有很多瑕疵。不過重要的是得到了鍛煉,總體來說,收獲蠻大的,
之前都是跳著學STM32,這次打算重新系統的去學,以下為學STM32時,看視頻、看書時,覺得比較好的部分,摘錄下來的內容。方便查詢復習使用。
STM32F103ZET6:
1、一共有7組IO口 -> GPIOA ~ GPIOG
2、每組IO口有16個IO
3、一個16*7=112個IO口
STM32的大部分引腳除了當GPIO使用外,還可以復用為外設功能引腳(如串口).
STM32共有8種模式:
4種輸入模式:
        浮空輸入模式(GPIO_Mode_IN_FLOATING)
        上拉輸入模式(GPIO_Mode_IPU)
        下拉輸入模式(GPIO_Mode_IPD)
        模擬輸入模式(GPIO_Mode_AIN)
4種輸出模式(反轉速度 2MHz、10MHz、50MHz):
        普通推挽輸出模式(GPIO_Mode_Out_PP)
普通開漏輸出模式(GPIO_Mode_Out_OD)
復用推挽輸出模式(GPIO_Mode_AF_PP)
復用開漏輸出模式(GPIO_Mode_AF_OD)
輸入模式:
浮空輸入模式:
IO口的電平狀態經過TTL施密特觸發器(開),再到輸入數據寄存器,CPU即可從數據寄存器讀取到該電平狀態。內部的上拉下拉的開關是關閉的。當此IO口懸空,其電平狀態是不確定的,由外部輸入決定,這個模式直接用電壓表測量其引腳電壓為1點幾伏。由于其輸入阻抗比較大,一般這種輸入模式用于標準的通訊協議如I2C、USART的接收端。
上拉輸入模式:
和浮空很相似,唯一不同地方在于,上拉的開關被打開(該上拉電阻大約在30~50K),若IO口處于懸空狀態,會有上拉電阻拉高。即默認電平為高電平。
下拉輸入模式:
和上拉輸入模式很相似,唯一不同的地方在于下拉的開關被打開,IO口懸空時默認電平為低電平。
模擬輸入模式:
接入到IO口的不是電平狀態,而是電壓,3V、2V這些,上下拉被關閉、TTL施密特觸發器被關閉,加在IO口的電壓直接到模擬輸入。當IO口被用作ADC采樣時就是這種解構,當使用ADC外設時,必須設置為模擬輸入模式。

輸出模式:
普通推挽輸出模式:
往寄存器寫 1 ,通過輸出控制電路,P-MOS管導通,N-MOS管關閉,IO口即為高電平。往寄存器寫 0 ,通過輸出控制電路,P-MOS管關閉,N-MOS管導通,IO口即為低電平。兩個管子輪流導通,一個負責灌電流、一個負責拉電流,使其負載能力和開關速度都比普通的方式有很大的提升,推挽輸出的低電平為0V,高電平為 3.3 V。
無論何時,CPU 都可以通過輸入驅動器讀取該IO口的實際電平值。
普通開漏輸出模式
該模式下,P-MOS管不起作用,往寄存器寫0,通過輸出控制電路,則使N-MOS管導通,使輸出接地,IO口即為低電平。往寄存器寫1,N-MOS管截至,此時IO口即不是高電平也不是低電平,為高阻態,即無法直接輸出高電平,使用時必須在外部接上一個上拉電阻,當輸出為高阻態時由上拉將該IO口拉高,一般用于電平不匹配的情況下,如需要輸出5V高電平,就需要加上拉電阻,電源為5V,當輸出為高阻態時,由上拉電阻和電源向外輸出5V電平。
注意,此模式具有“線與”特性,即很多個開漏模式引腳連在一起時,只有當所有引腳都輸出高阻態(即1),才會被外部上拉電阻拉高提供電平,此時電平的電壓為外部上拉電阻所接電源的電壓,若其中一個引腳為低電平,那線路就相當于短接到地,使得整條線路為低電平(0V)。
上拉電阻的阻值決定了邏輯電平轉換的沿的速度,阻值越大,速度越低功耗越小。
只有在寫1時,才可以通過輸入驅動器讀取該IO口的實際電平值,利用此原理,適合模擬I2C,接上拉電阻,就能夠正確輸出0和1,讀值時先GPIO_SetBits(GPIOB, GPIO_Pin_0) 拉高,然后使用GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)讀IO的值。
復用推挽輸出模式
復用推挽輸出模式和普通推挽輸出模式基本是一樣,只是一個是由片上外設控制,一個是由CPU控制。
無論何時,CPU 都可以通過輸入驅動器讀取該IO口的實際電平值。
復用開漏輸出模式
復用開漏輸出模式和普通開漏輸出模式基本是一樣,只是一個是由片上外設控制,一個是由CPU控制。
無論何時,CPU 都可以通過輸入驅動器讀取該IO口的實際電平值。
復用模式是根據GPIO的復用功能來選擇的,如GPIO的引腳作用串口TX,則采用復用推挽輸出模式,如果是I2C、SMBUS這些線與功能的復用場合則采用復用開漏輸出模式。
在使用任何一種開漏模式時,一般都是接上拉電阻。
通常有 5 種方式使用某個引腳功能,它們的配置方式如下:
1)作為普通 GPIO 輸入:根據需要配置該引腳為浮空輸入、 帶弱上拉輸入或帶弱下拉輸入,同時不要使能該引腳對應的所有復用功能模塊。
2)作為普通 GPIO 輸出:根據需要配置該引腳為推挽輸出或開漏輸出,同時不要使能該引腳對應的所有復用功能模塊。
3)作為普通模擬輸入:配置該引腳為模擬輸入模式,同時不要使能該引腳對應的所有復用功能模塊。
4)作為內置外設的輸入:根據需要配置該引腳為浮空輸入、 帶弱上拉輸入或帶弱下拉輸入,同時使能該引腳對應的某個復用功能模塊。
5)作為內置外設的輸出:根據需要配置該引腳為復用推挽輸出或復用開漏輸出,同時使能該引腳對應的所有復用功能模塊。

如果有多個復用功能模塊對應同一個引腳,只能使能其中之一,其它模塊保持非使能狀態。
stm32 復位后,IO 端口處于輸入浮空狀態。
復位后, JTAG引腳被置于輸入上拉或下拉模式:
─ PA15: JTDI置于上拉模式
─ PA14: JTCK置于下拉模式
─ PA13: JTMS置于上拉模式
─ PB4: JNTRST置于上拉模式
所有 IO 端口都具有外部中斷能力,端口必須配置成輸入模式,才能使用外部中斷功能.
IO 端口復用功能配置:
1、對于復用功能輸入,端口可以配置成任意輸入模式或者復用功能輸出模式.
2、對于復用功能輸出,端口必須配置成復用功能輸出
3、對于雙向復用功能,端口必須配置成復用功能輸出
4、stm32 的部分 IO 端口的復用功能可以重新映射成另外的復用功能.
5、stm32 具有 GPIO 鎖定機制,即鎖定 GPIO 配置,下次復位前不能再修改.
6、當 LSE 振蕩器關閉時,OSC32_IN 和 OSC32_OUT 可以用作通用 IO PC14 和 PC15.
7、當進入待機模式或者備份域由 Vbat 供電,PC14,PC15 功能丟失,該兩個 IO 口線設置為模擬輸入功能.
8、OSC_IN 和 OSC_OUT 可以重新映射為 GPIO PD0,PD1.
注意 PD0,PD1 用于輸出地時候僅能用于 50MHz 輸出模式.
注意:PC13,PC14,PC15 只能用于 2MHz 的輸出模式,,最多只能帶 30pf 的負載,并且同時只能使用一個引腳。
外設的GPIO配置可以在STM32中文參考手冊——V10 第110頁可以查詢。

   



回復

使用道具 舉報

ID:68719 發表于 2017-5-16 21:57 | 顯示全部樓層
謝謝,大有幫助,解決了疑惑。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女黄色在线观看 | 久久精品色欧美aⅴ一区二区 | 天天综合久久 | 亚洲欧美激情精品一区二区 | 99re6在线| 91麻豆蜜桃一区二区三区 | 日韩高清电影 | 久草资源在线视频 | 日本在线播放一区二区 | 国产免费一区二区三区最新6 | 黄色片大全在线观看 | 国产在线一区二区三区 | 欧美a√| 日本午夜免费福利视频 | 欧美视频在线观看 | 国产又爽又黄的视频 | 日韩有码一区 | 一区二区三区四区国产 | www亚洲精品 | 久久精品国产亚洲一区二区三区 | 国产精品亚洲视频 | 韩日一区二区三区 | 中文字幕日韩一区 | 精品久久久久久亚洲综合网 | 91在线免费观看 | 亚洲综合久久网 | 久久久久一区 | 99久久99热这里只有精品 | 国产精品久久久久久 | 男人的天堂久久 | 欧美aaaaa| 日韩视频一区在线观看 | 久久久久成人精品免费播放动漫 | 国产精品精品久久久 | 91一区二区在线观看 | 97人人澡人人爽91综合色 | a级在线| 日本精品一区二区三区视频 | 精品二区 | 不卡一二三区 | 中文字幕在线看人 |