標題: STM32F407 跑馬燈實驗 [打印本頁]
作者: heicad 時間: 2014-10-24 13:32
標題: STM32F407 跑馬燈實驗


STM32F4系列的GPIO寄存器和F1系列稍有不同,在這里介紹一下各個寄存器和專業名詞。PP:推挽輸出 PP+PU:帶上拉的推挽輸出 PP+PD:帶下拉的推挽輸出 OD:開漏輸出 OD+PU:帶上拉的開漏輸出 OD+PD:帶下拉的開漏輸出Floating :浮空輸入 Analog:模擬輸入 MODER寄存器:設置GPIO模式寄存器,00輸入模式,01輸出模式,10復用模式,11模擬輸入模式。
OTYPER寄存器:設置GPIO類型寄存器,僅在做輸出時使用,0是推挽輸出,1是開漏輸出。
OSPEEDR寄存器:設置GPIO速度寄存器,有四種速度。
PUPDR寄存器:設置上拉下拉寄存器 
設置步驟:
1. 使能GPIO時鐘
2. 設置相應的IO口為輸入或輸出(MODER寄存器)
3. 設置輸入\輸出的類型(OTYPER寄存器)
4. 設置輸出的速度(OSPEEDR寄存器 )
5. 如果輸出速度>=50M,開啟補償單元
6. 設置上拉下拉寄存器(PUPDR寄存器)
7. 通過復位置位寄存器和輸入輸出數據寄存器進行操作。
/*-----------------------------------------------------------------------------------------------------------------------------
實 驗 一: 跑 馬 燈
作 者 : 冰 點
日 期 :2014.2.20
軟 件 平 臺 : M D K 5.05
------------------------------------------------------------------------------------------------------------------------------*/
#include <stm32f4xx.h>
uint32_t Delaytime;
void Delay(int time)
{
Delaytime=time;
while(Delaytime!=0x00);
}
void LED_init(void)
{
RCC->AHB1ENR|=(1<<2);//開GPIOC時鐘
GPIOC->MODER&=0xfffffcfc;
GPIOC->MODER|=0x00000101;//MODER寄存器設置IO作為輸入還是輸出
GPIOC->OTYPER&=~((1<<0)|(1<<4));
GPIOC->OSPEEDR&=0xfffffcfc;
GPIOC->OSPEEDR|=0x00000303;//速度最快
GPIOC->PUPDR&=0xfffffcfc;//無上拉下拉
SYSCFG->CMPCR = 0x00000001; //使用IO補償單元 F2 F4新增功能,速度超過50MHZ時使用
}
void SysTick_Handler(void)
{
if(Delaytime!=0x00)
Delaytime--;
}
int main(void)
{
SystemInit();
SysTick_Config(SystemCoreClock/1000); // 每1ms中斷1次 SystemCoreClock=168MHZ 也就是1S 168M次
/*----------------------------------------------------------------------------------------------------------------------------- 實 驗 一: 跑 馬 燈 作 者 : 冰 點 日 期 :2014.2.20 軟 件 平 臺 : M D K 5.05------------------------------------------------------------------------------------------------------------------------------*/#include <stm32f4xx.h> uint32_t Delaytime;void Delay(int time){ Delaytime=time; while(Delaytime!=0x00); }void LED_init(void){ RCC->AHB1ENR|=(1<<2);//開GPIOC時鐘 GPIOC->MODER&=0xfffffcfc; GPIOC->MODER|=0x00000101;//MODER寄存器設置IO作為輸入還是輸出 GPIOC->OTYPER&=~((1<<0)|(1<<4)); GPIOC->OSPEEDR&=0xfffffcfc; GPIOC->OSPEEDR|=0x00000303;//速度最快 GPIOC->PUPDR&=0xfffffcfc;//無上拉下拉 SYSCFG->CMPCR = 0x00000001; //使用IO補償單元 F2 F4新增功能,速度超過50MHZ時使用} void SysTick_Handler(void){ if(Delaytime!=0x00) Delaytime--;}int main(void){ SystemInit(); SysTick_Config(SystemCoreClock/1000); // 每1ms中斷1次 SystemCoreClock=168MHZ 也就是1S 168M次
在CODE上查看代碼片派生到我的代碼片
LED_init(); // 中斷時間 =168M/1000/168M=0.001S=1ms
LED_init(); // 中斷時間 =168M/1000/168M=0.001S=1ms
[objc] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
while(1)
{
GPIOC->ODR^=((1<<0)|(1<<4));
Delay(1000);
}
作者: wcm_e 時間: 2015-1-12 23:09
有機會試試
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产精品美女www
|
亚洲欧美日韩精品久久亚洲区
|
久久精品国产一区二区电影
|
久久精品国产亚洲
|
国产精品观看
|
中文二区
|
成人一区二区三区
|
精品国产一区二区三区av片
|
天堂国产
|
色综合一区二区
|
成人1区|
精品粉嫩超白一线天av
|
在线欧美视频
|
狠狠躁18三区二区一区
|
激情五月婷婷
|
综合自拍
|
午夜电影网
|
亚洲人在线观看视频
|
又黄又爽的网站
|
在线观看h视频
|
欧洲视频一区
|
国产精品久久久久久久久久久免费看
|
日韩电影中文字幕
|
一区二区三区视频在线观看
|
国产日产欧产精品精品推荐蛮挑
|
中文在线视频
|
欧美日韩专区
|
播放一级毛片
|
国产黄色av网站
|
国产一区二区不卡
|
国产91久久久久久
|
在线免费观看毛片
|
黄色av网站在线观看
|
午夜影院官网
|
国产精品久久毛片av大全日韩
|
国产精品自产拍在线观看蜜
|
国产亚洲精品精品国产亚洲综合
|
成人免费黄视频
|
奇米av|
免费精品视频
|
午夜精品一区二区三区在线观看
|