1. 程式人生 > >stm32學習筆記 F1系列埠複用與重對映

stm32學習筆記 F1系列埠複用與重對映

(1)埠複用
STM32有很多的內建外設,這些外設的外部引腳都是與GPIO複用的。也就是說,一個GPIO如果可以複用為內建外設的功能引腳,那麼當這個GPIO作為內建外設使用的時候,叫做複用。
埠複用配置過程:
1>GPIO埠時鐘使能。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
2>複用外設時鐘使能。
比如你要將埠複用為串列埠,所以要使能串列埠時鐘。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
3>埠模式配置。 GPIO_Init()函式。
例:
PA9,PA10複用為串列埠1配置過程
//①IO時鐘使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
//②外設時鐘使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
//③初始化IO為對應的模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //複用推輓輸出
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 PA.10 浮空輸入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
GPIO_Init(GPIOA, &GPIO_InitStructure);  
(2)埠重對映
每個內建外設都有若干個輸入輸出引腳,一般這些引腳的輸出埠都是固定不變的,為了讓設計工程師可以更好地安排引腳的走向和功能,在STM32中引入了外設引腳重對映的概念,即一個外設的引腳除了具有預設的埠外,還可以通過設定重對映暫存器的方式,把這個外設的引腳對映到其它的埠。
重對映的技術的要求背景:
1>I/O的複用:GPIO和內建外設公用引腳
2>I/O的重對映:複用功能(AFIO)從不同的GPIO管腳引出
3>方便了PCB的設計,潛在的減少了訊號的交叉干擾
4>分時複用某些外設,虛擬的增加了埠數目
部分重對映:功能外設的部分引腳重新對映,還有一部分引腳是原來的預設引腳。
完全重對映:功能外設的所有引腳都重新對映。
引腳重對映配置過程:
1>使能GPIO時鐘(重對映後的IO);
2>使能功能外設時鐘(例如串列埠1);
3>使能AFIO時鐘。重對映必須使能AFIO時鐘:
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
4>開啟重對映。
    GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);//根據第一個引數,來確定是部分重對映還是全部重對映
需要開啟AFIO輔助功能時鐘的情況:對暫存器AFIO_MAPR,AFIO_EXTICRX和AFIO_EVCR進行讀寫操作前,應當首先開啟AFIO時鐘。
AFIO_MAPR:配置複用功能重對映
AFIO_EXTICRX:配置外部中斷線對映
AFIO_EVCR: 配置EVENTOUT事件輸出

相關推薦

stm32學習筆記 F1系列對映

(1)埠複用 STM32有很多的內建外設,這些外設的外部引腳都是與GPIO複用的。也就是說,一個GPIO如果可以複用為內建外設的功能引腳,那麼當這個GPIO作為內建外設使用的時候,叫做複用。 埠複用配置過程: 1>GPIO埠時鐘使能。 RCC_APB2PeriphCl

STM32對映簡單說明

(轉載摘取) 重對映步驟為: 1.開啟重對映時鐘和USART重對映後的I/O口引腳時鐘,            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO,ENABLE); 2.I/O口重

stm32學習筆記 F1系列ADC

ADC:Analog-to-Digital Converter的縮寫。指模/數轉換器或者模擬/數字轉換器。是指將連續變數的模擬訊號轉換為離散的數字訊號的器件。 典型的模擬數字轉換器將模擬訊號轉換為表示一定比例電壓值的數字訊號。 12位逐次逼近型的模擬數字轉換器。 最多帶3

stm32學習筆記 F1系列GPIO相關暫存器的配置

對於stm32  F1系列每組GPIO埠的暫存器包括:GPIOx_CRL ,GPIOx_CRH,GPIOx_IDR,GPIOx_ODR,GPIOx_BSRR,GPIOx_BRR和GPIOx_LCKR七個暫存器 其中:  GPIOx_CRL為埠配置低暫存器; GPIOx_CR

stm32學習筆記 F1系列SPI

SPI介面簡介 SPI 是英語Serial Peripheral interface的縮寫,顧名思義就是序列外 圍裝置介面。是Motorola首先在其MC68HCXX系列處理器上定義的。 SPI,是一種高速的,全雙工,同步的通訊匯流排,並且在晶片的管腳上只佔 用四根線,節約

stm32學習筆記 F1系列DMA

DMA 全稱Direct Memory Access,即直接儲存器訪問。 DMA傳輸將資料從一個地址空間複製到另一個地址空間。當CPU初始化這個傳輸動作,傳輸動作本身是由DMA控制器來實現和完成的。 DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現場和恢復

stm32學習筆記 F1系列通用定時器

*****定時器種類***********位數*******計數器模式*******產生DMA請求**捕獲/比較通道**互補輸出***特殊應用場景 高階定時器(TIM1,TIM8)***16***向上,向下,向上/下******可以************4********

