女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

STM32F429的USB工程CAN通訊不正常經驗分享

汽車玩家 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2020-04-04 17:32 ? 次閱讀

最近某項目需要用到USBCAN

STM32F429的USB工程CAN通訊不正常經驗分享

拿到這樣的需求,我們當然是先得保證通訊正常。于是我找了一個USB例程與一個CAN例程,分別調試驗證。

經過幾番折騰已經保證了USB與上位機能正常通訊了,也能保證了CAN的正常收發(拿了兩塊開發板做驗證)。

兩頭都沒有問題了,再加上一些數據處理就差不多完成了。USB與CAN我都是第一次用,沒想到那么順利,美滋滋,正準備放松的時候,問題就來了。這是一個整體的東西,最終都要把這兩部分集合起來吧。

我把CAN工程里關于CAN的部分移到USB工程里,這時候CAN竟然用不了了。這時候我就開始在懷疑自己是不是手賤誤刪了哪里了,于是重新來一遍,發現還是不行。

查了代碼很久也沒找出什么錯誤了,于是決定先不找錯誤了,進度要緊,這時候覺得應該是工程哪里有問題了,先想其它辦法避過這個問題。

于是乎我就換著來,我把USB的工程里關于USB的部分移到CAN工程里。大家猜一猜發生了什么?USB竟然打都打不開!要炸了。。但是這時候已經很明確肯定不是移植問題了。CAN部分首先想到了波特率是不是對不上了,USB部分首先想到USB的時鐘是從哪來的,之前沒用過也沒仔細看。帶著這兩個問題去查看了參考手冊與代碼,果然,STM32F429的USB的時鐘還真有點特殊(不知道其它芯片是不是也是這樣),其來自于PLL輸出,而不是我們熟知的APB1、APB2:

STM32F429的USB工程CAN通訊不正常經驗分享

從時鐘樹中我們可以看出:(1)的輸出是系統時鐘,(2)的輸出是USB時鐘。相關公式:

STM32F429的USB工程CAN通訊不正常經驗分享

當然(2)的輸出不僅僅是給USB提供時鐘,還給RNG與SDIO提供時鐘:

STM32F429的USB工程CAN通訊不正常經驗分享

這一部分對應的代碼在system_stm32f4xx.c中。下面看看USB工程、CAN工程中該文件的差別:

STM32F429的USB工程CAN通訊不正常經驗分享

STM32F429的USB工程CAN通訊不正常經驗分享

可見,問題找出來了。在USB工程中,CAN通訊不正常是因為系統時鐘降為168MHz,導致APB1時鐘變為42MHz,而代碼中是用APB1=45MHz來計算CAN的波特率的,所以導致波特率對應不上導致CAN通訊錯誤。

在CAN工程中,系統時鐘為180MHz,USB OTG FS時鐘變為51MHz,超過了正常的48MHz,導致USB不能正常工作。

所以,每當用到USB,都得單獨配置PLLCLK = 168MHz了,這樣的話其他外設可能得改變原有的配置,比如這里的CAN就得用APB1=42MHz來計算波特率了,否則就會出錯。這很不方便。。

正如野火火哥說的,這是ST的一個奇葩設計。

STM32F429的USB工程CAN通訊不正常經驗分享

