色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

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

最近某項目需要用到USBCAN

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

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

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

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

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

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

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

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

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

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

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

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

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

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

可見,問題找出來了。在USB工程中,CAN通訊不正常是因為系統(tǒng)時鐘降為168MHz,導(dǎo)致APB1時鐘變?yōu)?2MHz,而代碼中是用APB1=45MHz來計算CAN的波特率的,所以導(dǎo)致波特率對應(yīng)不上導(dǎo)致CAN通訊錯誤。

在CAN工程中,系統(tǒng)時鐘為180MHz,USB OTG FS時鐘變?yōu)?1MHz,超過了正常的48MHz,導(dǎo)致USB不能正常工作。

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

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

STM32F429的USB工程CAN通訊不正常經(jīng)驗分享

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7976

    瀏覽量

    265514
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2764

    瀏覽量

    464110
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10921

    瀏覽量

    356995
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    stm32f429如何把變量定義到sdram中去?

    最近搞stm32f429,請教如何把變量定義到sdram中去?能夠同時使用內(nèi)部的sram和外部的sdram嗎?
    發(fā)表于 05-15 07:54

    STM32F429 AD采集出的數(shù)據(jù)波動很大是哪里的問題?

    STM32F429 AD采集穩(wěn)壓源335V,得出來的數(shù)據(jù)偏差幅度很大,能從339-349V變化,怎么可能?還有,這款單片機(jī)AD不支持校準(zhǔn)。現(xiàn)在懷疑它波動大的原因是 AD的問題,有沒有同樣的看法?
    發(fā)表于 05-14 07:42

    STM32F429開發(fā)板只能插電腦USB供電接口LCD才能顯示,為什么?

    手中一塊STM32F429 Disvovery開發(fā)板,在插入電腦USB接口的情況下,LCD正常顯示圖片內(nèi)容。將USB供電線插到充電寶、充電器上就無法
    發(fā)表于 04-29 07:04

    stm32f429 USB Host HID鍵盤枚舉成功讀取鍵值失敗的原因?怎么解決?

    求助大神,手上一塊stm32f429的板子,作為USB host連接USB鍵盤,使用cubemx生成工程文件,在主循環(huán)內(nèi)添加鍵值處理程序,現(xiàn)在的問題是通過串口打印調(diào)試信息顯示,
    發(fā)表于 04-28 07:18

    請問STM32F429硬件IIC需要外圍上拉電阻嗎?

    如題,STM32F429使用IIC通信的時候,是否需要外加上拉電阻? 看過很多資料,都說是需要上拉電阻,讓人郁悶的是,這次設(shè)計硬件的時候,偏偏忘記了加,于是乎我進(jìn)行了測試, //使能IO引腳
    發(fā)表于 04-24 06:35

    如何維修安捷倫N8946電源輸出不正常

    。其電壓輸出范圍為0至200V,電流輸出范圍為0至140A,最大輸出功率為10000W。同時,該電源支持340–440 VAC的交流輸入電壓范圍。 維修安捷倫N8946電源輸出不正常 安捷倫N8946電源輸出不正常時,可以嘗試以下步驟進(jìn)行維修: 檢查電源輸入:首先確認(rèn)電源
    的頭像 發(fā)表于 04-23 18:07 ?747次閱讀
    如何維修安捷倫N8946電源輸出<b class='flag-5'>不正常</b>

    stm32f429 FMC地址總線的疑問求解

    stm32f429單片機(jī),使用FMC操作并行總線。其中地址總線上主設(shè)備為f429,從設(shè)備為一個fpga和兩個存儲器,地址總線經(jīng)5.1K電阻上拉。 經(jīng)示波器測試,觀察到下面的異常現(xiàn)象: 當(dāng)讀控制信號
    發(fā)表于 04-11 07:58

    STM32F429做的PIL仿真速度非常慢的原因?

    各位大神好, 本人用MATLAB/SIMULINK搭建了小型直流電力系統(tǒng)。系統(tǒng)包含三個直流轉(zhuǎn)換器。相關(guān)三個控制器被載入STM32F429中,從而與SIMULINK構(gòu)成PIL仿真。仿真運(yùn)行一切正常
    發(fā)表于 04-11 07:28

    stm32f429 can1通訊使用hal發(fā)送數(shù)據(jù)不穩(wěn)定怎么解決?

    stm32f429 can1通訊,使用hal庫配置工程,發(fā)送數(shù)據(jù)不穩(wěn)定,發(fā)送幾十個包才有一倆正常發(fā)送,但是使用標(biāo)準(zhǔn)庫就可以
    發(fā)表于 04-02 06:04

    通過stm32f429 usb host hid發(fā)送命令控制hid設(shè)備,能枚舉不能發(fā)送數(shù)據(jù)的原因?

    大家好,這個問題一直困擾了我好久,我的下位機(jī)是hid設(shè)備,已經(jīng)做好無法改變,我想通過stm32f429 usb host hid發(fā)送命令控制它,枚舉都成功了,就是不能發(fā)送數(shù)據(jù),我不知道什么原因,有什么好的建議嗎?我用的是USBH_HID_SetReport函數(shù)
    發(fā)表于 03-28 09:14

    STM32F103C8T6 CAN發(fā)送數(shù)據(jù)波形不正常的原因?

    大家好,STM32F103C8T6關(guān)于CAN發(fā)送數(shù)據(jù)波形不正常的問題。
    發(fā)表于 03-27 08:27

    STM32F429工程標(biāo)準(zhǔn)庫移植到HAL庫后中斷向量表異常的原因?

    STM32F429工程標(biāo)準(zhǔn)庫移植到HAL庫后中斷向量表異常
    發(fā)表于 03-20 06:02

    STM32F373使用flat類型不正常,為什么?

    STM32F373使用flat類型不正常
    發(fā)表于 03-18 07:20

    stm32f429 fatfs分了4個區(qū),usb_hs掛載后4個都顯示出來了,如何用代碼控制顯示其中的幾個?

    如題 板子是stm32f429。開發(fā)環(huán)境stm32cubemx+keil,用的HAL庫,裸機(jī)no_os fatfs分了4個區(qū),讀寫正常usb_hs掛載后4個都顯示出來了,讀寫也
    發(fā)表于 03-08 07:24
    主站蜘蛛池模板: 亚洲电影成人 成人影院| 欧美丰满白嫩bbxx| 蜜芽一区二区国产精品| 国产成人久久婷婷精品流白浆| 又黄又湿免费高清视频| 天天综合网网欲色| 欧美性猛交xxxxxxxx软件| 精品久久综合1区2区3区激情| 国产97视频在线观看| ebc5恐怖5a26房间| 中字幕视频在线永久在线观看免费 | 久久免费精彩视频| 国产精品国产三级国产an| mxgs-877痉挛媚药按摩| 最近免费中文字幕MV免费高清| 亚洲国产欧美在线人成aaaa20| 少妇厨房愉情理9伦片视频| 青青草在线 视频| 女教师二十三歳| 美女被免费喷白浆视频| 久久精品亚洲牛牛影视| 国内九一激情白浆发布| 国产日韩欧美另类| 国产欧美日韩综合精品一区二区 | 青草久久精品亚洲综合专区| 麻豆精选2021| 久久日本片精品AAAAA国产| 狠狠色丁香婷婷久久综合五月| 国产福利一区二区精品| 高H高肉强J短篇NP| 岛国电影网址| 成年人免费在线视频观看| jk白丝袜美女被男人桶| 99久久免费只有精品| 99riav9 精品香蕉免费大视频 | 国产在线观看www鲁啊鲁免费| 伊人久久国产免费观看视频| 亚洲免费网站在线观看| 亚洲人视频在线观看| 一本大道无码AV天堂欧美 | 99精品国产福利在线观看|