日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32f103移植到f0_STM32F042替换STM32F103

發布時間:2024/7/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32f103移植到f0_STM32F042替换STM32F103 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為從事汽車CAN總線及多媒體解碼盒,常常需要解一些簡單的CAN數據,需要的硬件IO不多,僅僅是CAN+UART,所以最近為了節省成本,也是花了不少心思。

直到最近發現了STM32F042,據介紹,這是帶CAN的最小封裝芯片。

STM32F042----Cortex-M0內核 。14年初推出的芯片,號稱帶CAN總線的最便宜的MCU....

仔細查了下手冊,果然很適合我的項目,而且價格也便宜,據說RMB?4-6之間,最小TSSOP20封裝。這對于汽車小產品來說,簡直就是量身定做。

不說了,趕緊動起來,先搭建最小系統,CAN收發器TJA1050+STM32F042+7533就是最簡單的了,暫時不要晶振了,雖然CAN的波特率比較高的時候還是需要晶振的,不過一顆晶振也要好多RMB的 。

接下來最麻煩的事情來了,因為習慣使用IAR來做開發,而且積累下來的程序源碼都是UCOSII的,網絡上的開源代碼居然都是KEIL MDK的,這下囧...

不過也沒辦法,為了節省成本,只好多花點時間了 。

兩根禮拜過去,基本都調通,代碼架構也移植OK,這下終于可以把103的代碼全部移植到F042上了。

有幾個要注意的:

1.庫函數區別:F042對很多庫函數進行了修改,需要注意區別;

2.F042的CAN與103有所不同,需要參考寄存器定義,對于高速波特率,如500K、800K需要外置晶振;

3.無法使用USART1,因為是USART1/CAN/USB復用,這里被CAN占用了;

4.F042的配置文件沒有規范化,很多寄存器定義只能從F072里面找,而又不能完全使用F072的配置文件;

5.F042的*it.c文件不規范,其實STM32F0系列的都一樣,庫函數版本低,沒有把中斷函數文件做好規范化,導致很多函數定義混亂;

6.時鐘安全CSS的內容完全沒有提及,雖然從各種資料能找到介紹,但是基本沒人用,也沒關注到CSS的重要性;

7.F042的功耗要小很多,在同樣的時鐘8MHZ下,F042電流只有4mA, 103達到9mA以上;

8.F042的USART1是增強型的串口,支持LIN 主從模式,UART2是普通串口,不能用于LIN主模式;

9.P042F4標稱FLASH容量是16K,但是實際上容量是32K,F042F6倒是真的只有32K,這搞不懂是為啥;

10.低功耗方面做得很好,比F1系列方便很多。

最后希望F042會和103一樣,價格越來越便宜,質量越來越好。

-------------------------------------------------------------

20180330新增問題:

因為用這顆芯片同時做了CAN接口和LIN接口,發現并不能完整移植F1XX系列的LIN函數庫。因為F0XX系列的函數庫相對F1XX缺失了很多的LIN有關函數,比如有一個函數 Send_Break()是做LIN通信非常必要的卻根本沒有找到函數定義。為此花了很多時間研究如何實現SendBreak功能,一個月多月了也還是不得其所,最后還是花錢在某寶上找到了一個牛人幫忙解決的。

有些問題看起來很簡單,真正做產品的時候還真不是那么回事。

作為誠實勞動成果來說,代碼中的每一行代碼都凝結了不少人的心血甚至是慘痛教訓,還有些祖傳代碼雖然看起來亂七八糟卻是實實在在的鐵飯碗,每個程序猿的個人價值都靠這些代碼來維持。因此,請那些伸手黨請尊重他人的勞動,也珍惜自己的勞動!

總結

以上是生活随笔為你收集整理的stm32f103移植到f0_STM32F042替换STM32F103的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。