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

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

QQ登錄

只需一步,快速開(kāi)始

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

關(guān)于STM32F0管腳定義安排的兩三個(gè)話題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:98618 發(fā)表于 2015-12-8 03:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
對(duì)于STM32系列芯片的管腳定義,因?yàn)榻^大部分管腳除了默認(rèn)的GPIO功能外,還可以有復(fù)用或額外功能,搞得很復(fù)雜。初次使用可能讓人犯暈。這里以STM32F0系列為例,來(lái)聊聊管腳相關(guān)的話題。

STM32F0芯片管腳除了個(gè)別電源或特定功能腳【比如復(fù)位腳、引導(dǎo)控制腳】外,芯片復(fù)位后,其它管腳的默認(rèn)功能就是GPIO,同時(shí)各GPIO口往往具有其它復(fù)用功能或者額外功能。關(guān)于芯片管腳的說(shuō)明在芯片的數(shù)據(jù)手冊(cè)里有詳細(xì)介紹。


一、芯片管腳默認(rèn)功能、復(fù)用功能、額外功能界定話題

在芯片的數(shù)據(jù)手冊(cè)里都有關(guān)于各系列芯片的管腳描述表。如下圖表格可以看出,各個(gè)管腳有分3個(gè)功能塊,一個(gè)復(fù)位后默認(rèn)功能【function after reset】,一塊復(fù)用功能【alternate functions】,還一塊就是額外功能【additional functions】。額外功能主要集中在做AD輸入腳、外部晶體腳及其它個(gè)別額外功能腳。

FIG1. 管腳描述表

默認(rèn)功能沒(méi)啥好說(shuō)的,就是芯片復(fù)位后的管腳功能或狀態(tài)。復(fù)用功能是通過(guò)配置GPIOx_AFR寄存器后選擇的功能。額外功能就是配置相關(guān)外設(shè)寄存器來(lái)選擇的功能,比方配置ADC使能某些通道、開(kāi)啟USB應(yīng)用等來(lái)使能相應(yīng)管腳的額外功能。

FIG2 管腳復(fù)用功能對(duì)應(yīng)表


二、有些管腳的定義安排貌似有沖突或重復(fù)的話題。以下圖中的I2C1管腳說(shuō)明為例。



從上圖可以看出,對(duì)于48腳64腳的32F030芯片,I2C1復(fù)用功能腳似乎可位于兩個(gè)位置,咋看上去好像標(biāo)錯(cuò)了。讓人疑惑到底使用哪對(duì)腳。

那我們?cè)倏纯从嘘P(guān)復(fù)用功能寄存器對(duì)應(yīng)表,結(jié)合上面FIG2 管腳復(fù)用功能對(duì)應(yīng)表的PB6、PB7、PB8、PB9所對(duì)應(yīng)的AF1那一欄,其實(shí)那4個(gè)腳可以有4種組合來(lái)實(shí)現(xiàn)I2C1的復(fù)用功能。可以分別是PB6\PB7,PB8\PB9,PB6\PB9,PB7\PB8四組中其中之一來(lái)做I2C1的通信功能腳。

我們可以用STM32CUBEMX工具來(lái)驗(yàn)證測(cè)試下上面的理解。下面只列出了PB6\PB9,PB8\PB7的配置使用過(guò)程


void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)

