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

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

QQ登錄

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

搜索
查看: 16340|回復(fù): 0
收起左側(cè)

有關(guān)STM32外設(shè)配置的幾個(gè)常見(jiàn)問(wèn)題

[復(fù)制鏈接]
ID:98618 發(fā)表于 2015-12-7 00:38 | 顯示全部樓層 |閱讀模式
作者:MilerShao

在做STM32開(kāi)發(fā)應(yīng)用的過(guò)程中,常常會(huì)遇到這樣那樣的問(wèn)題,其中相當(dāng)部分問(wèn)題是與各外設(shè)及相關(guān)GPIO的配置有關(guān)的。就這方面的問(wèn)題,這里一起總結(jié)交流下。

目前的STM32芯片是基于ARM內(nèi)核的可編程微處理器,我們可以簡(jiǎn)單地把內(nèi)核以外的東西統(tǒng)稱(chēng)為外設(shè),比方 TIMERUARTSPIUSBI2C、存儲(chǔ)器等功能模塊。以32F427芯片功能框圖為例,那些紅圈上的都是。

好,我們直接切入主題。圍繞外設(shè)的配置,我們遇到的問(wèn)題,大致可以分為兩大類(lèi)。

一、時(shí)鐘問(wèn)題,就這方面的問(wèn)題又可以細(xì)分為幾小點(diǎn)。

1.1 時(shí)鐘沒(méi)打開(kāi)就使用。

這個(gè)不難理解,就是相關(guān)外設(shè)的時(shí)鐘沒(méi)有打開(kāi)。比如UART5的時(shí)鐘沒(méi)有打開(kāi),SPI的時(shí)鐘沒(méi)打開(kāi)等,自然操作不了或沒(méi)反應(yīng)。

1.2 時(shí)鐘因?yàn)榭偩的判斷錯(cuò)誤而開(kāi)錯(cuò)了時(shí)鐘。簡(jiǎn)單點(diǎn)說(shuō)是張冠李戴了。

這個(gè)之前經(jīng)常有人發(fā)生。比如類(lèi)似USART1USART2SP1SP2TIM1

TIM2可能并不在同一總線上,配置時(shí)以為一樣,結(jié)果出了問(wèn)題。

1.3 時(shí)鐘數(shù)率配置錯(cuò)誤。

這點(diǎn)跟第2點(diǎn)似乎有些交叉,這里主要是指因?yàn)?/span>時(shí)鐘數(shù)據(jù)配置錯(cuò)誤導(dǎo)致供給外設(shè)的時(shí)鐘過(guò)高導(dǎo)致異常。曾經(jīng)就有人因給32F1系列芯片的USB配置時(shí)鐘時(shí)因高于48M,使其性能極不穩(wěn)定而抓狂。

1.4 復(fù)用時(shí)鐘沒(méi)打開(kāi),即AFIO時(shí)鐘沒(méi)打開(kāi)。

前面三點(diǎn)都沒(méi)問(wèn)題,配置正確無(wú)誤,有些功能必須打開(kāi)復(fù)用時(shí)鐘,結(jié)果不知或忘記打開(kāi)。說(shuō)AFIO時(shí)鐘主要是針對(duì)STM32F1系列的芯片。這點(diǎn)后面還會(huì)繼續(xù)補(bǔ)充陳述。

二、GPIO管腳物理安排及配置問(wèn)題,這個(gè)也可以細(xì)分兩類(lèi)。

2.1 管腳復(fù)用時(shí)出現(xiàn)了競(jìng)爭(zhēng)沖突,即某個(gè)或某幾個(gè)管腳同時(shí)分配給了2個(gè)外設(shè)來(lái)使用。

某工程師在使用STM32F103V的芯片時(shí),同時(shí)用到兩個(gè)I2C,結(jié)果發(fā)現(xiàn)總是I2C2工作正常,而I2C1工作不正常。時(shí)鐘、腳位本身配置都沒(méi)有問(wèn)題。后來(lái),發(fā)現(xiàn)他啟用了相關(guān)FSMC的功能,其中FSMC有個(gè)功能腳剛好與I2C1SDA 腳沖突了。

2.2 需要重映射的腳位沒(méi)進(jìn)行REMAP操作。

對(duì)于STM32F1系列需要重映射的功能腳,數(shù)據(jù)手冊(cè)里會(huì)在REMAP欄標(biāo)注出來(lái)。


比如上圖中的USART_TX/RX的功能必須執(zhí)行相關(guān)REMAP指令后才能在PB6/7是體現(xiàn)相關(guān)功能。記住還要打開(kāi)GPIOB的時(shí)鐘和USART1的時(shí)鐘

2.3 接著1.4的話題多說(shuō)幾句。

