標籤: 教學
-
STM32 LibOpenCM3 尋找與移植函式庫
前言在使用 STM32 的過程中,一定會搭配許多不同的模組使用,像是各種感測器或額外的通訊模組等,但是實際搜尋 GitHub 就會發現很難找到基於 LibOpenCM3 寫的 Library。若是很簡單的模組大不了可以看一下 Datasheet 就自己寫函式庫算了,但只要稍微複雜一點的模組,自己重寫一個 Library 的效率實在是太低了。在 GitHub 搜尋「XXX模組 library」或「XXX模組 driver」就會發現找到最多的通常是專門寫給 Arduino 的,再來可能會有一些是 STM32 HAL 的。很明顯這些 Library 都沒辦法直接搭配 LibOpenCM3 使用。但是我們可以透過修改這些現成的 Library,將它們移植到 LibOpenCM3 上,甚至將其改成平臺無關(Platform Independent)的通用 Library。若原始 Library 寫得好的話,只要簡單修改幾行就可以讓它可以用 LibOpenCM3 了,絕對比自己看 Datasheet 重寫一個 Library 還快。而這篇文章將會示範我如何將一個 MCP2515 Arduino Library 修改成 Platform Independent 的 Library,讓它可以搭配 LibOpenCM3 甚至任何平臺或框架使用。
簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
-
STM32 LibOpenCM3:CRC
前言CRC(Cyclic redundancy check)即循環冗餘校驗是一種雜湊函式,通常用於通訊,用以讓接收方確認資料是否正確。多數的 STM32 家族都有內建 CRC 計算單元,本篇要來介紹如何使用。
簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
-
STM32 LibOpenCM3:I2C
前言在上一篇中,我簡單介紹了 SPI 的用法,而除了 SPI 外還有另一種非常常見的通訊協定——I²C(以下稱 I2C)。I2C 和 SPI 一樣是主從式架構,I2C 的主要特色就是無論有多少 Slave device 都只需要兩條線就可以完成通訊。在這一篇文章中,我不會詳細介紹 I2C 本身,但建議還是要對它有基本的瞭解比較好,在此推薦「I2C bus 簡介 (Inter-Integrated Circuit Bus) @ 傑克! 真是太神奇了! -)」及「【Day21】I2C的介紹 - iT 邦幫忙 」這兩篇文章。24C256 是一個擁有 I2C 介面的 EEPROM,這次將示範如何使用 STM32 來透過 I2C 對其進行資料的讀寫,且可以用 USART 進行操作。
簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
-
STM32 LibOpenCM3:SPI (Slave mode)
前言上次已經介紹了 SPI 作為 Master device 的程式,這次要接著介紹作為 Slave device 的程式寫法,讓 Master 與 Slave 可以互相溝通。
簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式