所以,大家以后再使用USB的時候當心這個陷阱!

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

    關注

    60

    文章

    8146

    瀏覽量

    270931
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2891

    瀏覽量

    466769
  • STM32
    +關注

    關注

    2290

    文章

    11017

    瀏覽量

    362446
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    求助,求分享STM32F429用IAR做的外部SPIFLASH下載算法例程

    你好,請問可不可以提供一下STM32F429用IAR做的外部SPIFLASH(例如W25Q128)下載算法例程,現在我的下載算法是能下載到外部FLASH但是不能跳到main函數,麻煩指教一下,謝謝!
    發表于 03-11 07:40

    使用STM32的SPI主機通訊需要喚醒嗎?

    在使用STM32生成的工程里面,使用SPI作為主機模式,在與從機通訊的時候,第一次發送字節之前,需要發送一個空字節,SPI通訊正常,要不S
    發表于 03-10 08:22

    變頻器輸出波形不正常原因及解決方法

    ? ? ? 變頻器作為現代工業控制領域的核心設備之一,其穩定性和可靠性直接關系到生產線的正常運行和設備的使用壽命。然而,在實際應用中,變頻器輸出波形不正常的問題時有發生,這不僅影響了設備的性能,還可
    的頭像 發表于 02-06 15:48 ?560次閱讀
    變頻器輸出波形<b class='flag-5'>不正常</b>原因及解決方法

    使用STM32F429來讀寫,讀出來確是不固定的一個值,為什么?

    理解對不對不? 二、現在使用STM32F429來讀寫,短接MOSI和MISO讀寫值一致。實際寫入ADS1256寄存器status值0x06,但讀出來確是不固定的一個值,通過提高SPI速率到20M,發現
    發表于 12-30 08:11

    STM32模擬eeprom只有起始地址0x8001000正常其他地址都會造成單片機運行不正常怎么回事

    STM32F103C8T6模擬eeprom只有起始地址0x8001000正常其他地址都會造成單片機運行不正常怎么回事
    發表于 12-29 23:05

    伺服電機振動不正常原因和維修及案例分析

    ? ? ? 伺服電機作為自動化系統中的關鍵組件,其穩定運行對于整個生產線的效率和穩定性至關重要。然而,伺服電機在運行過程中可能會遇到振動不正常的問題,這不僅影響電機的性能,還可能對機械系統造成損害
    的頭像 發表于 12-18 09:22 ?717次閱讀
    伺服電機振動<b class='flag-5'>不正常</b>原因和維修及案例分析

    TLV320AIC3106-Q1通過什么接口與STM32F429進行硬件連接?

    如題,TLV320AIC3106-Q1通過什么接口與STM32F429進行硬件連接
    發表于 11-04 06:03

    TLV320AIC3100與STM32的I2C通信不正常是怎么回事?

    ,只能知道讀回來的值和寫入的不同,但是沒法知道為何通信不正常,請問有沒有其他的驗證I2C通信的方法? 2、有沒有關于TLV320AIC3100在STM32的驅動的源碼,可以作為設計參考的?
    發表于 10-23 07:40

    為什么AIC23剛上電時,工作不正常

    工作在USB模式)都正常,只是聲音不正常,但是經過上面的觸碰后,就可以實現轉為正常狀態。 請問各位,這兩個信號有什么關系?為啥會出現這種情況?如何解決? 先謝謝了。
    發表于 10-21 07:50

    使用PCM1860的過程中,發現PCM1860的DOUT輸出不正常,為什么?

    ,AVDD為3.3V, 2.上電一段時間后ADC才會輸出不正常; 3.PCM1860的SCKI(PCM1860的PIN15)有STM32F407提供,是否一定需要3.3VPP。07~0.8vpp的SCKI芯片是否可以工作。
    發表于 09-29 07:21

    OPA2277UA單電源供電為什么不正常

    電源電壓5V, 為什么V-輸入電壓和輸出電壓Vo都不正常,換了LM358反而接近正常電壓。在線求高人指點
    發表于 08-27 08:19

    ADS1675采樣不正常是哪些原因引起的?

    ADS1675采樣率在125K,250K,500K,1M 的時候采樣正常,2M,4M的采樣不正常。下面是采樣設置,請問還需要設置哪里。測試數據如附件
    發表于 08-09 08:23

    STM32F429芯片的NRST 引腳低電平(外部復位)的允許時間長度是?多少ms呢?

    STM32F429芯片的NRST 引腳低電平(外部復位),從0V升高到1.78V,實現硬件復位,允許持續的時間是?官網資料沒查詢出來,網上也查詢不到呢
    發表于 08-02 10:08

    LOG114 VLogout輸出不正常的原因?

    你好,這是我的電路圖,目前的問題是VLogout的輸出不正常,不服從VLogout=0.375*log(I1/I2)+2.5V。 我之前使用log114芯片的時候,背部的exposed
    發表于 08-02 08:02

    LM393比較電路不正常的原因?

    LM393比較電路不正常
    發表于 07-29 07:15