前面1.4提到了AFIO時(shí)鐘問(wèn)題。AFIO時(shí)鐘只是在STM32F1系列里被提及。對(duì)于32F1系列,涉及到管腳的EXTIREMAP、事件輸出時(shí)就需要開(kāi)啟AFIO時(shí)鐘。比方上面提到的管腳REMAP,必須先開(kāi)AFIO時(shí)鐘。配置EXTI中斷也是一樣,否則不生效。

對(duì)于STM32F1以外其它STM32列,不再提AFIO,多了個(gè)SYSCFG【系統(tǒng)控制器】外設(shè),其功能跟F1AFIO 有些類(lèi)似但有差異,主要管理內(nèi)存空間的映射、與EXTI中斷源有關(guān)的IO配置以及其它配置等事務(wù),不同32系列間還各有細(xì)小差異。

如果不打開(kāi)SYSCFG時(shí)鐘,有關(guān)內(nèi)存空間重映射、與EXTI配置的操作就會(huì)無(wú)效。


/* Enable SYSCFG clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);

對(duì)于STM32F1以外的其它系列的管腳復(fù)用安排,跟F1也有所不同,它給出了專(zhuān)門(mén)的管腳功能復(fù)用寄存器及各個(gè)腳可能擔(dān)當(dāng)?shù)?/span>復(fù)用功能之映射表, 不再單純提管腳的REMAPAFIO時(shí)鐘。若想把某些腳做什么用,結(jié)合參考手冊(cè)中GPIOx_AFR.寄存器與數(shù)據(jù)手冊(cè)上復(fù)用功能映射表查表配置即可。


下面表格是STM32F207芯片的復(fù)用功能表。其中的PA2/PA3可以根據(jù)不同復(fù)用功能需要做不同的選擇。如果作為USART2TX/RX,就選擇AF7AF7就對(duì)應(yīng)到相應(yīng)GPIO復(fù)用功能寄存器的配置位。這里它用GPIOA的低8位的口線
,則在
GPIOA_AFRL寄存器里進(jìn)行配置。將0x0111分別寫(xiě)入AFRL2AFRL3即可。當(dāng)然,如果使用STMCU的官方庫(kù)代碼的話,操作也還比較直觀。貼圖下面的示例代碼只是用來(lái)輔助說(shuō)明話題而已。


?
/* Enable GPIO clock */

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA , ENABLE);

/* Enable USART clock */

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

/* Connect USART TX/RX pins to AF7 */

GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_7);

GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_7);

這里順便提下,GPIO_PinSource2GPIO_Pin_2在ST官方庫(kù)代碼里定義是不一樣的,有時(shí)候有人把這兩個(gè)也搞混而出錯(cuò)。他們的定義如下,一個(gè)是側(cè)重表示管腳在端口上的位置,一個(gè)側(cè)重表示管腳在端口上的序號(hào)。

#define GPIO_Pin_2 ((uint16_t)0x0004) /* Pin 2 selected */

#define GPIO_PinSource2 ((uint8_t)0x02)

小結(jié)下,上面提到的問(wèn)題,當(dāng)工程師基于ST官方固件庫(kù)或自行建立工程進(jìn)行開(kāi)發(fā)的情形下可能會(huì)發(fā)生的比較多。可喜的是,ST官方有推出一個(gè)STM32CUBE的配置工具,該工具在處理STM32 MCU管腳安排時(shí)鐘配置方面非常方便,可以回避很多因?yàn)楣苣_或時(shí)鐘理解上的誤會(huì)、視覺(jué)上的疏忽而導(dǎo)致的困擾和麻煩,建議盡量使用該工具做輔助開(kāi)發(fā)。




回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本a视频 | 99精品99 | 久久中文一区二区 | 国产精品久久久久久妇女 | 久久午夜剧场 | 国产精品国产三级国产aⅴ原创 | 免费观看黄网站 | 中文字幕电影在线观看 | 精品国产高清一区二区三区 | 日韩高清电影 | 久久噜噜噜精品国产亚洲综合 | 黄色一级片aaa | 国产成人免费观看 | 欧美在线观看一区 | 91久久久久 | 日本超碰在线 | 国产一区二区三区在线 | 粉嫩一区二区三区四区公司1 | 亚洲国产精品99久久久久久久久 | 欧美成年网站 | 亚洲天堂男人的天堂 | 亚洲国产一区二区三区在线观看 | 国产精品网址 | 黄色网址在线免费观看 | 亚洲欧美日韩精品久久亚洲区 | 黄视频在线网站 | 久久亚洲精品久久国产一区二区 | 国产欧美一区二区三区在线播放 | 天堂一区二区三区 | 在线观看中文字幕 | 日韩av视屏| 色视频网站 | 美女拍拍拍网站 | 亚洲三区在线观看 | 国产一区免费视频 | 中文成人在线 | 日本综合在线观看 | 国产视频一区在线 | 波多野结衣一区二区 | 蜜桃精品噜噜噜成人av | 日韩人体在线 |