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

目前分類:[單晶片] ARM-STM32-F4 (15)

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

 懶得看 FreeRTOS 專案建置方法的人,我已幫大家建置好了 ,這裡提供 STM32F4 Free RTOS 8.0.0 的工程模板 (專案) 下載點:http://lolikitty.pixnet.net/blog/post/167858043


建置方法(教學影片):



建置方法(文字敘述):

階段一:準備好 STM32F4 基本開發環境
( 如果自己已經做好工程模板的話,請直接跳至 階段二 )

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

需要使用 STM32-F4 DMAADC 轉換 可以看這篇:http://lolikitty.pixnet.net/blog/post/145191472

這篇文章只是介紹基本 ADC 轉換,真正在開發應用時建議使用 DMA 來做 ADC 轉換,因為ADC 使用 DMA 效率較高,如此一來 CPU 可以花更多時間做別的事情,就比較不會發生 CPU 使用率滿載的情況。

執行結果:

PrtScr capture  

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
★ 需要 STM32 可編譯的 工程模板 (專案) 可到這裡下載:http://lolikitty.pixnet.net/blog/post/167849664

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

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

這次教學是 [方便使用版]

要 [基本原理版] 請看這篇文章:http://lolikitty.pixnet.net/blog/post/167638569

[方便使用版] 有做一些改良,把輸入變成函式,直接讀取一整行來判斷,
像我下面程式碼這樣寫 : char * [] = My_Usart3_ReadLine()。
有點類似高階語言的寫法,這樣日後會比較好升級維護...(感動)

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

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

這次教學是 [基本原理版] 

要 [方便使用版] 請看這篇文章:http://lolikitty.pixnet.net/blog/post/167837634

執行結果:(輸入 Hello 後面 會 顯示 OK 字串,輸入 Hello 之外 的 字串 將 不會 顯示)

PrtScr capture  

程式碼:

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

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

執行結果:( 手動輸入 A 才會顯示 ok )
 


程式碼:

#include "stm32f4xx.h"
  
void My_Usart3_Printf(char *string){

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

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

說明:這篇程式碼有點長~~~,不過可以保證編譯可以通過,PB6=I2C-SCL、PB7=I2C-SDA、PB10=UART-Tx、PB11=UART-Rx,UART 包率為 9600,祝大家都可以成功 (至少我成功了...哈哈哈)

程式碼:

#include "stm32f4xx.h"
#include "stdio.h"
 
#define DS1307_I2C_ADDRESS 0x68 << 1 // DS1307  I²C 地址
 
int i;

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

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

說明:本篇程式碼是網路上資源東拼拼西拼拼、右剪又貼,所以有點亂,不過程式碼是保證可以運行的。晚點我會再重新寫一篇簡潔的程式碼,敬請期待...哈哈 !!

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

腳位:
        I2C 腳位:PB6 = SCL,PB7 = SDA
        UART 腳位:PC10 = TX,PC11 = RX

程式碼:

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

★ 可以直接複製貼上到 C 語言開發環境中,此程式碼可以直接編譯執行(只要你配置好開發環境與硬體)。
★ 需要 STM32 可編譯的 工程模板 (專案) 可到這裡下載:http://lolikitty.pixnet.net/blog/post/167849664

/*
* 本範例將ADC 轉換結果傳到 USART 的端口
* ACD 腳位:PA3
* UART TX 腳位:PC10
* UART RX 腳位:PC11
*/

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

這篇有點舊了,我最近又寫了一篇新的版本,附帶教學影片,可以搭配看:

http://lolikitty.pixnet.net/blog/post/171226332



 懶得看 FreeRTOS 專案建置方法的人,我已幫大家建置好了 ,這裡提供 STM32F4 Free RTOS 7.4.0 的工程模板 (專案) 下載點:http://lolikitty.pixnet.net/blog/post/167858043

建置方法:
1.
請先到 FreeRTOS 官方網頁下載 FreeRTOS 的 zip 包,目前最新版為 7.4 版

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

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

#include "stm32f4xx.h"
 
int i;
 
void My_Usart3_Printf(char *string){
    while(*string){
        /* 傳送訊息至 USART3 */
        USART_SendData(USART3, (unsigned short int) *string++);
 

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

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

/*
* 名稱:STM32F4 入門:SysTick 系統時鐘
*
* 作者:黃彥霖 
* 來源:http://lolikitty.pixnet.net
*
* 你需要非常精確的定時,請照以下操做:
* 如果你使用外部震盪器為 8 MHz 則請你先檢查(其他頻率同理):
* 1. system_stm32f4xx.c 的 #define PLL_M 等於 8 (預設這是25,你延遲會慢3倍!!)

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

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

#include "stm32f4_discovery.h"
#include "stdio.h"

int main(void)
{
    /* 宣告 -------------------------------------------------------------*/
    NVIC_InitTypeDef NVIC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

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

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

#include "stm32f4xx.h"

int t;

void delay(int t2){
    while(t2--);
}

int main(void){
    /****************************************************************
    * 宣告
    ****************************************************************/

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

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

輸出結果:當用戶按下 PA0 的輸入按鈕時,PD12 的 LED 會發亮

 

# include "stm32f4xx.h"

int main(void){

    GPIO_InitTypeDef g;
    g.GPIO_Pin = GPIO_Pin_12;
    g.GPIO_Mode = GPIO_Mode_OUT;
    g.GPIO_Speed = GPIO_Speed_100MHz;

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

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

// 如果要做切換也可以使用:GPIO_ToggleBits(GPIOD, GPIO_Pin_12);

# include "stm32f4xx.h"

int t = 1000000;

void delay(int t2){
    int i = 0;
    for(; i < t2; i++);
}

int main(void){

    GPIO_InitTypeDef g;

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