欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 11423|回復(fù): 23
打印 上一主題 下一主題
收起左側(cè)

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

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

而是必須在之前寫一堆函數(shù)比如:
GPIO_InitTypeDef  GPIO_InitStructure;
         
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);         //使能PB,PE端口時(shí)鐘
        
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);                                         //根據(jù)設(shè)定參數(shù)初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5);                                                 //PB.5 輸出高


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

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

使用道具 舉報(bào)

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

后面寫代碼直接用Led_Mie   Led_Liang 就行了.寫代碼盡量每個(gè)函數(shù)盡量簡(jiǎn)短,函數(shù)數(shù)量可以多,命名時(shí)注意可讀性,不要學(xué)老譚的書上什么fun1 fun2之類的.多數(shù)剛從51轉(zhuǎn)過來學(xué)32的人都覺得32配置起來很啰嗦和麻煩,這是正常的,因?yàn)檫@樣的好處還沒感覺到而已,時(shí)間長(zhǎng)習(xí)慣就好了.

32的庫可讀性很強(qiáng)也很規(guī)范,平時(shí)閱讀一下,對(duì)自己的代碼水平也是很有幫助的.
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

5#
ID:433223 發(fā)表于 2018-11-26 09:45 來自觸屏版 | 只看該作者
不能啊,必須先使能時(shí)鐘
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

能簡(jiǎn)單說說stm32 的四個(gè)輸入和4個(gè)輸出的模式的區(qū)別嗎,網(wǎng)上的好啰嗦啊,能通俗易懂的說一下嗎,哪幾個(gè)常用?
回復(fù)

使用道具 舉報(bào)

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

能簡(jiǎn)單說說stm32 的四個(gè)輸入和4個(gè)輸出的模式的區(qū)別嗎,網(wǎng)上的好啰嗦啊,能通俗易懂的說一下嗎,哪幾個(gè)常用?
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

17#
ID:434171 發(fā)表于 2018-11-27 14:15 | 只看該作者
看你自己想要做什么,可以自己寫個(gè)函數(shù),以后直接調(diào)用,送參數(shù)進(jìn)去就可以了
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

22#
ID:519876 發(fā)表于 2019-7-15 08:19 | 只看該作者
必須每次都要寫,因?yàn)?2單片機(jī)的IO大部分有很多其他功能,需要配置才能正常使用
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表