0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F407 位带配置步骤

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2023-07-06 14:30 次阅读

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620830
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117719
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120700
  • GPIO
    +关注

    关注

    16

    文章

    1133

    浏览量

    50570
  • STM32F407
    +关注

    关注

    15

    文章

    187

    浏览量

    28973
收藏 人收藏

    评论

    相关推荐

    STM32F407 GPIO口输入配置配置步骤

    介绍STM32F407新建寄存器工程流程,介绍输入模式的配置方式,以按键为例完成按键输入检测。
    的头像 发表于 07-06 14:28 1273次阅读
    <b class='flag-5'>STM32F407</b> GPIO口输入<b class='flag-5'>配置</b><b class='flag-5'>配置</b><b class='flag-5'>步骤</b>

    STM32F407 串口配置步骤

    介绍STM32F407串口配置步骤,完成串口的数据发送与接收、实现中断接收,支持printf重定向。
    的头像 发表于 07-06 14:29 1886次阅读
    <b class='flag-5'>STM32F407</b> 串口<b class='flag-5'>配置</b><b class='flag-5'>步骤</b>

    STM32F407 外部中断配置步骤

    介绍STM32F407外部中断配置步骤,以按键为例,实现外部中断配置,使用按键触发中断进行LED灯控制。
    的头像 发表于 07-06 14:31 1027次阅读
    <b class='flag-5'>STM32F407</b> 外部中断<b class='flag-5'>配置</b><b class='flag-5'>步骤</b>

    STM32F407时钟配置学习

    STM32F407时钟配置学习。
    发表于 08-04 07:14

    如何对STM32F407 SPI模块进行配置

    STM32F407硬件SPI口的初始化过程是怎样的?如何对STM32F407 SPI模块进行配置
    发表于 10-15 09:27

    stm32f407输出pwm波的配置步骤有哪些

    什么是脉冲宽度调制?stm32f407输出pwm波的配置步骤有哪些?
    发表于 10-25 07:15

    STM32F407 HAL库的按键中断配置步骤有哪些

    STM32F407 HAL库的中断管理是什么?STM32F407 HAL库的按键中断配置步骤有哪些?
    发表于 11-05 06:03

    STM32F407外部中断的一般配置步骤有哪些

    STM32F407把中断分为几个组呢?STM32F407外部中断的一般配置步骤有哪些?
    发表于 11-16 07:14

    STM32F407串口编程步骤是怎样的?

    STM32F407串口编程步骤是怎样的?
    发表于 12-13 06:12

    STM32F407的DAM输出配置有哪些步骤

    STM32F407的DAM输出配置有哪些步骤呢?怎样去实现其代码呢?
    发表于 01-25 07:22

    STM32F407的串口UART 基础配置STM32CubeMX

    STM32F407的串口UART 基础配置STM32CubeMX
    发表于 11-29 16:06 51次下载
    <b class='flag-5'>STM32F407</b>的串口UART 基础<b class='flag-5'>配置</b><b class='flag-5'>STM32</b>CubeMX

    STM32F407开发板用户手册】第1章   初学STM32F407的准备工作

    STM32F407开发板用户手册】第1章   初学STM32F407的准备工作
    发表于 12-04 13:36 73次下载
    【<b class='flag-5'>STM32F407</b>开发板用户手册】第1章   初学<b class='flag-5'>STM32F407</b>的准备工作

    STM32F407开发板用户手册】第21章 STM32F407的NVIC中断分组和配置(重要)

    STM32F407开发板用户手册】第21章 STM32F407的NVIC中断分组和配置(重要)
    发表于 12-04 13:51 20次下载
    【<b class='flag-5'>STM32F407</b>开发板用户手册】第21章 <b class='flag-5'>STM32F407</b>的NVIC中断分组和<b class='flag-5'>配置</b>(重要)

    STM32F407开发板用户手册】第8章 STM32F407的终极调试组件Event Recorder

    STM32F407开发板用户手册】第8章 STM32F407的终极调试组件Event Recorder
    发表于 12-04 14:21 17次下载
    【<b class='flag-5'>STM32F407</b>开发板用户手册】第8章 <b class='flag-5'>STM32F407</b>的终极调试组件Event Recorder

    stm32f407原理图

    stm32f407原理图
    发表于 07-14 16:07 168次下载