在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度解析STM32外設配置沖突問題

GReq_mcu168 ? 來源:未知 ? 作者:胡薇 ? 2018-09-30 17:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近日有客戶反映,他在在使用STM32F103C8T6的時候遇到如下問題:

I2C1使用PB6和PB7口,定時器TIM3使用PB0PB1PB4PB5做4路PWM。但在使用的過程中,如果只初始化定時器就沒有任何問題,但是一旦初始化I2C1,那么定時器的通道2(PB5)就不能產生PWM波,而是保持高電平。

客戶查閱手冊得知PB5的默認復用功能是I2C1的SMBA引腳,但是它的I2C1是初始化為I2C模式的,并不是初始化為SMBAS模式,而且同樣的方式在F0上測試是可用的。它本來用的是標準庫開發的,然后嘗試使用STM32CubeMx進行硬件配置,使用HAL庫新建工程,還是存在同樣的問題。

就上面的問題,查看了其有關I2C1和TIM3d的pwm初始化的部分代碼,并未發現不對的地方。首先重點懷疑I2C1的配置是否有誤,擔心客戶在配置I2C1時配置成了SMBAS模式。借助于庫代碼,進一步跟蹤下去查看底層的寄存器配置,相關寄存器操作也沒有發現問題。

這里TIM3的PWM輸出的幾個管腳有涉及到重映射【REMAP】,從數據手冊的管腳分配上來看,如果不開啟I2C1的SMBA模式,不應該存在沖突問題。

這邊再次使用STM32CubeMx基于STM32F103C8進行同樣配置,結果跟客戶上面反饋的一樣。不開啟I2C1時,TIM3的所有管腳功能正常;開啟I2C1后,TIM3的部分管腳PB5功能異常。感覺問題可能出在跟TIM3的remap這個地方。打開基于STM32F1系列的重要寶典---參考手冊RM0008,查看核對有關TIM3的管腳復用REMAP功能介紹的地方。

現在客戶執行的是TIM3的部分管腳重映射功能【partial remap】,從上面表格來看,目前的代碼配置是沒有問題的。畢竟目前如果不開啟I2C1的話TIM3也沒什么異常,所以過來查看這個地方,心里也沒怎么期望從這里找出明顯錯誤,倒是期待從附近能否找到些額外的提示或提醒。這不,表格的下方用了小一號文字明確提示:上述REMAP操作僅適用于64腳、100腳和144腳封裝的芯片.現在客戶用的芯片是STM32F103C8,管腳數為48,換言之,它是不支持TIM3的復用功能腳的REMAP操作的。到此,問題應該說找到原因了。

過不了幾天,客戶又發郵件過來繼續就該問題咨詢。他問,既然說48腳芯片STM32F1不支持TIM3的REMAP操作,那為什么做了REMAP操作后,如果不開啟I2C1,TIM3的4個腳的PWM功能很正常;或者說即使同時開啟了I2C1,PB4的功能還是正常REMAP過來了,只是PB5功能異常。希望我這邊給出進一步解釋。

站在用戶的角度有人會發出類似疑問很正常。其實,既然手冊明確規定48腳的STM32F1芯片不支持TIM3功能腳的REMAP,它自有其原因和道理。你違背手冊之規定來操作,結果的正確性就不能得到保障。有時REMAP沒問題,不代表任何時候進行REMAP沒問題。就像討論某個命題,局部、個別情形成立,并不能說它恒成立。打個形象的比方,A今年10歲,B今年20歲。即B比A大10歲,B今年的年齡是A的2倍。顯然,兩個結論站在今年都成立,到了明年,后面的2倍論就不成立了。

在ST MCU的應用過程中,還經常出現類似違背手冊規定的操作以及由此導致的疑問。比方說,有人發現使用STM32芯片內部的flash時,似乎可以使用到手冊規定以外的空間。用戶這樣使用,芯片的功能或特性是不能得到保障的,作為廠家只能保證芯片手冊規定區域的品質。又比方,我們知道ST MCU絕大部分芯片都帶有UID,可有些人發些即使手冊明確沒有UID的芯片,他們似乎發現這類芯片還是有UID甚至加以利用,詢問這樣是怎么回事或者說是否可靠。同樣,對于類似情形作為廠家也只能保證手冊規定的特性。超出手冊規定以外的應用,只能用戶自己負責。

好,繼續回到上面的話題。

