当前位置: 首页 > news >正文

网站一条龙服务墨刀做网站

网站一条龙服务,墨刀做网站,wordpress密码可见,河南建设部网站官网这篇文章将详细介绍 cubeMX外部中断的配置,实现过程。 文章目录 前言一、外部中断的基础知识。二、cubeMX 配置外部中断三、自动生成的代码解析四、代码实现。总结 前言 实验开发板:STM32F103C8T6。所需软件:keil5 , cubeMX 。实…

这篇文章将详细介绍 cubeMX外部中断的配置,实现过程。

文章目录

  • 前言
  • 一、外部中断的基础知识。
  • 二、cubeMX 配置外部中断
  • 三、自动生成的代码解析
  • 四、代码实现。
  • 总结


前言

  • 实验开发板:STM32F103C8T6。
  • 所需软件:keil5 , cubeMX 。
  • 实验目的:外部中断的意义,cubeMX配置和实现 等 。

一、外部中断的基础知识。

对于外部中断的基础知识,可以参考我之前的文章:STM32 EXTI外部中断

二、cubeMX 配置外部中断

  1. 选择芯片。
    在这里插入图片描述
  2. 配置仿真。(如果不配置,程序将无法下载到板子上)
    在这里插入图片描述
  3. 配置系统时钟,选择 HSE , 高速时钟。
    在这里插入图片描述
  4. 设置时钟树,这里直接填写最大频率 72MHZ,然后 enter 双击即可。(系统自动生成相应时钟)
    在这里插入图片描述
  5. 设置工程的名字,路径,以及工具链。
    在这里插入图片描述
  6. 设置自动生成 .c/.h 文件。
    在这里插入图片描述
  7. 选择引脚设置成中断模式。(PA0 接的是按键)
    在这里插入图片描述
  8. 设置上升/下降/双边沿触发,选择是否上拉/下拉 电阻。
    (上拉/下拉 根据具体电路图确定。当电平发生变化时,触发中断,会调用中断回调函数。)
    在这里插入图片描述
  9. 使能中断。在这里插入图片描述
  10. 生成工程。
    在这里插入图片描述

三、自动生成的代码解析

看过我之前文章的应该一眼就能看懂 cubeMX 自动生成的代码。5个步骤,我再来讲解一下。
在这里插入图片描述

  1. 首先定义一个 GPIO_InitTypeDef 的结构体对象。
    可以看到该结构包含了 引脚,工作模式,是否 上拉/下拉 电阻,速度 。通过这个结构体就可以对各个外设进行初始化设置。
    在这里插入图片描述
  2. 第二步 是使能 gpio 端口
    根据外设的GPIO端口来分别使能。(这里按键对应的是 PA0 , 所以使能 GPIOA )
__HAL_RCC_GPIOA_CLK_ENABLE();
  1. 配置引脚。
    就是对我们第一步 创建的结构体进行初始化。
    分别 配置引脚端口号 GPIO_PIN_0 , 设置上升沿触发中断 , 下拉电阻。最后调用 HAL_GPIO_Init( ) 函数初始化 GPIO 。
  GPIO_InitStruct.Pin = GPIO_PIN_0;GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;GPIO_InitStruct.Pull = GPIO_PULLDOWN;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  1. 设置 优先级。
    优先级分为:抢占优先级,子优先级。都是 值越小,优先级越大。即 为0 时,优先级最大。
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);

也可以通过 cubeMX 配置。
在这里插入图片描述

  1. 使能中断。
HAL_NVIC_EnableIRQ(EXTI0_IRQn);

四、代码实现。

当触发中断时,会调用 中断回调函数来进行处理。
所以我们可以在 中断回调函数 中实现想要的功能即可。

/* 中断回调函数  */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
}

注意
我们在工程中编写代码时,尽量在 类似 BEGIN 0END 0 之间写,这样当我们修改 cubeMX 中的配置,再次生成代码时,就不会将之前我们编写的代码清除。

/* USER CODE BEGIN 0 */int count = 0;/*  每按下按键,触发一次中断,count 增加一次 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin == GPIO_PIN_0){count++;}
}/* USER CODE END 0 */

这里的 函数参数是某个引脚,当相应引脚的按键按下时,即执行里面的函数。


总结

下一篇文章为大家介绍如何不使用 cubeMX ,手动写一个外部中断的程序。

http://www.yayakq.cn/news/114181/

相关文章:

  • 网站免费做链接管理系统项目
  • 电子商务网站开发的基本要求项目计划书模板范文 完整版
  • 网站建设 昆山莱芜网上服务
  • 如何创建一个新网站汽车之家电脑网页版
  • 找人做一个网站多少钱网站定位广告
  • 网站目标定位概念超变传奇网站
  • 网站建设门户用asp.net 做网站
  • 京东网站开发费用南通网站建设入门
  • 建设银行官方网站个人系统板块修改做网站用的文本编辑器
  • 做自己的直播网站wordpress文章不收录
  • 北京矿建建设集团有限公司网站个人网站建设 实验报告
  • 一个彩票网站建设网络规划设计师高级证书
  • 太原市城乡建设局网站网站维护推广怎么做
  • 用dw做网站导航的步骤高端移动网站开发
  • mvc网站开发实例教程网站建设与管理教案怎么写
  • 广州网站建设兼职企业法人手机号码查询
  • 网页制作与网站建设实验报告租网络服务器多少钱
  • 福建省建设工程信息网站网站扫码怎么做的
  • wordpress商业网站网站信息化建设总体情况
  • 中山精品网站建设信息wordpress为什么打开商城非常慢
  • 深圳做网站的公司有哪些做足球直播网站
  • 网页设计站点建设实验报告中企动力科技股份有限公司深圳分公司
  • 网站地址免费六安seo报价
  • 建设网站如何进行网站备案国内跨境电商公司排行榜
  • 河南建设工程信息网站郑州高新开发区民政局开标情况室内设计和装修设计
  • 北京网站建设网站改版的费用网站 建设
  • 购买网站做网页游戏北京网站开发工程师
  • 张家港网站推广企业网站制作收费
  • 网站o2owordpress4.8.3中文
  • 常州市新北区建设局网站xml网站模板