找人做网站产生纠纷算诈骗吗/网络营销的四个特点

找人做网站产生纠纷算诈骗吗,网络营销的四个特点,江阴做网站哪家好,做网站前端后端ui什么意思在STM32标准外设库(SPL)开发中,外设中断的处理流程通常如下: 一、标准库外设中断处理流程 (1)使能外设时钟 在使用任何外设之前,都必须打开外设的时钟。例如,使用USART1的中断&…

在STM32标准外设库(SPL)开发中,外设中断的处理流程通常如下:


一、标准库外设中断处理流程

(1)使能外设时钟

在使用任何外设之前,都必须打开外设的时钟。例如,使用USART1的中断,需先开启USART1和GPIO的时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);

(2)配置GPIO引脚模式(若需要)

外设的中断功能通常和GPIO引脚关联,例如USART引脚需要配置为复用功能模式:

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;              // TX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        // 复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;             // RX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  // 浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure);

(3)配置外设参数并打开外设中断

使用标准库提供的外设初始化结构,配置外设参数并使能中断。例如,USART接收中断:

USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);// 使能USART接收中断
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);// 使能USART外设
USART_Cmd(USART1, ENABLE);

(4)配置NVIC中断控制器

STM32的中断是由NVIC(Nested Vectored Interrupt Controller)统一管理的,因此要在NVIC中设置中断优先级并使能该中断:

NVIC_InitTypeDef NVIC_InitStructure;// 配置中断分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);// 配置USART1中断通道
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;           // USART1中断向量
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;   // 抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;          // 子优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;             // 中断使能
NVIC_Init(&NVIC_InitStructure);

(5)编写中断服务函数(ISR)

在标准库开发中,用户需要自己在main.c或者自定义文件中定义中断服务函数:

注意:ISR函数名必须和启动文件中定义的向量表名称一致。以USART1为例:

void USART1_IRQHandler(void) 
{if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) // 检测接收中断标志{uint16_t data = USART_ReceiveData(USART1); // 读取接收到的数据// 用户处理代码,例如保存数据或发送给其他任务USART_ClearITPendingBit(USART1, USART_IT_RXNE); // 清除中断标志}
}

二、完整的外设中断处理流程总结

标准库外设中断处理的完整流程可总结为:

  1. 使能外设和GPIO时钟RCC_APB2PeriphClockCmd()
  2. 配置GPIOGPIO_Init()
  3. 外设参数设置并使能外设中断 → 外设初始化函数,如USART_Init()USART_ITConfig()
  4. NVIC中断控制器配置NVIC_Init()
  5. 编写对应的中断服务函数(ISR) → 用户自行定义IRQHandler函数并处理对应的中断标志

三、注意事项:

  • 一定要确保中断服务函数(如USART1_IRQHandler())函数名与启动文件的中断向量表完全一致,否则中断无法进入。
  • 在ISR函数中,及时清除中断标志位,否则中断会反复进入(死循环)。
  • ISR中尽量简短高效,不要进行耗时操作,可用标志位或者缓冲区传递数据给主程序处理。

以上为STM32标准外设库(SPL)外设中断的标准处理流程,开发时可遵循该流程确保中断功能正常稳定运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】-计算机网络期末复习题复习资料

一、计算机网络体系结构(800字) 1. OSI参考模型 七层结构:物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 各层核心功能: 物理层:比特流传输(如RJ45、光纤接口) 数据链路层&…

31天Python入门——第9天:再学函数

你好,我是安然无虞。 文章目录 再学函数1. 变量在函数中的作用域2. 函数的参数传递.补充学习: 不定长参数*args和**kwargs 3. 值传递和引用传递补充学习: 把函数作为参数传递 4. 匿名函数5. python中内置的常用函数zip()map()filter()all()any() 6. 函数练习 再学函…

EasyUI数据表格中嵌入下拉框