我們從芯片應用的參考手冊上應該說找到了明確的規定或答案。我們還可以查看下基于該芯片有無更為詳盡的勘誤表。后來在官方網站找到了相應的勘誤手冊【注:勘誤手冊往往基于芯片型號,即一個系列可能有多個勘誤手冊】,我們在勘誤手冊里也看到關于上面問題的詳細描述,可應視為對參考手冊的進一步補充。

到此,問題原因基本明了。或許還會有人問,上面提到使用STM32CubeMx進行過工程配置,配置過程并未發現異常,或者說配置過程中沒有遇到上面阻礙。既然參考手冊規定不允許STM32F103C8芯片的TIM3 remap操作,在開啟i2c1時,通過cubeMx配置TIM3的REMAP功能時應該出現非法提示才對啊?

我使用的CUBEMX的版本是4.22.0,在開啟I2C1的同時,并按照TIM3的部分REMAP配置時不能說沒有給出提醒,只能說提醒得不夠明確。該提醒可能容易被人忽視,然后可以一路配置下去。

STM32CubeMx配置如下圖,在I2C1那個地方有黃色警示,鼠標放過去的時候是有文字提示的【不一定每個人會留意到】:

可以說CubeMx還是有不夠嚴謹或者說考慮不周的地方。如果在開啟I2C1情況下,當用戶試圖配置PB5作為輸出時直接紅色警告拒絕TIM3的remap就好了。但這樣,可能又會影響到另外一類用戶人群,他們根本不在乎PB5怎樣,只關注PB4能用作PWM輸出就好。有點眾口難調的味道,參考手冊在明確不支持STM32F1系列48腳的TIM3的REMAP操作的同時,結合勘誤手冊做了應用補充,以盡可能滿足不同的應用需求。

畢竟STM32CubeMX工程浩大,肯定還有需要完善的地方,尤其類似的細節問題。不過,我們相信會越來越完善。不管怎樣,所以,任何時候我們不能完全將芯片手冊丟在一邊。比如,我們知道ST官方出了基于各個STM32系列的固件庫,庫里各類示例工程極大方便了大家的學習和研發。不難想象,這些固件庫工程也都比較龐大,難免會有bug,一直都處于不斷完善中。在使用它們的過程中如果碰到疑惑的地方,不妨查看下相關數據手冊或開發參考手冊,做進一步比對確認。如果覺得手冊還描述得不夠清晰明確的話,可以去找找相應芯片的勘誤手冊,看看里面有無相關問題的進一步補充描述。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PWM
    PWM
    +關注

    關注

    116

    文章

    5474

    瀏覽量

    218954
  • STM32
    +關注

    關注

    2292

    文章

    11029

    瀏覽量

    363928

