黃彥霖 發表在 痞客邦 留言(11) 人氣(14,668)

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
執行結果: 輸入 A 之後會自動回傳 ok 訊息
程式碼:
黃彥霖 發表在 痞客邦 留言(1) 人氣(8,864)

ADXL345 是一種常見、便宜、簡單、好用的 3 軸加速度計。我這片 ADXL345 模組是我在露天拍賣買的,約台幣 110 元...,比起之前買的 LSM303DLH 就要台幣 6、7 百元要來的便宜多了...Orz
實際接線圖 (右邊小塊板子就是 ADXL345 ):
開發板:ST 官方的 STM32VL Discovery
微控制器:STM32F100R8T6 (下面程式碼相容 F100、F103 、F105、F107 等所有 F1 系列)
三軸加速度器:ADXL345
特寫 ADXL345 模組:
執行結果:
黃彥霖 發表在 痞客邦 留言(2) 人氣(6,449)

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
執行結果:
程式碼:
黃彥霖 發表在 痞客邦 留言(4) 人氣(3,073)

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
說明:這篇程式碼有點長~~~,不過可以保證編譯可以通過,PB6=I2C-SCL、PB7=I2C-SDA、PB10=UART-Tx、PB11=UART-Rx,UART 包率為 9600
輸出結果: 程式碼:#include "stm32f10x.h"
黃彥霖 發表在 痞客邦 留言(1) 人氣(1,720)
★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
說明:保證編譯可以通過,實際運行後可以正確輸出,祝大家成功
原理:STM32F4 使用 I2C 讀取 TC74 A0 然後再經由 UART 傳送至電腦中查看。
腳位: I2C 腳位:PB6 = SCL,PB7 = SDA
UART 腳位:PC10 = TX,PC11 = RX,(包率 = 9600)
輸出結果:
程式碼:#include "stm32f10x.h"
黃彥霖 發表在 痞客邦 留言(0) 人氣(7,135)

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
說明:本範例實際上是使用 UART 非 USART ,因為 STM32 的 PA9-PA10 預設是USART,但是我們練習用不需要使用到 USART的同步功能,大多應用上"異步"的UART已經很夠用了,而且UART用起來也比USART簡單。
本範例所使用的 MCU:STM32F103C8T6
經驗談:如果開發版上有 J-TAG 插座,請將電源(3.3V-GND) 插到 J-TAG 上,輸出結果比較不會出錯。(之前把電源直接送到開發版預設電源孔上,結果輸出結果全是亂碼...,使用 2 種開發版都是這樣子....)
如果 出現亂碼 (!@#$%):1.檢查外部石英震盪器是否為 8 MHz。如果不是,請將 stm32f10x.h 檔案中的 #define HSE_VALUE ((uint32_t)8000000) 程式碼修改為 #define HSE_VALUE ((uint32_t)16000000) 即可正常顯示(假設你的震盪器是16MHz 則修改 16000000 ,如果是 24MHz 則修改為 24000000,其他數字以此類推)。(注意:預設 stm32f10x.h 檔案是唯讀的,所以必須手動將檔案唯讀取消才可修改)
程式碼:黃彥霖 發表在 痞客邦 留言(1) 人氣(4,190)

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
註:這裡還有一篇是寫字串(String)發送的:http://lolikitty.pixnet.net/blog/post/161896889
說明:本範例實際上是使用 UART 非 USART ,因為 STM32 的 PA9-PA10 預設是USART,但是我們練習用不需要使用到 USART的同步功能,大多應用上"異步"的UART已經很夠用了,而且UART用起來也比USART簡單。
本範例所使用的 MCU:STM32F103C8T6
經驗談:如果開發版上有 J-TAG 插座,請將電源(3.3V-GND) 插到 J-TAG 上,輸出結果比較不會出錯。(之前把電源直接送到開發版預設電源孔上,結果輸出結果全是亂碼...,使用 2 種開發版都是這樣子....)
如果 出現亂碼 (!@#$%):1.檢查外部石英震盪器是否為 8 MHz。如果不是,請將 stm32f10x.h 檔案中的 #define HSE_VALUE ((uint32_t)8000000) 程式碼修改為 #define HSE_VALUE ((uint32_t)16000000) 即可正常顯示。(注意:預設 stm32f10x.h 檔案是唯讀的,所以必須手動將檔案唯讀取消才可修改)
程式碼:黃彥霖 發表在 痞客邦 留言(1) 人氣(17,581)
一般说STM32单片机的命名都是STM32F103XYZW这样的方式,其中X表示引脚数,Y表示ROM容量,Z表示封装方式,W表示工作温度范围,比如RBT6表示为64引脚、128KB和LQFP封装,工业温度范围。
针对ROM容量的字符,表示的容量是:
6-32KB
8-64KB
B-128KB
C-256KB
D-384KB
E-512KB
F-768KB
G-1024KB
其中:
ROM容量为16~32K就是LD
64K~128K的就是MD
256~512K的就是HD
黃彥霖 發表在 痞客邦 留言(1) 人氣(1,512)
時鐘名稱 |
說明 |
HSI |
高速內部時鐘: HSI 為內部 RC 震盪器,頻率 8 MHz。 |
HSE |
高速外部時鐘: 可接石英震盪器(或其他時鐘源), 頻率從 4 Hz ~ 16 MHz,主流為 8 MHz。 |
LSI |
低速內部時鐘: LSI 為內部 RC 震盪器 ,頻率 40 KHz。 主要功能為看們狗時鐘使用 ( 看們狗只能使用於 LSI ),但也可以使用於 RTC 時鐘。 |
LSE |
低速外部時鐘: 外接頻率為 32.768 KHz 的石英震盪器,這主要功能是負責 RTC 的時鐘源。 |
PLL |
鎖相倍頻輸出: 時鐘輸入源可選擇:HSI/2、HSE、HSE/2 倍頻可選擇 2 ~ 16 倍,但不可超過 72MHz (系統頻率)。 |
黃彥霖 發表在 痞客邦 留言(0) 人氣(3,228)