STM32F407 位带配置步骤 热门看点

2023-07-06 15:14:46 来源:DS小龙哥-嵌入式技术


(资料图片)

介绍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; } } } ​

审核编辑:汤梓红

关键词:

推荐阅读

猜你喜欢

x 广告

Copyright   2015-2022 大西洋中介网版权所有  备案号: 沪ICP备2020036824号-2   联系邮箱: 562 66 29@qq.com