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

標(biāo)題: stm32每次都必須要一個(gè)一個(gè)地配置IO口?純新人問一道問題 [打印本頁]

作者: haohaoxue51    時(shí)間: 2018-11-26 08:22
標(biāo)題: stm32每次都必須要一個(gè)一個(gè)地配置IO口?純新人問一道問題
舉個(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直接決定高低電平

作者: xuyaqi    時(shí)間: 2018-11-26 09:18
stm32確實(shí)每次都必須配置IO口,這樣做可帶來的好處是,一個(gè)IO口可以根據(jù)需要有多種用途,不用的不送電節(jié)能。雖然麻煩,好處多多。
作者: jiajuntao    時(shí)間: 2018-11-26 09:20
可以做個(gè)。c和。h文件專門配置這個(gè)
作者: lxy1315252900    時(shí)間: 2018-11-26 09:45
不能啊,必須先使能時(shí)鐘
作者: sclzgl    時(shí)間: 2018-11-26 10:46
STM32的IO口功能比51多很多,根據(jù)不同需要可以復(fù)用配置成不同的功能,在使用前,單片機(jī)需要知道你將該IO口配置成什么功能,因此在每次對(duì)該IO進(jìn)行操作前,必須要對(duì)IO進(jìn)行配置后才能進(jìn)行操作。
作者: haohaoxue51    時(shí)間: 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è)常用?
作者: haohaoxue51    時(shí)間: 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è)常用?
作者: 封小墨    時(shí)間: 2018-11-26 13:41
是的,必須這么做
作者: yzgxhld    時(shí)間: 2018-11-26 16:27
你可以不用庫函數(shù)寫,直接寫入寄存器就行
作者: laigs218    時(shí)間: 2018-11-26 19:39
是的這是必需的,stm32 必需先規(guī)規(guī)劃 RCC (CLOCK), 接著定義 GPIO 的應(yīng)用式, 建義參考 ST STM32 的庫函數(shù)及文件,
作者: laigs218    時(shí)間: 2018-11-26 19:40
是的這是必需的,stm32 必需先規(guī)規(guī)劃 RCC (CLOCK), 接著定義 GPIO 的應(yīng)用式,
建義參考 ST STM32 的庫函數(shù)及文件,

作者: 莫邪0    時(shí)間: 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ī)制
作者: 人間2    時(shí)間: 2018-11-26 21:07
是的,每次都需要的
作者: superplaim    時(shí)間: 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)夠用的
作者: 萬物互聯(lián)    時(shí)間: 2018-11-26 21:57
st官方工具 stm32cubeMX 了解一下,從此基本不用手動(dòng)配置了,配套使用hal庫,寫完程序后找到對(duì)效率影響大的地方換成LL庫,可以同時(shí)保證開發(fā)效率和運(yùn)行效率。
作者: ustc_felix    時(shí)間: 2018-11-27 14:15
看你自己想要做什么,可以自己寫個(gè)函數(shù),以后直接調(diào)用,送參數(shù)進(jìn)去就可以了
作者: 萬能的金果果    時(shí)間: 2018-11-27 17:04
每次都必須要配置的,但是我們可以做一些常用的配置文件,封裝成一個(gè).C與.h文件,模塊化的調(diào)用就可以了,也很方便的
作者: 萬能的金果果    時(shí)間: 2018-11-27 17:05
需要配置的,一些常用的寫成配置文件,封裝起來,模塊化的方式,以后直接調(diào)用了
作者: new_hand    時(shí)間: 2018-12-1 10:15
寄存器操作沒這么多事
作者: 2225384891    時(shí)間: 2018-12-2 09:04
STM32不像51一樣可以直接引用,不過如果你已經(jīng)經(jīng)定義了這個(gè)函數(shù)便可以了。如果你嫌麻煩  你可以復(fù)制呀。
作者: 877454063    時(shí)間: 2019-7-15 08:19
必須每次都要寫,因?yàn)?2單片機(jī)的IO大部分有很多其他功能,需要配置才能正常使用
作者: zpwgf    時(shí)間: 2019-7-15 17:19
這就是stm32比51麻煩一點(diǎn)的地方,不過可以拷貝庫文件里面的例程,這樣只需修改對(duì)應(yīng)的端口或者值就可以了。
作者: cjm82    時(shí)間: 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ì)自己的代碼水平也是很有幫助的.

作者: 偉寧咔咔    時(shí)間: 2019-7-16 10:42
請(qǐng)使用STM32CubeMX軟件圖形化配置外設(shè),軟件可自動(dòng)生成初始代碼。推薦使用最新的HAL庫。




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