网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

STM32F407 位带配置步骤

时间:2023-07-06 14:30

人气:

作者:admin

标签:

导读:介绍STM32F407位带操作方法,设置寄存器的偏移量,实现按GPIO口指定位进行读写操作,方便编程。...

介绍STM32F407位带操作方法,设置寄存器的偏移量,实现按GPIO口指定位进行读写操作,方便编程。

【1】位带操作配置说明

**位段操作:实现51单片机中寄存器的操作方法。 **

img

img

img

img

【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;
 }
 }
 }
 ​

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信