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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10261|回復: 23
打印 上一主題 下一主題
收起左側

stm32每次都必須要一個一個地配置IO口?純新人問一道問題

  [復制鏈接]
跳轉到指定樓層
樓主
ID:289777 發表于 2018-11-26 08:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
30黑幣
舉個最簡單的例子,點亮LED燈,LED與IO口 B pin5 引腳相連
我想讓LED亮
不能在主函數里單獨寫一個
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
直接拉低引腳5,讓燈亮

而是必須在之前寫一堆函數比如:
GPIO_InitTypeDef  GPIO_InitStructure;
         
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);         //使能PB,PE端口時鐘
        
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                                 //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根據設定參數初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5);                                                 //PB.5 輸出高


上面這么多函數每次寫新程序都要寫是嗎?
不能直接在主函數里寫GPIO_ResetBits 或GPIO_setBits來直接決定引腳電平嗎?
就像51單片機直接給1或0直接決定高低電平

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

使用道具 舉報

來自 2#
ID:388197 發表于 2019-7-16 01:41 | 只看該作者
這個過程免不了的,不過也就是多復制一兩次的事而已,也可以把這些全丟到一個函數里去,直接調用這個函數即可.每次用就修改下函數里的代碼..就相當于51你開頭SBIT XXX = P1^0....對于庫函數的調用,最好寫下注釋或者DEFINE一下.比如
#define Led_Mie GPIO_SetBits(GPIOA,GPIO_Pin_0)
#define Led_Liang  GPIO_ResetBits(GPIOA,GPIO_Pin_0)

后面寫代碼直接用Led_Mie   Led_Liang 就行了.寫代碼盡量每個函數盡量簡短,函數數量可以多,命名時注意可讀性,不要學老譚的書上什么fun1 fun2之類的.多數剛從51轉過來學32的人都覺得32配置起來很啰嗦和麻煩,這是正常的,因為這樣的好處還沒感覺到而已,時間長習慣就好了.

32的庫可讀性很強也很規范,平時閱讀一下,對自己的代碼水平也是很有幫助的.
回復

使用道具 舉報

板凳
ID:94031 發表于 2018-11-26 09:18 | 只看該作者
stm32確實每次都必須配置IO口,這樣做可帶來的好處是,一個IO口可以根據需要有多種用途,不用的不送電節能。雖然麻煩,好處多多。
回復

使用道具 舉報

地板
ID:104472 發表于 2018-11-26 09:20 | 只看該作者
可以做個。c和。h文件專門配置這個
回復

使用道具 舉報

5#
ID:433223 發表于 2018-11-26 09:45 來自手機 | 只看該作者
不能啊,必須先使能時鐘
回復

使用道具 舉報

6#
ID:300414 發表于 2018-11-26 10:46 | 只看該作者
STM32的IO口功能比51多很多,根據不同需要可以復用配置成不同的功能,在使用前,單片機需要知道你將該IO口配置成什么功能,因此在每次對該IO進行操作前,必須要對IO進行配置后才能進行操作。
回復

使用道具 舉報

7#
ID:289777 發表于 2018-11-26 13:22 | 只看該作者
xuyaqi 發表于 2018-11-26 09:18
stm32確實每次都必須配置IO口,這樣做可帶來的好處是,一個IO口可以根據需要有多種用途,不用的不送電節能 ...

能簡單說說stm32 的四個輸入和4個輸出的模式的區別嗎,網上的好啰嗦啊,能通俗易懂的說一下嗎,哪幾個常用?
回復

使用道具 舉報

8#
ID:289777 發表于 2018-11-26 13:22 | 只看該作者
sclzgl 發表于 2018-11-26 10:46
STM32的IO口功能比51多很多,根據不同需要可以復用配置成不同的功能,在使用前,單片機需要知道你將該IO口 ...

能簡單說說stm32 的四個輸入和4個輸出的模式的區別嗎,網上的好啰嗦啊,能通俗易懂的說一下嗎,哪幾個常用?
回復

使用道具 舉報

9#
ID:429166 發表于 2018-11-26 13:41 | 只看該作者
是的,必須這么做
回復

使用道具 舉報

10#
ID:433533 發表于 2018-11-26 16:27 | 只看該作者
你可以不用庫函數寫,直接寫入寄存器就行
回復

使用道具 舉報

11#
ID:433680 發表于 2018-11-26 19:39 | 只看該作者
是的這是必需的,stm32 必需先規規劃 RCC (CLOCK), 接著定義 GPIO 的應用式, 建義參考 ST STM32 的庫函數及文件,
回復

使用道具 舉報

