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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10519|回復: 23
收起左側(cè)

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

  [復制鏈接]
ID:289777 發(fā)表于 2018-11-26 08:22 | 顯示全部樓層 |閱讀模式
30黑幣
舉個最簡單的例子,點亮LED燈,LED與IO口 B pin5 引腳相連
我想讓LED亮
不能在主函數(shù)里單獨寫一個
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
直接拉低引腳5,讓燈亮

而是必須在之前寫一堆函數(shù)比如:
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);                                         //根據(jù)設(shè)定參數(shù)初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5);                                                 //PB.5 輸出高


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

回復

使用道具 舉報

ID:388197 發(fā)表于 2019-7-16 01:41 | 顯示全部樓層
這個過程免不了的,不過也就是多復制一兩次的事而已,也可以把這些全丟到一個函數(shù)里去,直接調(diào)用這個函數(shù)即可.每次用就修改下函數(shù)里的代碼..就相當于51你開頭SBIT XXX = P1^0....對于庫函數(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 就行了.寫代碼盡量每個函數(shù)盡量簡短,函數(shù)數(shù)量可以多,命名時注意可讀性,不要學老譚的書上什么fun1 fun2之類的.多數(shù)剛從51轉(zhuǎn)過來學32的人都覺得32配置起來很啰嗦和麻煩,這是正常的,因為這樣的好處還沒感覺到而已,時間長習慣就好了.

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

使用道具 舉報

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

使用道具 舉報

ID:104472 發(fā)表于 2018-11-26 09:20 | 顯示全部樓層
可以做個。c和。h文件專門配置這個
回復

使用道具 舉報

ID:433223 發(fā)表于 2018-11-26 09:45 來自觸屏版 | 顯示全部樓層
不能啊,必須先使能時鐘
回復

使用道具 舉報

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

使用道具 舉報

ID:289777 發(fā)表于 2018-11-26 13:22 | 顯示全部樓層
xuyaqi 發(fā)表于 2018-11-26 09:18
stm32確實每次都必須配置IO口,這樣做可帶來的好處是,一個IO口可以根據(jù)需要有多種用途,不用的不送電節(jié)能 ...

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

使用道具 舉報

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

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

使用道具 舉報

ID:429166 發(fā)表于 2018-11-26 13:41 | 顯示全部樓層
是的,必須這么做
回復

使用道具 舉報

ID:433533 發(fā)表于 2018-11-26 16:27 | 顯示全部樓層
你可以不用庫函數(shù)寫,直接寫入寄存器就行
回復

使用道具 舉報

ID:433680 發(fā)表于 2018-11-26 19:39 | 顯示全部樓層
是的這是必需的,stm32 必需先規(guī)規(guī)劃 RCC (CLOCK), 接著定義 GPIO 的應用式, 建義參考 ST STM32 的庫函數(shù)及文件,
回復

使用道具 舉報

ID:433680 發(fā)表于 2018-11-26 19:40 | 顯示全部樓層
是的這是必需的,stm32 必需先規(guī)規(guī)劃 RCC (CLOCK), 接著定義 GPIO 的應用式,
建義參考 ST STM32 的庫函數(shù)及文件,
回復

使用道具 舉報

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

使用道具 舉報

ID:429899 發(fā)表于 2018-11-26 21:07 | 顯示全部樓層
是的,每次都需要的
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

ID:434171 發(fā)表于 2018-11-27 14:15 | 顯示全部樓層
看你自己想要做什么,可以自己寫個函數(shù),以后直接調(diào)用,送參數(shù)進去就可以了
回復

使用道具 舉報

ID:100415 發(fā)表于 2018-11-27 17:04 | 顯示全部樓層
每次都必須要配置的,但是我們可以做一些常用的配置文件,封裝成一個.C與.h文件,模塊化的調(diào)用就可以了,也很方便的
回復

使用道具 舉報

ID:100415 發(fā)表于 2018-11-27 17:05 | 顯示全部樓層
需要配置的,一些常用的寫成配置文件,封裝起來,模塊化的方式,以后直接調(diào)用了
回復

使用道具 舉報

ID:246251 發(fā)表于 2018-12-1 10:15 | 顯示全部樓層
寄存器操作沒這么多事
回復

使用道具 舉報

ID:433935 發(fā)表于 2018-12-2 09:04 | 顯示全部樓層
STM32不像51一樣可以直接引用,不過如果你已經(jīng)經(jīng)定義了這個函數(shù)便可以了。如果你嫌麻煩  你可以復制呀。
回復

使用道具 舉報

ID:519876 發(fā)表于 2019-7-15 08:19 | 顯示全部樓層
必須每次都要寫,因為32單片機的IO大部分有很多其他功能,需要配置才能正常使用
回復

使用道具 舉報

ID:583948 發(fā)表于 2019-7-15 17:19 | 顯示全部樓層
這就是stm32比51麻煩一點的地方,不過可以拷貝庫文件里面的例程,這樣只需修改對應的端口或者值就可以了。
回復

使用道具 舉報

ID:73666 發(fā)表于 2019-7-16 10:42 | 顯示全部樓層
請使用STM32CubeMX軟件圖形化配置外設(shè),軟件可自動生成初始代碼。推薦使用最新的HAL庫。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产资源一区二区三区 | 日韩久久综合 | 婷婷在线网站 | 国产 日韩 欧美 制服 另类 | 91国产精品| 久久精品二区亚洲w码 | 精品一区二区三区视频在线观看 | 欧美嘿咻 | 色姑娘综合网 | 亚洲欧洲日韩精品 中文字幕 | 操操日 | 久久国产精品偷 | 久久久91精品国产一区二区精品 | 丁香色婷婷| 中文字幕在线视频精品 | 久久国产精品亚洲 | 久久综合久久综合久久 | 成人午夜网 | 岛国av一区二区三区 | 国产美女精品 | 国产分类视频 | 狠狠操婷婷 | 久久国产精品视频 | 国产精品视频一区二区三区, | 真人女人一级毛片免费播放 | 青青草这里只有精品 | 亚洲精品视频一区 | 99热精品久久 | 成人三级在线观看 | 日本 欧美 国产 | av网址在线 | 亚洲91av| 日韩精品视频一区二区三区 | 中文字幕亚洲在线 | 激情91 | 中文字幕免费观看 | 在线视频 亚洲 | 日韩快播电影网 | 国产免费一区二区 | 九九久久久久久 | 黄色在线免费观看视频网站 |