STM32学习之路:day2-初始32函数库和外部中断

读写寄存器可以有两种方式:一、直接对寄存器进行配置,二是通过调用库接口对寄存器进行操作。
这里写图片描述
两者相比各有优缺点:
直接配置寄存器的缺点:1、开发速度慢 2、程序可读性差
优点是1、更直观 2、程序运行占用资源少
直接对寄存器的某些位进行置1或清0操作,能清晰看到驱动代码使用了什么寄存器,没有库函数层,省去代码为分层而消耗的资源
库函数开发方式:用结构体封装寄存器参数,用宏表示参数,意义明确,用函数封装对寄存器的操作,代码的易读性提高,使驱动代码的修改变得非常简单
库函数的来源:
这里写图片描述

除了内核cpu是由ARM公司设计之外,其他是由各个芯片厂家进行设计

GPIO相关函数:
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
分别设置引脚序号,速度选择,和输入输出模式选择。
当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz、10MHz和50MHz,这个速度是指I/O口驱动电路的速度,是用来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。
高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。
当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。
配置参数分别定义在枚举类型中:
这里写图片描述
这里写图片描述
这里写图片描述

外部中断:
一、触发方式
STM32的外部中断是通过边沿触发的,不支持电平触发;
二、外部中断分组
STM32的每一个GPIO都能配置成一个外部中断触发源,STM32根据引脚的序号不同将众多中断源分成不同的组,PA0,PB0,PC0,PD0,PE0,PF0,PG0为一组,这样就一共有16组,每一组中同时只能有一个中断触发源工作,最多也就是16个外部中断同时工作。
STM32分组和对应中断处理函数分配:
这里写图片描述

外部中断的配置过程:
这里写图片描述
这里写图片描述

外部中断不能进入的原因:
这里写图片描述

内核中断处理流程:
这里写图片描述

配置外中断的方式也可以直接配置寄存器,也可以利用库函数进行配置。相关的寄存器位操作可以查询STM32技术手册。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值