12#
ID:433680 發表于 2018-11-26 19:40 | 只看該作者
是的這是必需的,stm32 必需先規規劃 RCC (CLOCK), 接著定義 GPIO 的應用式,
建義參考 ST STM32 的庫函數及文件,
回復

使用道具 舉報

13#
ID:261175 發表于 2018-11-26 20:15 | 只看該作者
不能,stm32為了耗能低,還有一些外設沒有必要用到那么高的頻率,不像51很多東西都是固定的,因為你要是用這個引腳當然要初始化,給它一個指令配置它,不然它怎么知道你的需求是什么,只要一次初始化以后后面的程序使用就不需要初始化了,可以直接用那些引腳拉低拉高函數,剛開始學總是會有很多疑問,先堅持教程看完就會對它有個整體的理解,也就會接受這個機制
回復

使用道具 舉報

14#
ID:429899 發表于 2018-11-26 21:07 | 只看該作者
是的,每次都需要的
回復

使用道具 舉報

15#
ID:19680 發表于 2018-11-26 21:27 | 只看該作者
如果使用庫函數的方式開發如同你寫的方式,是要一個一個配置io的,如果用寄存器的方式寫程序,只需要對相關io相關寄存器寫入數值就行了,幾行代碼就搞定了,但是如果是初學者我覺得還是一個一個配置吧,用寄存器方式開發就是為了節省rom,一般情況下stm32的rom還是相當夠用的
回復

使用道具 舉報

16#
ID:433764 發表于 2018-11-26 21:57 | 只看該作者
st官方工具 stm32cubeMX 了解一下,從此基本不用手動配置了,配套使用hal庫,寫完程序后找到對效率影響大的地方換成LL庫,可以同時保證開發效率和運行效率。
回復

使用道具 舉報

17#
ID:434171 發表于 2018-11-27 14:15 | 只看該作者
看你自己想要做什么,可以自己寫個函數,以后直接調用,送參數進去就可以了
回復

使用道具 舉報

18#
ID:100415 發表于 2018-11-27 17:04 | 只看該作者
每次都必須要配置的,但是我們可以做一些常用的配置文件,封裝成一個.C與.h文件,模塊化的調用就可以了,也很方便的
回復

使用道具 舉報

19#
ID:100415 發表于 2018-11-27 17:05 | 只看該作者
需要配置的,一些常用的寫成配置文件,封裝起來,模塊化的方式,以后直接調用了
回復

使用道具 舉報

20#
ID:246251 發表于 2018-12-1 10:15 | 只看該作者
寄存器操作沒這么多事
回復

使用道具 舉報

21#
ID:433935 發表于 2018-12-2 09:04 | 只看該作者
STM32不像51一樣可以直接引用,不過如果你已經經定義了這個函數便可以了。如果你嫌麻煩  你可以復制呀。
回復

使用道具 舉報

22#
ID:519876 發表于 2019-7-15 08:19 | 只看該作者
必須每次都要寫,因為32單片機的IO大部分有很多其他功能,需要配置才能正常使用
回復

使用道具 舉報

23#
ID:583948 發表于 2019-7-15 17:19 | 只看該作者
這就是stm32比51麻煩一點的地方,不過可以拷貝庫文件里面的例程,這樣只需修改對應的端口或者值就可以了。
回復

使用道具 舉報

24#
ID:73666 發表于 2019-7-16 10:42 | 只看該作者
請使用STM32CubeMX軟件圖形化配置外設,軟件可自動生成初始代碼。推薦使用最新的HAL庫。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 五月天天丁香婷婷在线中 | 日日淫 | 亚洲国产欧美在线人成 | 欧美成人精品欧美一级 | 中文字幕第一页在线 | 黄色成人av | 日韩在线播放第一页 | 中文字幕高清免费日韩视频在线 | 亚洲成人精选 | 日韩精品在线看 | 国产精品久久久久婷婷二区次 | 一级无毛片 | 久热精品在线观看视频 | 瑟瑟激情 | 一区二区三区四区在线 | 伦理一区二区 | 国产精品久久久久久238 | 成人免费网站 | a在线免费观看视频 | 久久男人 | 久久久久成人精品亚洲国产 | 国产精品视频不卡 | www.午夜 | 日韩av中文 | 精品欧美激情精品一区 | 天天干人人 | 欧美视频在线播放 | 影音先锋中文字幕在线观看 | 精品国产欧美一区二区三区成人 | 国产色黄 | 久久夜视频| 成人免费一级 | 91在线精品秘密一区二区 | 成年人黄色免费视频 | 久久亚洲欧美日韩精品专区 | 美女视频一区二区三区 | 综合久| 午夜精品一区二区三区在线观看 | 一区二区三区精品视频 | 波多野结衣av中文字幕 | 91精品国产色综合久久不卡蜜臀 |