原文標題:淺談一個STM32外設配置沖突問題

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32為什么要先開啟外設時鐘?

    相信很多朋友都曾遇到過這種坑,我最初學習STM32的時候同樣也遇到過。下面,我就來說說為什么我們要先開啟STM32外設模塊時鐘,再對其外設模塊初始化
    的頭像 發表于 10-20 14:10 ?5013次閱讀
    <b class='flag-5'>STM32</b>為什么要先開啟<b class='flag-5'>外設</b>時鐘?

    STM32基于標準外設庫的外部中斷配置

    本文介紹了STM32基于標準外設庫的外部中斷配置,以及基于參考手冊如何更加寄存器配置外部中斷
    的頭像 發表于 11-02 14:13 ?2899次閱讀
    <b class='flag-5'>STM32</b>基于標準<b class='flag-5'>外設</b>庫的外部中斷<b class='flag-5'>配置</b>

    使用STM32F429的DMA多個外設都使用到同樣的DMA_STREAM的時候,就會發生沖突怎么解決?

    最近在使用STM32F429的DMA時候,發現一個問題,當多個外設都使用到同樣的DMA_STREAM的時候,就會發生沖突(后面配置的DMA可用,前面
    發表于 04-24 07:13

    沖突深度睡眠信息

    意味著后者是正確的,因為好像GPIO綁在我的加速度計上不再讓我從深度睡眠中醒來。我只有深睡眠這個問題,因為CysYSPMLeSEP()在沒有問題的情況下工作,我看到我的AccEL在1600赫茲中斷。我是否誤解了其中的一個應用筆記,因為它們似乎有沖突的信息?非常感謝您的幫助
    發表于 10-08 10:32

    stm32外設配置步驟怎么記

    stm32外設配置步驟怎么記,pass:其他組合設備也可依照同樣的思路搭建pass:本實驗基于stm32f107+CubeMx+Keil 實現本文只對HID和CDC組合設備生成做講解,
    發表于 08-05 08:03

    如何使用STM32CubeMX配置STM32L431RCT6的USART外設

    本篇詳細的記錄了如何使用STM32CubeMX配置STM32L431RCT6的 USART 外設,接收 GPS 模塊的數據并解析。1. 準備
    發表于 02-08 06:41

    S32DS_config管腳配置工具與外設工具沖突

    1.管腳配置工具與外設工具沖突?那就是紅色標簽1和紅色標簽2,一定要二選一嗎?紅色標簽 4 部分與標簽 2 相關,紅色標簽 3 與標簽 2 相關,對嗎?以及為什么標簽 4 部分中的 board
    發表于 03-28 08:39

    C語言深度解析

    C語言深度解析,本資料來源于網絡,對C語言的學習有很大的幫助,有著較為深刻的解析,可能會對讀者有一定的幫助。
    發表于 09-28 07:00

    STM32的優越外設介紹

    STM32的優越外設介紹,官方文章,需要的看看
    發表于 11-02 10:32 ?33次下載

    STM32 管腳作為不同外設的 輸入/出 端時的模式配置

    OR IN_FLOTING ,而配置計時器捕獲通道時呢?下面我為你整理,STM32 管腳作為不同外設的輸入/出 端時的模式配置
    發表于 05-09 14:36 ?11次下載

    最全STM32外設資料匯總

    最全STM32外設資料匯總。STM32外設指的是單片機外圍模塊,常見的STM32外設有:IO、T
    發表于 12-08 14:49 ?3w次閱讀

    STM32標準外設庫的文件結構解析

    STM32標準外設庫之前的版本也稱固件函數庫或簡稱固件庫,是一個固件函數包,它由程序、數據結構和宏組成,包括了微控制器所有外設的性能特征。
    發表于 10-17 15:55 ?8079次閱讀
    <b class='flag-5'>STM32</b>標準<b class='flag-5'>外設</b>庫的文件結構<b class='flag-5'>解析</b>

    STM32L4系列二、STM32CubeMX 圖形配置工具基本操作過程

    減輕開發工作,時間和費用。STM32CubeMX幾乎覆蓋了 STM32 全系列芯片。具有如下特性:1)直觀的選擇 MCU 型號,可指定系列、封裝、外設數量等條件;2)微控制器圖形化配置
    發表于 12-01 14:06 ?7次下載
    <b class='flag-5'>STM32</b>L4系列二、<b class='flag-5'>STM32</b>CubeMX 圖形<b class='flag-5'>配置</b>工具基本操作過程

    STM32f429外部中斷配置解析基于HAL庫

    STM32f429外部中斷配置解析基于HAL庫
    發表于 12-16 16:58 ?11次下載
    <b class='flag-5'>STM32</b>f429外部中斷<b class='flag-5'>配置</b><b class='flag-5'>解析</b>基于HAL庫

    IP地址配置沖突導致路由振蕩怎么辦?

    IP地址配置沖突導致路由振蕩怎么辦? 標題:解決IP地址配置沖突導致的路由振蕩 引言: 在網絡中,IP地址配置
    的頭像 發表于 11-09 09:24 ?1355次閱讀
    主站蜘蛛池模板: 日本一卡精品视频免费 | 色5月婷婷| 天天摸天天 | 免费观看激色视频网站bd | 在线观看你懂的网站 | 1024手机看片欧美日韩 | 日韩一区二区三区在线 | 天天看a| 中国三级视频 | 色偷偷尼玛图亚洲综合 | 国产精品手机在线 | 国内外精品免费视频 | 种子天堂bt磁力在线资源 | 视频一区中文字幕 | 国产精品天天爽夜夜欢张柏芝 | 男人天堂网2021 | 在线另类 | 欧美1024性视频 | 欧美一区二区视频在线观看 | 国内精品久久久久影院免费 | 丁香婷婷亚洲六月综合色 | 91老色批网站免费看 | 色综合小说天天综合网 | 欧美黄色高清 | 性欧美极品| 日本a级片在线观看 | 亚洲成在线观看 | 看全色黄大色大片免费久久 | 久久久黄色大片 | 免费观看视频网站 | 特级免费毛片 | 国产资源在线免费观看 | 日本一区二区三区在线 视频观看免费 | 俄罗斯欧美色黄激情 | 夜夜春宵翁熄性放纵30 | 日韩三级在线观看视频 | 免费伦费一区二区三区四区 | 毛片爱爱 | 午夜视频免费国产在线 | 国产三级中文字幕 | a毛片网站 |