分類: 簡單入門 LibOpenCM3 STM32 嵌入式系統開發
所有屬於分類「簡單入門 LibOpenCM3 STM32 嵌入式系統開發」的文章。
2022 iT 鐵人賽-結語
經過這說長不長、說短不短的 30 天,這次的 iT 鐵人賽終於要來到尾聲了。在這最後一篇中,我想回顧並分享一下前 29 天撰寫文章的心得。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#嵌入式
STM32 延伸內容
前言:在之前的篇章中,我們專注在 LibOpenCM3 這個開源的函式庫上,然而如同我在第一天所寫的,STM32 的世界是很多元的,因此在在一篇文章中,我想簡單介紹與 STM32 有關的延伸內容,希望這些對想要更進一步研究 STM32 的人提供一些方向。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#嵌入式
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++
#程式
#嵌入式
STM32 LibOpenCM3:SPI (Master mode)
前言:SPI(Serial Peripheral Interface)是一種常見的同步序列通訊協定,為主從式架構。有許多感測器或模組都使用 SPI 進行通訊。 這次的範例要實現 USART 與 SPI (Master mode) 的轉發器——把 USART 接收到的資料由 SPI 發送出去,而 SPI 收到的資料由 USART 發送。並且有一個 EXTI 的外部請求接腳。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:ADC Timer 觸發
前言:ADC(Analog to Digital Converter)顧名思義是將類比訊號轉換成數位訊號的元件,現今多數 MCU 都會內建 ADC,而這也是相當基本且常用的功能。 之前的文章已經介紹過 3 中不同的 ADC 使用環境,這次要再介紹以 Timer 定期觸發 ADC 進行轉換的寫法,且一樣會啓用 ADC 的轉換完成(EOC)中斷。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:ADC 中斷
前言:ADC(Analog to Digital Converter)顧名思義是將類比訊號轉換成數位訊號的元件,現今多數 MCU 都會內建 ADC,而這也是相當基本且常用的功能。 在之前的篇章中已經分別介紹 Regular 及 Injected 的單與多通道,之前對於等待 ADC 轉換完成的程式寫法都是單純的 Blocking(阻塞),這次要介紹中斷的寫法,使用中斷對於大量的 ADC 轉換作業會比起 Blocking 更有效率。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系 統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:ADC 多通道 Injected
前言:ADC(Analog to Digital Converter)顧名思義是將類比訊號轉換成數位訊號的元件,現今多數 MCU 都會內建 ADC,而這也是相當基本且常用的功能。 上一篇已經介紹過最基本的 ADC 單一 Regular 通道用法,這篇文章要繼續示範如何使用 ADC Injected 多通道讀取,並使用 UART 傳到電腦上觀看。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式