端口復用和重映射--STM32F103

什么是端口復用?

STM32中有很多內置外設,這些外設的引腳都是與GPIO復用的,什么時候復用呢?就是當一個GPIO作為內置外設引腳使用時,就叫做復用。比如串口1的發送接收引腳是PA9,PA10,當PA9,PA10作為USART的接收和發送引腳時,就是端口復用。
在這里插入圖片描述

端口復用的配置過程

以PA9、PA10作為串口的接收發送為例

  1. 使能GPIO端口
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  1. 使能外設時鐘
    這里我們可以參考STM32手冊
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
  1. 端口模式配置
    參考STM32手冊
    在這里插入圖片描述
	//USART1_TX   GPIOA.9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	//復用推挽輸出GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9//USART1_RX	  GPIOA.10初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  

端口復用總結

每個GPIO口有很多功能,默認的是作為普通IO口,我們不用配置復用相關的東西,當作為其他功能時,這個時候就要配置復用相關代碼了

端口重映射

什么是端口重映射?

端口重映射是為了使不同器件封裝的外設I/O功能達到最優,可以把一些復用功能重新映射到其他一些引腳。當映射完成時,復用功能就不在映射到它們的原始引腳上了。

配置過程

  1. 使能GPIO
  2. 使能外設
  3. 使能AFIO時鐘
  4. 開啟重映射
GPIO_PinmapConfig()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379824.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379824.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

考研數學

眼前儼然一副冬的氣象,伴隨氣溫的驟降,考研復習也進入異常緊張的階段。在考試前這兩個月里,考生如何復習數學,成績還可以有所提高。萬學?海文數學教研組針對沖刺階段數學復習歸納總結以下復習經驗和建議,供大家參考。…

一個很好的自學網站~推薦一下

http://www.51zxw.net/study.asp?vip15746908

[轉]Ubuntu遠程桌面登陸

原文地址:http://www.cnblogs.com/xdzone/archive/2011/03/10/1979644.html 1.xp下默認的遠程桌面協議是rdp,默認端口3389,而ubuntu用的時vnc:默認端口5900 2.首先被訪問的主機(windows/linux)都要設置為允…

NVIC中斷管理---STM32

NVIC:嵌套向量中斷控制器 在了解中斷之前,我們先了解搶占優先級和響應優先級 搶占優先級和響應優先級 搶占優先級決定能不能打斷,高優先級的搶占可以中斷低優先級的搶占響應優先級在搶占優先級相同時,高響應優先級先執行&#x…

Java BigDecimal stripTrailingZeros()方法與示例

BigDecimal類stripTrailingZeros()方法 (BigDecimal Class stripTrailingZeros() method) stripTrailingZeros() method is available in java.math package. stripTrailingZeros()方法在java.math包中可用。 stripTrailingZeros() method is used to get a BigDecimal that is…

外部中斷---STM32F1

外部中斷概述 STM32的中斷控制器支持19個外部中斷/事件請求: 線0-15:對應外部IO口的輸入中斷線16:連接到PVD輸出線17:連接到RTC鬧鐘事件線18:連接到USB喚醒事件 STM32每個IO口都有可以作為外部中斷輸入,…

轉:點9圖

關于”點九” 轉:http://mux.baidu.com/?p1506“點九”是andriod平臺的應用軟件開發里的一種特殊的圖片形式,文件擴展名為:.9.png 智能手機中有自動橫屏的功能,同一幅界面會在隨著手機(或平板電腦)中的方向傳感器的參數不同而改變顯示的方向…

Python HTMLCalendar類| 帶實例的formatyear()方法

Python HTMLCalendar.formatyear()方法 (Python HTMLCalendar.formatyear() Method) formatyear() method is an inbuilt method of the HTMLCalendar class of calendar module in Python. It works on HTMLCalendar class object and returns an HTML table consisting of th…

2009中國企業家新春聯誼會

2009中國企業家新春聯誼會——把握當前機遇,笑對經濟危機,暢飲將帥美酒尊敬的嘉賓:當前,國際形勢正在發生深刻而復雜的變化,由美國次貸危機引發的全球經濟危機已經愈演愈烈,美國前五大投資銀行有3家宣告破產…

串口通信的基本原理----STM32

串口通信基本原理 1. 處理器與外部設置通信的基本方式 并行通信:數據各個位同時傳輸串行通信:數據按位順序傳輸 在串行通信中,按照數據的傳輸方向,又分為: 單工:數據傳輸只支持在一個方向傳輸半雙工&am…

java獲取vm運行參數_如何獲取在Java中運行Java VM的版本?

java獲取vm運行參數To get the version of running VM (Virtual Machine) in Java, we use the getProperties() method, which is defined in System class, while calling the method, we need to pass the property name to get the version of running Java VM. 要獲取Java…

Spring MVC+Ant+Tomcat+Eclipse最簡單的demo

第一步是Java的Web環境搭建,下載Eclipse(或者更好的但收費的IDE-IntelliJ Idea,和Resharper一家公司出的),下載Tomcat,下載JDK,下載Spring,注意安裝Tomcat的時候配置一下管理員賬號和…

MySQL的環境變量配置詳細步驟

1.下載MySQL 例如下載:mysql-installer-community-5.5.60.1 我以這個版本為例 2.右擊->我的電腦->屬性 3. 4.找到在 系統變量 中找到 Path 5.找MySql的bin目錄(每個人的電腦上這個文件的位置應該是差不多的,找到之后復制下來&#x…

轉帖:強命名程序集(Strong Name Assembly)的概念

強命名程序集(Strong Name Assembly)的概念因為不同的公司可能會開發出有相同名字的程序集來,如果這些程序集都被復制到同一 個相同的目錄下,最后一個安裝的程序集將會代替前面的程序集。這就是著名的Windows “DLL Hell”出現的原…

串口發送通信---UART發送---STM32F4實現

串口發送程序配置過程(HAL庫) 初始化串口相關參數,使能串口 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)該函數的參數是串口的基址,在stm32f429xx.h文件中,定義了8個UART_HandleTypeDef的值&#x…

開源軟件 許可證密鑰_自由和開源軟件-1中的重要許可證

開源軟件 許可證密鑰Its important to take note that there are no good or bad licenses and that no license is superior to another. Anybody can make an open-source license that suits their extravagant, which is the explanation that there are such huge numbers…

串口接收中斷配置過程---STM32F4--HAL

串口接收中斷程序配置過程(HAL) 初始化相關參數,使能串口: HAL_UART_Init();該函數的參數是串口的基址,在stm32f429xx.h文件中,定義了8個UART_HandleTypeDef的值,分別是USART1、USART2、USART…

electron 切換至esm

前言 好消息,經過不知道多少年的討論。 electron28.0.0開始(23.08.31),默認支持esm了。 see https://github.com/electron/electron/issues/21457 使用方法 升級至electron^28.0.0簡單地在package.json中添加"type":…

javascript運算符_JavaScript中!=或!==運算符之間的區別

javascript運算符We can perceive the differences between these two operators as the same difference that occurs between double equalsTo () and triple equalsTo () operators. We already know that the (!) not-operator used along with () operator is used to che…

實訓09.09:簡單的彩票系統(機選多注)

package wsq; import java.util.Random; import java.util.Scanner;//機選多注 public class MoreCaiPiao {public static void main(String[] args) {// 定義二維數組 存儲多注彩票int[][] numArray new int[5][7];/** 二維數組中 未賦值之前的元素值都為0 { {0,0,0,0,0,0,0}…