{

GPIO_InitTypeDef GPIO_InitStruct;

if(hi2c->Instance==I2C1)

{

/* USER CODE BEGIN I2C1_MspInit 0 */

/* USER CODE END I2C1_MspInit 0 */

/**I2C1 GPIO Configuration

PB6 ------> I2C1_SCL

PB9 ------> I2C1_SDA

*/

GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_9;

GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;

GPIO_InitStruct.Pull = GPIO_PULLUP;

GPIO_InitStruct.Speed = GPIO_SPEED_LOW;

GPIO_InitStruct.Alternate = GPIO_AF1_I2C1;

HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)

{

GPIO_InitTypeDef GPIO_InitStruct;

if(hi2c->Instance==I2C1)

{

/* USER CODE BEGIN I2C1_MspInit 0 */

/* USER CODE END I2C1_MspInit 0 */

/**I2C1 GPIO Configuration

PB7 ------> I2C1_SDA

PB8 ------> I2C1_SCL

*/

GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8;

GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;

GPIO_InitStruct.Pull = GPIO_PULLUP;

GPIO_InitStruct.Speed = GPIO_SPEED_LOW;

GPIO_InitStruct.Alternate = GPIO_AF1_I2C1;

HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

像上面類似管腳安排的不I2C1,比方還有SPI等。總之,參照那個(gè)復(fù)用功能表結(jié)合你芯片管腳合理安排就好。當(dāng)然有STM32CUBEMX配合也就更方便了。


三、一個(gè)跟管腳安排理解有關(guān)的應(yīng)用異常話題

一個(gè)工程師反映把基于STM32F072R6主芯片學(xué)習(xí)板上的調(diào)試OK的USB 應(yīng)用項(xiàng)目,移植到基于STM32F042F4的目標(biāo)系統(tǒng)時(shí),發(fā)現(xiàn)PC機(jī)無(wú)法發(fā)現(xiàn)設(shè)備。

STM32F072R6和STM32F042F4隸屬于STM32F0同一系列,二者主要差別在于有無(wú)DAC。其它外設(shè)基本一樣,具體到這2個(gè)型號(hào),就是GPIO數(shù)目上及管腳安排上的細(xì)微差異。二者的數(shù)據(jù)手冊(cè)也明明白白的寫(xiě)了都支持USB FS DEVICE功能。對(duì)于USB應(yīng)用,二者除了可能管腳安排的差異外,內(nèi)部驅(qū)動(dòng)程序應(yīng)該是一模一樣。

從手冊(cè)上看,64腳STM32F072R的USB外設(shè)功能管腳為PA11,PA12,屬于額外功能,即只需使能相關(guān)usb外設(shè)應(yīng)用即可。


再看看下面20腳 STM32F042F4的相關(guān)管腳定義和安排。

顯然,管腳編號(hào)為17/18的功能描述有點(diǎn)另類,圖下方緊跟一句說(shuō)明。大致意思PA11/PA12可以通過(guò)配置SYSCFG_CFGR1來(lái)進(jìn)行重映射來(lái)取代PA9/PA10的功能。是個(gè)重要提醒,也不是特別明了,再細(xì)看芯片如下的管腳功能描述表。

我們上面第一個(gè)話題就提到32f0芯片管腳往往可能有三種功能,默認(rèn)功能,復(fù)用功能及額外功能。結(jié)合上面表格,同樣的17、18腳,可能作為PA9 \PA10或后面一大堆的復(fù)用功能選擇之一,也可能作為PA11\PA12或者與之對(duì)應(yīng)的復(fù)用功能及額外功能的選擇之一。

不過(guò),要做PA11\PA12或相關(guān)復(fù)用功能或額外功能,必須首先使能SYSCFG外設(shè)并配置SYSCFG_CFGR1寄存器才行,否則基于PA11\PA12的默認(rèn)功能及復(fù)用和額外功能都不會(huì)生效。

上面工程師碰到的問(wèn)題剛好就出在這里,他們只是簡(jiǎn)單的連接了芯片的第17腳18腳,此時(shí)USB_DM/USB_DP功能沒(méi)生效,即使你代碼寫(xiě)得再漂亮,PC機(jī)還是無(wú)法識(shí)別USB設(shè)備。

我們不妨通過(guò)STM32CUBE MX配置工具來(lái)看看STM32F042F4芯片的管腳配置情況。不打開(kāi)還好,咋一打開(kāi)似乎讓你發(fā)現(xiàn)新大陸。

當(dāng)打開(kāi)基于STM32F042F4的STM32CUBE的配置界面時(shí),發(fā)現(xiàn)跟USB有關(guān)的外設(shè)配置都是無(wú)效狀態(tài),第一感覺(jué)就是它不支持USB功能。



再次打開(kāi)STM32F042F4的數(shù)據(jù)手冊(cè),上面分明寫(xiě)了它是支持USB device的。結(jié)合前面的描述,感覺(jué)是不是CUBEMX里沒(méi)有打開(kāi)相關(guān)外設(shè)或選型的配置。其實(shí),STM32F0系列芯片里有個(gè)外設(shè)就是系統(tǒng)配置控制器【SYSCFG】,只有開(kāi)啟了它,上面提到的SYSCFG_CFGR1寄存器配置才有意義。

具體到32f0的CUBEMX界面里就有個(gè)SYS的外設(shè)可以配置。當(dāng)你點(diǎn)開(kāi)那里時(shí)你會(huì)發(fā)現(xiàn)另一番天地。上面提到的一些東西都會(huì)赫然而現(xiàn)。

當(dāng)在左邊外設(shè)欄的SYS和USB的適當(dāng)?shù)胤焦催x,右邊管腳配置圖立即出現(xiàn)USB通信腳位安排位置。

小結(jié):

1、STM32芯片的管腳可能呈現(xiàn)三種功能狀態(tài)之一,默認(rèn)功能、復(fù)用功能、額外功能。

2、stm32芯片外設(shè)往往很豐富,管腳復(fù)用安排往往很龐大復(fù)雜。數(shù)據(jù)手冊(cè)里有管腳說(shuō)明及各類表格,查看時(shí)耐心、細(xì)心點(diǎn)。

3、STM32CUBEMX工具為我們的芯片管腳安排提供了巨大的方便,但再方便也不能完全不看數(shù)據(jù)手冊(cè),比方上面提到第3個(gè)話題如果看數(shù)據(jù)手冊(cè)很可能會(huì)把自己帶進(jìn)誤區(qū)。


【拋磚引玉 旨在交流,如有錯(cuò)疏 歡迎賜教】

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
ioe + 5 很給力!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:276663 發(fā)表于 2018-1-27 11:51 | 只看該作者
寫(xiě)的不錯(cuò)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:17809 發(fā)表于 2019-1-19 11:52 | 只看該作者
非常好.
回復(fù)

使用道具 舉報(bào)

地板
ID:402959 發(fā)表于 2019-2-22 21:56 | 只看該作者
    這么好的帖子怎么這么少點(diǎn)贊的啊,希望以后多出些這些帖子,讓剛?cè)腴T的朋友少走彎路吧

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:287310 發(fā)表于 2019-10-5 17:05 | 只看該作者
總結(jié)內(nèi)容到位
回復(fù)

使用道具 舉報(bào)

6#
ID:326949 發(fā)表于 2020-1-6 11:45 | 只看該作者
剛好用到PA11 PA12 和 PA9 PA10 復(fù)用 can
回復(fù)

使用道具 舉報(bào)

7#
ID:707079 發(fā)表于 2020-3-15 21:13 | 只看該作者
寫(xiě)的非常好,對(duì)我剛學(xué)習(xí)的菜鳥(niǎo)來(lái)說(shuō),解決了一個(gè)心中很大的疑惑
回復(fù)

使用道具 舉報(bào)

8#
ID:87000 發(fā)表于 2020-4-3 15:35 | 只看該作者
標(biāo)準(zhǔn)庫(kù)里面怎么把SWDIO和SWCLK配置成普通的IO口了?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 丝袜 亚洲 欧美 日韩 综合 | 国产精品黄色 | av日韩精品 | 天天干夜夜操 | 午夜网站视频 | avmans最新导航地址 | 国产清纯白嫩初高生在线播放视频 | 狠狠久久 | 美日韩中文字幕 | www.亚洲视频.com | 精品一区二区三区在线视频 | 中文字幕欧美日韩一区 | 国产亚洲精品精品国产亚洲综合 | 亚洲综合在线视频 | 欧美午夜影院 | 久久精品一区二区 | 色婷婷综合网站 | 日日天天 | av中文字幕网站 | 欧美三级在线 | 黄色日本片 | 91免费看片 | 天天操天天干天天透 | 亚洲视频1区| 天天干天天操天天爽 | 国产精品久久久久久久久久三级 | 国产精品久久久久一区二区三区 | 中文字幕在线剧情 | 正在播放国产精品 | 美女视频一区 | 欧美综合一区二区三区 | 国产精品免费观看 | 久久99久久99精品免视看婷婷 | 91五月天 | 欧美一区二区视频 | 精品一区在线 | 精品日韩欧美一区二区 | 久久久久成人精品免费播放动漫 | 99精品欧美一区二区三区 | 精品在线看 | 日韩av在线一区二区 |