效果 代码 $(function () {// 标记当前正在编辑的行var editorIndex -1;var data [{code: 1,name: 1,price: 1,status: 0},{code: 2,name: 2,price: 2,status: 1}]$(#dg).datagrid({data: data,onDblClickCell:function (index, field, value) {var dg $(this);if(field ! …

【C语言】多进程/多线程

【C语言】多进程/多线程 参考链接多进程/多线程服务器1. 多进程服务器2. 多线程服务器 结语参考链接 参考链接 c 中文网 菜鸟 c 多进程/多线程服务器 多进程和多线程是常用的并发编程技术。它们都允许程序同时执行多个任务,提高了系统的资源利用率和程序的运行效率…

mysql 磐维(opengauss)tidb误删数据之高级恢复

Mysql参考: Mysql 8.0 XtraBackupMysqlbinlog 完全恢复 - 墨天轮 Mysql 8.0 XtraBackupMysqlbinlog 完全恢复[TOC]# 一、安装mysql 8.0.19## 1.1https://www.modb.pro/db/509223MySQL 的全量备份、增量备份与 Binlog 时间点恢复_mysqlbinlog自动备份吗-CSDN博客文章…

3. 轴指令(omron 机器自动化控制器)——>MC_SetPosition

机器自动化控制器——第三章 轴指令 11 MC_SetPosition变量▶输入变量▶输出变量▶输入输出变量 功能说明▶时序图▶重启动运动指令▶多重启运动指令▶异常 MC_SetPosition 将轴的指令当前位置和反馈当前位置变更为任意值。 指令名称FB/FUN图形表现ST表现MC_SetPosition当前位…

MySQL面试专题

1.什么是BufferPool? Buffer Pool基本概念 Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由缓存数据页(Page) 和 对缓存数据页进行描述的控制块 组成, 控制…

调用百度api实现语音识别(python)

该代码实现了一个企业级的语音识别解决方案,通过调用百度语音识别API,实现实时录音识别和对已有音频语音识别功能。 百度智能云:请自行访问百度智能云,开通免费的语音识别功能,获取API_KEY和SECRET_KEY。操作按照百度流程即可,可免费申请。 首先,配置下百度API和描述下错…

KRaft模式

目录标题 Kraft模式**1. 什么是Kraft模式?****2. 为什么引入Kraft模式?****3. 核心优势****4. 架构与工作原理****5. 部署与配置要点****6. 适用场景与最佳实践****总结**KIP-833: Mark KRaft as Production Ready除了Kraft模式,Kafka还有以下…

常见框架漏洞之一:Thinkphp5x

ThinkPHP是为了简化企业级应⽤开发和敏捷WEB应⽤开发⽽诞⽣的,是⼀个快速、兼容⽽且简单的轻量级国产PHP开发框架,诞⽣于2006年初,原名FCS,2007年元旦正式更名为 ThinkPHP,遵循Apache2开源协议发布,从Stru…

2025年优化算法:龙卷风优化算法(Tornado optimizer with Coriolis force,TOC)

龙卷风优化算法(Tornado optimizer with Coriolis force)是发表在中科院二区期刊“ARTIFICIAL INTELLIGENCE REVIEW”(IF:11.7)的2025年智能优化算法 01.引言 当自然界的狂暴之力,化身数字世界的智慧引擎&…

Mysql表的简单操作

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 3.1 创建表 3.2 查看表结构 3.3 修改表 1. 添加字段 2. 修改字段 3…

【云馨AI-大模型】自动化部署Dify 1.1.2,无需科学上网,Linux环境轻松实现,附Docker离线安装等

Dify介绍 官网:https://dify.ai/zh生成式 AI 应用创新引擎开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。 Dify安装脚本 目录创建 mkdir -p /data/yunxinai &&a…

人脸表情识别系统分享(基于深度学习+OpenCV+PyQt5)

最近终于把毕业大论文忙完了,众所周知硕士大论文需要有三个工作点,表情识别领域的第三个工作点一般是做一个表情识别系统出来,如下图所示。 这里分享一下这个表情识别系统: 采用 深度学习OpenCVPyQt5 构建,主要功能包…

GitHub供应链攻击事件:Coinbase遭袭,218个仓库暴露,CI/CD密钥泄露

此次供应链攻击涉及GitHub Action "tj-actions/changed-files",最初是针对Coinbase的一个开源项目的高度定向攻击,随后演变为范围更广的威胁。 攻击过程与影响 Palo Alto Networks Unit 42在一份报告中指出:“攻击载荷主要针对其…

GZCTF平台搭建及题目上传

前言 我用手里的Ubuntu虚拟机搭建的,大家根据自己的实际情况来吧 安装及部署 首先,你的虚拟机需要有Docker和Docker-Compose,前者可以看我之前的文章,另外一个可以输入下面的命令安装,注意先获取管理员权限&#xff…

Pycharm社区版创建Flask项目详解

一、创建工程项目 二、配置工程目录 新建的空项目下创建目录。 1、新建app.py文件 2、app.py代码如下: from flask import Flask, render_templateapp Flask(__name__)app.route("/") def root():"""主页:return: Index.html"&qu…

运动仿真——phased.Platform

在雷达仿真过程中,运动仿真的必要性,以及运动仿真可以实现哪些功能,在matlab对应的user guide中已经讲的很清楚了,这里不再赘述。 本文主要介绍phased.Platform的一些“坑”,和典型的用法。 第一坑:系统对…

缓存删除三级补偿方案:延迟队列+消息队列+定时任务兜底

问题背景: 在 Cache-Aside 模式中,更新数据库后删除缓存失败会导致数据不一致。本文提供工业级三级补偿方案,实现最终一致性保障。 整体架构: 更新操作触发 → 一级延迟队列 → 二级消息队列 → 三级定时任务方案实现: 一、第一级补偿:延迟队…

C++题目

1、内存管理 1.内存模型 栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。 堆:就是那些由new分配的内存块,其释放由程序员控制(一个new对应一个delete&#xff09…