公告版位
需要找什麼嗎? 左邊分類或許可以幫助你...

目前分類:[單晶片] ARM-STM32-F1 (13)

瀏覽方式: 標題列表 簡短摘要

為了讓大家快速 開發 / 入門 STM32 ,這裡提供了建置完成的工程模板讓大家下載,除了基本的模板外,我還提供了 FreeRTOS 工程模板下載點,對於使用FreeRTOS的開發者來說是一大福音吧!! (原先從一個空白專案要建置 STM32 已經夠累人了,還要建置 FreeRTOS 真的會讓人瘋掉...所以我就來解救大家了...

★ 如果下載點掛了請跟我說 (留言/FB...等等) 我會馬上補檔,如果都沒回大概就是我被小天使手牽手帶到神的住所去了...

STM32-F1 系列:

 型號  下載地址
 STM32F100R8T6   https://www.dropbox.com/s/6w4xr0fm98ywsef/STM32F100R8T6.zip
 STM32F103C8T6   https://www.dropbox.com/s/r40u2nhcff6f890/STM32F103C8T6.zip
 STM32F103RET6  https://www.dropbox.com/s/0xh7ke8nxnnzmwf/STM32F103RET6.zip
 STM32F103ZET6  https://www.dropbox.com/s/geeux9gvj8fm0rt/STM32F103ZET6.zip


STM32-F4 系列:

 型號  下載地址
 STM32F4VGT6   https://www.dropbox.com/s/mg3t6hqgjr5svk2/STM32F407VGT6.zip

 

STM32-F4 系列 (Free RTOS):

 型號   OS 版本   下載地址
 STM32F4VGT6   7.4.0  https://www.dropbox.com/s/4riqqfsg3oqndq0/STM32F407VGT6_FreeRTOS_7_4.zip

 

黃彥霖 發表在 痞客邦 留言(10) 人氣()

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。

執行結果: 輸入 A 之後會自動回傳 ok 訊息

111  

程式碼:

#include "stm32f10x.h"
 
int i;
 

黃彥霖 發表在 痞客邦 留言(0) 人氣()

ADXL345 是一種常見、便宜、簡單、好用的 3 軸加速度計。我這片 ADXL345 模組是我在露天拍賣買的,約台幣 110 元...,比起之前買的 LSM303DLH 就要台幣 6、7 百元要來的便宜多了...Orz

實際接線圖 (右邊小塊板子就是 ADXL345 )

開發板:ST 官方的 STM32VL Discovery
微控制器:STM32F100R8T6 (下面程式碼相容 F100、F103 、F105、F107 等所有 F1 系列)
三軸加速度器:ADXL345

DSC_0157[1]

黃彥霖 發表在 痞客邦 留言(2) 人氣()

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。

執行結果:

5  

程式碼:

#include "stm32f10x.h"
#include "stdio.h"
 
#define I2C_ADDRESS 0x32 // LSM303DLHC I²C 地址

黃彥霖 發表在 痞客邦 留言(3) 人氣()

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。

說明:這篇程式碼有點長~~~,不過可以保證編譯可以通過,PB6=I2C-SCL、PB7=I2C-SDA、PB10=UART-Tx、PB11=UART-Rx,UART 包率為 9600

輸出結果:

A11111  

程式碼:

#include "stm32f10x.h"

黃彥霖 發表在 痞客邦 留言(1) 人氣()

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。

說明:保證編譯可以通過,實際運行後可以正確輸出,祝大家成功

原理:STM32F4 使用 I2C 讀取 TC74 A0 然後再經由 UART 傳送至電腦中查看。

腳位:
        I2C 腳位:PB6 = SCL,PB7 = SDA
        UART 腳位:PC10 = TX,PC11 = RX,(包率 = 9600)

輸出結果:

黃彥霖 發表在 痞客邦 留言(0) 人氣()

★ 可以直接複製貼上到 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) 人氣()

★ 可以直接複製貼上到 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) 人氣()

一般说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

黃彥霖 發表在 痞客邦 留言(1) 人氣()

 時鐘名稱  說明
 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 (系統頻率)。

 

 8e77b7c3-7e9a-45ae-8856-c543524a9958  

 

黃彥霖 發表在 痞客邦 留言(0) 人氣()

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。

#include "stm32f10x.h"

int main(void){
    GPIO_InitTypeDef g; // 宣告 GPIO 結構體

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 啟用 GPIOB 時鐘

    g.GPIO_Pin = GPIO_Pin_0; // 使用 PB0
    g.GPIO_Mode = GPIO_Mode_Out_PP; // 使用推挽式-輸出
    g.GPIO_Speed = GPIO_Speed_50MHz; // GPIO 頻率 50 MHz

黃彥霖 發表在 痞客邦 留言(0) 人氣()

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。

GPIO 定義:

    推挽式輸出:GPIO_Mode_Out_PP
    開漏輸出:   GPIO_Mode_Out_OD
    上拉輸入:   GPIO_Mode_IPU
    下拉輸入:   GPIO_Mode_IPD
    浮空輸入:   Mode_IN_FLOATING

 

 本範例程式會讓 PB5 的 LED 閃爍發光


黃彥霖 發表在 痞客邦 留言(0) 人氣()

STM32 燒錄時 BOOT0 = 1 , BOOT1 = 0

 

 

 

 


黃彥霖 發表在 痞客邦 留言(0) 人氣()