介紹STM32F407位帶操作方法,設置寄存器的偏移量,實現按GPIO口指定位進行讀寫操作,方便編程。
【1】位帶操作配置說明
**位段操作:實現51單片機中寄存器的操作方法。 **
【2】源代碼
Sys.c文件增加以下代碼:
#include "sys.h"
/*
函數功能:設置NVIC中斷控制器優先級
函數形參:
IRQn_Type IRQn:中斷線
uint32_t PreemptPriority:搶占優先級
uint32_t SubPriority:次優先級
*/
void SetNVICPriorityGrouping(IRQn_Type IRQn,uint32_t PreemptPriority, uint32_t SubPriority)
{
uint32_t Priority;
NVIC_SetPriorityGrouping(NVIC_PriorityGroup_2); //設置優先級分組,每個工程只能設置一次
Priority=NVIC_EncodePriority(NVIC_PriorityGroup_2,PreemptPriority,SubPriority); //編碼優先級
NVIC_SetPriority(IRQn,Priority); //設置優先級
NVIC_EnableIRQ(IRQn);
}
Led.h 增加位帶操作代碼
#define LED0 PFout(9)
#define LED1 PFout(10)
#define BEEP PFout(8)
Key.h增加位帶操作代碼
#define KEY0 PEin(4)
#define KEY1 PEin(3)
#define KEY2 PEin(2)
#define KEY_UP PAin(0)
Main.c示例代碼
#include "stm32f4xx.h" // Device header
#include "led.h"
#include "delay.h"
#include "key.h"
#include "usart.h"
#include "sys.h"
?
int main(void)
{
u8 i,key;
LED_Init();
KEY_Init();
USART1_Init(84,115200);
while(1)
{
key=ScanKeyVal(0);
if(key)
{
i=!i;
LED0=!LED0;
LED1=!LED1;
}
}
}
?
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6035文章
44554瀏覽量
634663 -
寄存器
+關注
關注
31文章
5336瀏覽量
120232 -
51單片機
+關注
關注
274文章
5702瀏覽量
123494 -
GPIO
+關注
關注
16文章
1204瀏覽量
52055 -
STM32F407
+關注
關注
15文章
187瀏覽量
29437
發布評論請先 登錄
相關推薦
STM32F407 DCMI攝像頭源碼
STM32F407 DCMI攝像頭源碼(電源技術存在的問題總結)-【資源描述】:STM32F407 DCMI攝像頭源碼【編程語言】:C語言
發表于 09-16 16:15
?127次下載
STM32F407與STM32F105 CAN通訊失敗的定位解決
STM32F407與STM32F105的CAN通訊失敗問題,經過一系列的測試分析,發現并解決問題,實現正常的CAN通訊。問題的現象STM32F407 板上安裝25MHz晶體,作為HSE時鐘,內部
發表于 12-02 16:51
?18次下載
STM32F407芯片介紹
1. 文檔準備做嵌入式開發的第一步就是了解主芯片,了解STM32F407主要要關注幾個文檔:1. stm32F407芯片手冊2. stm32F407參考手冊3. Arm Cortex-M4數據手冊
發表于 12-04 13:21
?109次下載
【STM32F407開發板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)
【STM32F407開發板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)
發表于 12-04 13:51
?21次下載
評論