江协科技STM32学习笔记

2024/1/21

一.模块化编程      

        1.概述

        就是像一些功能如:LED灯的点亮,蜂鸣器的启动是需要在代码中经常要用到的。但是如果每次都要在程序中进行复写一遍的话就会十分的麻烦,所以将这些代码进行封装再调用的话代码就会变得十分的方便快捷。把各个模块的代码分别放在.c文件中,在.h文件存放函数外部可调用函数声明,在其他的.c文件想要使用其中的代码时,只需要#include"XXX.h"文件即可

预编译往往以#号开头,在真正编译前对代码进行一些处理。

2.具体实现

1.h文件 

#ifndef __XXXX_X    //X一般后面为大写的文件名,此段意思为如果没有定义的话则执行下面语句

#define __XXXX_X   //定义XXXX

#endif //与ifndef对应

2.c文件

        一般写具体的函数实现。

二.中断

1.概述

        中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 

2.具体实现

 基本流程为

1.配置RCC时钟,启用相应的GPIO和AFIO。

EXTI与NVIC的时钟不需要RCC时钟开启

   示例代码:

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

2.配置GPIO口

    GPIO_InitTypeDef GPIO_InitSturcture;
    GPIO_InitSturcture.GPIO_Mode=GPIO_Mode_IPD;
    GPIO_InitSturcture.GPIO_Pin=GPIO_Pin_0 | GPIO_Pin_1;
    GPIO_InitSturcture.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&GPIO_InitSturcture);

3.配置AFIO

AFIO为一个数据选择器,主要是在前面n个GPIO口中挑选一个到EXTI程序中。其代码中为AFIO这四个字母,但是要知道这是配置AFIO的。在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择

    GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0);//为AFIO的初始化程序
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource1);//为AFIO的初始化程序

 GPIO_EXTILineConfig功能为配置AFIO的数据选择器来配置我们想要的中断引脚。

上面代码为配置GPIOB  0号和1号口 

4.配置EXTI

EXTI(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值