STM32埠重對映
筆者在使用STM32F103C8T6時,不能使用TIM3輸出2路PWM波的問題分析和解決辦法。
PS.
PB4(部分重對映,TIM3_CH1) ,PB5(部分重對映,TIM3_CH2)
STM32的埠重對映有三種模式:
沒有重對映、部分重對映、完全重對映
下圖是正點原子《STM32開發指南-庫函式版本_V1.3.pdf》
第十四章 PWM 輸出實驗 P203頁
筆者在使用STM32F103C8T6時,碰到一個問題,使用部分重對映時。
PB5可以正常輸出PWM波,而PB4不能輸出PWM波。
經過對比手冊,後發現:
1.該晶片沒有PC6~9埠(但是有PC13,14,15),所以完全重對映無法使用
2.該晶片雖然有PB4引腳,但是“部分重對映”後不能使用,估計是硬體上沒有支援(個人猜測,因為此型號手冊上寫,見下圖)。理由是,低端晶片你懂的,新晶片廠商不會重新設計一遍。肯定是在原來的基礎上刪刪,整出一個縮水版。可能是因為怕影響到別的部分,或者就是沒刪乾淨。導致TIM3輸出PWM波時,PB4(部分重對映,TIM3_CH1) ,不能用PB5(TIM3_CH2)能用。 所以,STM32F103C8T6在使用TIM3輸出PWM波時,不要使用埠重對映。
具體程式碼如下
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上了.因為在調程式時才發現錯了,沒得辦法,只能通過埠重
【STM32】STM32埠複用和重對映(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之類的在掉電