1. 程式人生 > >STM32埠重對映

STM32埠重對映

筆者在使用STM32F103C8T6時,不能使用TIM3輸出2路PWM波的問題分析和解決辦法。
PS.

PB4(部分重對映,TIM3_CH1) ,PB5(部分重對映,TIM3_CH2)

STM32的埠重對映有三種模式:

沒有重對映、部分重對映、完全重對映

STM32的埠重對映
下圖是正點原子《STM32開發指南-庫函式版本_V1.3.pdf》
第十四章 PWM 輸出實驗 P203頁

筆者在使用STM32F103C8T6時,碰到一個問題,使用部分重對映時。
PB5可以正常輸出PWM波,而PB4不能輸出PWM波。

經過對比手冊,後發現:

1.該晶片沒有PC6~9埠(但是有PC13,14,15),所以完全重對映無法使用
STM32F103C8T6引腳圖


2.該晶片雖然有PB4引腳,但是“部分重對映”後不能使用,估計是硬體上沒有支援(個人猜測,因為此型號手冊上寫,見下圖)。理由是,低端晶片你懂的,新晶片廠商不會重新設計一遍。肯定是在原來的基礎上刪刪,整出一個縮水版。可能是因為怕影響到別的部分,或者就是沒刪乾淨。導致TIM3輸出PWM波時,PB4(部分重對映,TIM3_CH1) ,不能用PB5(TIM3_CH2)能用。 所以,STM32F103C8T6在使用TIM3輸出PWM波時,不要使用埠重對映。

PB4和PB5

具體程式碼如下
程式碼段

3.因為stm32的晶片都是按系列寫手冊,所以STM32F103C8T6是寫在STM32F103x6 STM32F103x8 STM32F103xB共同的一個手冊上,這難免讓我們在看手冊的時候產生歧義。所以,一定要找對手冊。看清楚具體的硬體管腳是否支援此功能。

相關推薦

STM32對映

筆者在使用STM32F103C8T6時,不能使用TIM3輸出2路PWM波的問題分析和解決辦法。 PS. PB4(部分重對映,TIM3_CH1) ,PB5(部分重對映,TIM3_CH2) STM32的埠重對映有三種模式: 沒有重對映、部分重對映、完

STM32對映功能,以ZET6的TIM3_CH2通道從PA7->PB5為例

還需要先提的是,重對映有的可能只適用於與部分STM32晶片。 TIM3_CH2 預設是接在 PA7,可以通過重對映功能,把 TIM3_CH2對映到 PB5 上 重對映控制是由複用重對映和除錯 IO 配置暫存器(AFIO_MAPR) 控制。 TIM3_REMA

stm32-USART1對映

首先來說下什麼是埠複用。 STM32有很多的內建外設,這些外設的外部引腳都是與GPIO複用的。也就是說,一個GPIO如果可以複用為內建外設的功能引腳,那麼當這個GPIO作為內建外設使用的時候,就叫做複用。 其實說白了,簡單易懂的說,就是某些普通的外設引腳也可以用來其它功能。比如說那我使用的正

STM32複用與對映簡單說明

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

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

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

STM32 複用&對映(USART Remap)

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

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

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

STM32-(ADC,DMA,對映)

STM32的高階功能應用 高階定時器功能框圖 時鐘源 高階定時器有四個時鐘源可以選擇: 1.內部時鐘CK_INT 內部時鐘源CK_INT主要來源於晶片內部,為72M,一般情況下我們都是使用內部時鐘。當從模式控制暫存器TIMx_SMCR的SMS位等於000時則

STM32的GPIO的複用功能和對映功能

1、複用功能:內建外設是與I/O口共用引出管腳(不同的功能對應同一管腳) STM32 所有內建外設的外部引腳都是與標準GPIO引腳複用的,如果有多個複用功能模組對應同一個引腳,只能使能其中之一,其它模組保持非使能狀態。 2、重對映功能:複用功能的引出腳可以通過重對映,

STM32的複用時鐘的開啟和對映功能

IO口的複用 最近在學習STM32,在BZ上一篇關於的串列埠通訊文章裡有這麼一段程式碼: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); 當初是參考開發的例子寫的,一直

STM32定位printf到串列輸出

#ifdef __GNUC__/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf     set to 'Yes') calls __io_putchar() */#define PUTCH

複用和對映

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

關於STM32的中斷向量表的對映的問題

1  為什麼要對中斷向量表進行重新對映?               COREM3權威指南上講“然而,為了動態重分發中斷, CM3 允許向量表重定位——從其它地址處開始定位各異常向量。    這些地址對應的區域可以是程式碼區,但也可以是 RAM 區。在 RAM區就可以修改向

STM32自學筆記——複用對映

埠複用 什麼事埠複用: STM32有很多的內建外設,這些外設的外部引腳都是與GPIO複用的。也就是說,一個GPIO如果可以複用為內建外設的功能引腳,那麼當這個GPIO作為內建外設使用的時候,就叫做複

java.net.SocketException: Permission denied(將80定向到8080

很多時候,tomcat是非root賬號,直接將8080改成80,tomcat會報錯 Java.NET.SocketException: Permission denied。原因是非root使用者不能訪問1024一下的埠。 為了解決這種問題,有方法如下:1.將當前使用者配置到sudo規則裡

VT-d(3)- 中斷對映

VT-d硬體中除了包含DMA重對映硬體外,也會包含中斷重對映硬體,該中斷重對映單元讓系統軟體能夠對I/O裝置產生的中斷(包括從I/O APIC傳送過來的中斷,I/O裝置產生的以MSI、MSI-X形式傳遞的中斷,不包含中斷重對映硬體本身產生的中斷)的傳輸進行控制,而不僅僅取決於硬體的連線。 對於V

華為PAT地址對映配置詳解(一)

眾所周知,PAT,,Port Address Translation,即網路地址轉換。 PAT有以下作用:1.改變資料包的ip地址和埠號;2.能夠大量節約公網IP地址。PAT的型別有以下:1.動態PAT,包括NAPT和Easy IP;2.靜態PAT,包括NAT Server。 本文為大家介紹華為路由器

華為PAT地址對映配置詳解(二)

上篇文章已為大家介紹了PAT的種類: PAT的型別有以下:1.動態PAT,包括NAPT和Easy IP;2.靜態PAT,包括NAT Server。 本文為大家介紹華為路由器Easy IP的基本配置,Easy IP有如下特點: 1.允許將內網的多個網路地址對映為網關出口地址的不同埠;2.允許公司外

0003-OpenCV中對映函式remap的使用,以影象在x和y方向的翻轉為例!

首先介紹一下remap函式! remap就是用來做重對映的,重對映的含義這裡先不講,大家看完這篇文章就知道了! 函式原型如下: C++: void remap(InputArray src, OutputArray dst, InputArray map1, InputArray map2, i

remap(地址對映)機制

                       remap(地址重對映)機制 (1)在系統復位之後,ARM將從地址0處開始執行指令,因此地址0x0處必須是ROM之類的在掉電