第一章F407建工程所需依賴文件
第二章 新建工程
說明:STM32F4 的主頻最高是 168Mhz,所以我們一般設置 PLLCLK 為 168Mhz(M=8,N=336,P=2),通過 SW 選擇 SYSCLK=PLLCLK即可得到 168Mhz 的系統(tǒng)運行頻率。
第三章分析LED硬件原理圖
第四章 編寫LED驅動代碼
查看數(shù)據(jù)手冊:
Led.c文件代碼如下:
#include "led.h"
/*
函數(shù)功能:LED初始化
硬件連接:
PF8-->BEEP --高電平響
PF9-->LED0 --低電平亮
PF10->LED1 --低電平亮
*/
void LED_Init(void)
{
/*1. 開時鐘*/
RCC->AHB1ENR|=1<<5;//使能PORTF時鐘
/*2. 配置GPIO口模式*/
GPIOF->MODER&=~(0x3<<8*2); //清除模式
GPIOF->MODER|=0x1<<8*2; //配置輸出模式
GPIOF->MODER&=~(0x3<<9*2); //清除模式
GPIOF->MODER|=0x1<<9*2; //配置輸出模式
GPIOF->MODER&=~(0x3<<10*2); //清除模式
GPIOF->MODER|=0x1<<10*2; //配置輸出模式
/*3. 配置GPIO口輸出類型*/
GPIOF->OTYPER&=~(0x1<<8); //0表示推挽輸出
GPIOF->OTYPER&=~(0x1<<9); //0表示推挽輸出
GPIOF->OTYPER&=~(0x1<<10); //0表示推挽輸出
/*4. 配置GPIO口輸出速度*/
GPIOF->OSPEEDR&=~(0x3<<8*2); //清除之前配置
GPIOF->OSPEEDR|=0x2<<8*2; //50MHZ輸出速度
GPIOF->OSPEEDR&=~(0x3<<9*2); //清除之前配置
GPIOF->OSPEEDR|=0x2<<9*2; //50MHZ輸出速度
GPIOF->OSPEEDR&=~(0x3<<8*2); //清除之前配置
GPIOF->OSPEEDR|=0x2<<10*2; //50MHZ輸出速度
/*5. 配置GPIO口輸出默認電平*/
GPIOF->ODR|=1<<10; //輸出1
GPIOF->ODR|=1<<9; //輸出1
GPIOF->ODR&=~(1<<8); //輸出0
}
復制代碼
第五章 編譯代碼 配置下載
第六章 編寫無源蜂鳴器驅動代碼
Delay.c延時函數(shù)代碼
#include "delay.h"
/*
功能 :毫秒級別的延時函數(shù)
參數(shù) :填入延時的時間
返回值:無
說 明:頻率在168MHZ情況下使用
*/
void DelayMs(u32 time)
{
u32 a,b,c;
for(a=0;a;a++)>
Led.c代碼
#include "led.h"
/*
函數(shù)功能:LED初始化
硬件連接:
PF8-->BEEP --高電平響
PF9-->LED0 --低電平亮
PF10->LED1 --低電平亮
*/
void LED_Init(void)
{
/*1. 開時鐘*/
RCC->AHB1ENR|=1<<5;//使能PORTF時鐘
/*2. 配置GPIO口模式*/
GPIOF->MODER&=~(0x3<<8*2); //清除模式
GPIOF->MODER|=0x1<<8*2; //配置輸出模式
GPIOF->MODER&=~(0x3<<9*2); //清除模式
GPIOF->MODER|=0x1<<9*2; //配置輸出模式
GPIOF->MODER&=~(0x3<<10*2); //清除模式
GPIOF->MODER|=0x1<<10*2; //配置輸出模式
/*3. 配置GPIO口輸出類型*/
GPIOF->OTYPER&=~(0x1<<8); //0表示推挽輸出
GPIOF->OTYPER&=~(0x1<<9); //0表示推挽輸出
GPIOF->OTYPER&=~(0x1<<10); //0表示推挽輸出
/*4. 配置GPIO口輸出速度*/
GPIOF->OSPEEDR&=~(0x3<<8*2); //清除之前配置
GPIOF->OSPEEDR|=0x2<<8*2; //50MHZ輸出速度
GPIOF->OSPEEDR&=~(0x3<<9*2); //清除之前配置
GPIOF->OSPEEDR|=0x2<<9*2; //50MHZ輸出速度
GPIOF->OSPEEDR&=~(0x3<<8*2); //清除之前配置
GPIOF->OSPEEDR|=0x2<<10*2; //50MHZ輸出速度
/*5. 配置GPIO口輸出默認電平*/
GPIOF->ODR|=1<<10; //輸出1
GPIOF->ODR|=1<<9; //輸出1
GPIOF->ODR&=~(1<<8); //輸出0
}
/*
1/2000HZ=0.0005s=0.5ms=500us
1/4000HZ=0.25ms
控制蜂鳴器:產(chǎn)生2KHZ~5KHZ的方波即可
*/
void BEEP_Ctlrl(u8 cmd,u32 time)
{
u8 i;
if(cmd) //打開蜂鳴器
{
for(i=0;i;i++)>
Mian.c主函數(shù)代碼
Mian.c主函數(shù)代碼
#include "stm32f4xx.h" // Device header
#include "led.h"
#include "delay.h"
int main(void)
{
u8 i;
LED_Init();
while(1)
{
i=!i;
BEEP_Ctlrl(i,200);
}
}
復制代碼
第七章 LED呼吸燈示例
第七章 LED呼吸燈示例
#include "stm32f4xx.h" // Device header
#include "led.h"
#include "delay.h"
int main(void)
{
u32 i,k=1000;
LED_Init();
while(1)
{
for(i=0;i;i++)>
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
輸出
+關注
關注
0文章
92瀏覽量
21828 -
GPIO
+關注
關注
16文章
1204瀏覽量
52051 -
STM32F407
+關注
關注
15文章
187瀏覽量
29436
發(fā)布評論請先 登錄
相關推薦
STM32F407 GPIO口輸出配置配置步驟
STM32F407ZGT6 是意法半導體(STMicroelectronics)公司推出的一款高性能ARM Cortex-M4核心的32位微控制器(MCU)。它是 STM32F4 系列的一員,具備強大的處理能力和豐富的外設功能,適用于各種應用領域
【STM32F407開發(fā)板用戶手冊】第1章?? 初學STM32F407的準備工作
【STM32F407開發(fā)板用戶手冊】第1章?? 初學STM32F407的準備工作
發(fā)表于 12-04 13:36
?75次下載
【STM32F407開發(fā)板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)
【STM32F407開發(fā)板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)
發(fā)表于 12-04 13:51
?21次下載
【STM32F407開發(fā)板用戶手冊】第19章 STM32F407的GPIO應用之按鍵FIFO
【STM32F407開發(fā)板用戶手冊】第19章 STM32F407的GPIO應用之按鍵FIFO
發(fā)表于 12-05 15:21
?39次下載
STM32F407入門開發(fā): 配置定時器輸出PWM方波
STM32F407的定時器的 TIM6 和 TIM7 是普通定時器,除此之外,其他的定時器都可以用來產(chǎn)生 PWM 輸出。其中高級定時器 TIM1 和 TIM8 可以同時產(chǎn)生多達 7 路的 PWM
STM32F407入門開發(fā): 位帶操作
STM32F407的位帶操作可以實現(xiàn)類似51單片機中寄存器的操作方法,操作GPIO口代碼簡潔方便。 關于位段的操作在Cortex-M3M4權威指南里有詳細描述:
STM32F407入門開發(fā): 串口配置
STM32F407 的串口資源非常豐富,功能也很強勁。 STM32F407 最多可提供 6 路串口,有分數(shù)波特率發(fā)生器、支持同步單線通信和半雙工單線通訊、支持 LIN、 支持調制解調器操作、 智能卡
評論