STM32STM32對映(AFIO輔助功能時鐘)

STM32F1xx官方資料:《STM32中文參考手冊V10》-第8章通用和複用功能IO(GPIO和AFIO)埠複用功能埠複用的定義STM32有許多的內建外設(如串列埠、ADC、DCA等等),這些外設的外部引腳都是和GPIO複用的。也就是說,一個GPIO如果可以複用為內建外設的

對映

1 埠複用功能  所以,我們在使用複用功能的是時候,最少要使能2 個時鐘: 1) GPIO時鐘使能  2) 複用的外設時鐘使能 同時要初始化GPIO以及複用外設功能   2 埠重對映  如果不需

JAVA程式設計思想學習筆記(六)

複用類 組合語法 組合語法就是在類中用其他類的物件作為本類的成員變數。 編譯器不會為每一個引用都建立預設物件,想要初始化引用,可以在下列位置進行: 在定義物件的地方 在類的構造器中 在使用物件之前,惰性初始化 使用例項初始化 繼承語法 關鍵

Java程式設計思想學習筆記——第7章

7.8 final關鍵字 final指得是“這是無法改變的”。不想做改變可能出於兩種理由:設計或效率。 可能使用到final的三種情況:資料、方法和類。 7.9初始化及類的載入 載入時眾多變得更加容易的動作之一,因為Java中的所有事物都是物件。請記住,每個類的編譯程

STM32學習筆記3-串列控制檯

http://blog.sina.com.cn/s/blog_7077264c0100lvwg.html 1、在STM32_Init.c中使能串列埠,波特率設到115200(最大隻能設這麼大了)。 2、USART1的暫存器跟AVR幾乎相同,直接程式碼替換。巨集定義替

Xilinx-ZYNQ7000系列-學習筆記(2):XADC測外部溫度值

Xilinx-ZYNQ7000系列-學習筆記(2):用XADC測外部溫度值 一、XADC簡介 Zynq器件XADC模組包括2個12位元1 MIPS的模數轉換器和相關的片上感測器,內建溫度感測器和功耗感測器,可實時監測片內結溫、各路電壓資料,並可輸出告警訊號。 XADC模擬輸入包括專用

STM32學習筆記3——怎樣將整型變數轉換為字元變數 然後串列 或者LCD傳送出來(STM32) 以及sprintf的用法

u8 b;         unsigned char c[3]; b=123; c[0]= (unsigned char)((b/100)); c[1]= (unsigned char)((b/10)); c[2]= (unsigned char)(b); for( i=0;i<3;i++) { U

STM32

1、參考資料       《STM32F1開發指南-庫函式版本》-4.4小節 埠複用和重對映       《STM32中文參考手冊V10》-第8章通用和複用功能IO(GPIO和AFIO) 2、埠複用      STM32有很多的內建外設,這些外設的外部引腳都是與GPIO複用

STM32 &對映(USART Remap)

下面跟大家說一下STM32微控制器的埠重對映,因為是以自己為例項.這裡是以USART1的重對映為例..         因為我要一個TFT_LCD屏的主控板,考慮到FSMC 我選用了STM32F103VCT6 型號的CPU,一不小心串列埠接到USART1上了.因為在調程式時才發現錯了,沒得辦法,只能通過埠重

STM32學習筆記之USB虛擬串列描述符簡介

Descriptor即描述符,是一個完整的資料結構,可以通過C語言等程式設計實現,並存儲在USB裝置中,用於描述一個USB裝置的所有屬性,USB主機是通過一系列命令來要求裝置傳送這些資訊的。它的作用就是通過如問答節中的命令***作來給主機傳遞資訊,從而讓主機知道裝置具有

java學習筆記(二)圖形戶接口

star strong per getwidth cep runnable graphics s2d gb2 這個學期主要放在ACM比賽上去了,比賽結束了。不知不覺就15周了,這周就要java考試了,復習一下java吧。java的學習的目的還是讓我們學以致用,讓我們可以

Java學習筆記——MySQL開放3306接口設置戶權限

delete 用戶權限 -a mysq min 修改 onf 127.0.0.1 權限 系統Ubuntu16.04 LTS 1、開放3306端口查看端口狀態:netstat -an|grep 3306tcp 0 0 127.0.0.1:3306

&lt;&lt;Python基礎教程&gt;&gt;學習筆記 | 第12章 | 圖形戶界面

lena text 平臺 post ack 由於 contents exp 一個 Python支持的工具包非常多。但沒有一個被覺得標準的工具包。用戶選擇的自由度大些.本章主要介紹最成熟的跨平臺工具包wxPython.官方文檔: http://wxpython.org/