2017-04-26 303 views
-1

我想學習和掌握嵌入式C,所以我只是要測試一下我在Github上找到的代碼,它是爲STM32F4發現板而構建的。我正在開發的主板是STM32L152。當我試圖構建/運行代碼(顯然它不會工作),我得到的錯誤大多數與功能未定義或「標識符'function_name'未定義」,請注意代碼文件包括一個庫(lib)。 看看代碼文件: https://github.com/TDAbboud/STM32F4_Examples/tree/master/04_PWM_Servo從stm32F到stm32L的C代碼修改

一般來說,應該做些什麼修改才能成功運行STM32L1上的代碼?

謝謝

+2

太寬.. –

回答

1

這些是兩個不同的芯片。僅僅因爲他們來自ST,僅僅因爲他們是基於ARM的,他們不是同一個芯片。對於初學者來說,stm32f4是stm32l可能不是的cortex-m4,99.9%的代碼不會在乎,只是某些程序集可能會。如果stm32l是一個cortex-m0,那麼你的指令就會少得多,所以如果它是一個cortex-m3,那麼它就不管用了。

真正的外圍設備不是這是兩塊芯片,而是兩塊芯片,外設可以/會有所不同。 ST擁有許多芯片,它們使用相同的uart或相同的gpio或其他芯片,但它們具有多個用於STM32芯片的uart以及多個GPIO。而且他們在製作新芯片時混合搭配,所以如果你想從一個端口移植到另一個端口,你需要通過外設讀取新舊文檔,看看有什麼變化。

聽起來就像你正在使用一個庫,所以工具可能從芯片知道你已經選擇了你有什麼外設和你需要哪個庫,所以它可能沒有找到它們,因爲對於那個芯片來說,外設,因此功能和那些定義不適用。一次只需一個外圍設備和芯片之間的端口。