学院网站建设管理办法上海申远建筑设计有限公司

web/2025/10/2 2:31:48/文章来源:
学院网站建设管理办法,上海申远建筑设计有限公司,汕头seo关键词,南宁网站seo文章目录 通过外部中断实现按键捕获代码的实现及分析Tip1:函数说明的格式Tip2:如何使用CMSIS的延时GetTick函数原型stm32f407_intr_handle.c解析中断处理函数#xff1a;void EXTI4_IRQHandler 调试流程软件模拟调试 两种代码的比较课后作业: 通过外部中断实现按键捕获代码的实… 文章目录 通过外部中断实现按键捕获代码的实现及分析Tip1:函数说明的格式Tip2:如何使用CMSIS的延时GetTick函数原型stm32f407_intr_handle.c解析中断处理函数void EXTI4_IRQHandler 调试流程软件模拟调试 两种代码的比较课后作业: 通过外部中断实现按键捕获代码的实现及分析 1 代码的流程分析 2 代码的实现 库函数HAL_Init(void)分析 HAL_StatusTypeDef HAL_Init(void) {/* Configure Flash prefetch, Instruction cache, Data cache */ #if (INSTRUCTION_CACHE_ENABLE ! 0U) //0U表示无符号整型 0 1U 表示无符号整型1 ~0U就是对无符号数0取反。__HAL_FLASH_INSTRUCTION_CACHE_ENABLE(); #endif /* INSTRUCTION_CACHE_ENABLE 允许指令缓存*/#if (DATA_CACHE_ENABLE ! 0U)__HAL_FLASH_DATA_CACHE_ENABLE(); #endif /* DATA_CACHE_ENABLE */#if (PREFETCH_ENABLE ! 0U)__HAL_FLASH_PREFETCH_BUFFER_ENABLE(); #endif /* PREFETCH_ENABLE *//* Set Interrupt Group Priority 中断优先级分组*/HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);/* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */HAL_InitTick(TICK_INT_PRIORITY); //初始化系统时钟/* Init the low level hardware 初始化底层硬件堆栈指针*/HAL_MspInit(); //使用HAL_Delay延时/* Return function status */return HAL_OK; }Tip1:函数说明的格式 /**************** *函数名main *函数的描述:通过中断实现按键的捕获 *输入参教: *输出参数: *返回值: *图数作者: *创建时间: *更改说明: *****************/Tip2:如何使用CMSIS的延时 HAL_Delay()系统延时的步骤 它的实现步骤如下 1.用变量获得系统时钟源计数器的值 2.获得要延迟时间的参数值 3.比较两者大小若时钟计数器的值大于要实现延迟的值就会困在循环里反之跳出循环延时完成。 /*** brief此函数提供最小延迟(以毫秒为单位)对变量递增。* note在默认实现中SysTick计时器是基准时间的来源。*它用于在固定的时间间隔生成中断其中uwTick是递增的。这个函数被声明为__weak在其他情况下会被覆盖实现在用户文件。*param Delay指定延迟时间长度单位为毫秒。*retval无*/ __weak void HAL_Delay(uint32_t Delay) {uint32_t tickstart HAL_GetTick(); //获得起始时钟uint32_t wait Delay;/* Add a freq to guarantee minimum wait */if (wait HAL_MAX_DELAY) //#define HAL_MAX_DELAY 0xFFFFFFFFU1111 1111 1111 1111 1111 1111 1111 1111{// HAL_TICK_FREQ_1KHZ 1U,// HAL_TICK_FREQ_DEFAULT HAL_TICK_FREQ_1KHZwait (uint32_t)(uwTickFreq); //作用是给wait加1。HAL_TickFreqTypeDef uwTickFreq HAL_TICK_FREQ_DEFAULT; /* 1KHz */}while((HAL_GetTick() - tickstart) wait) //当前时钟-起始时钟的值小于wait(delay)就重复操作直到计时结束{} }GetTick函数原型 /**调用这个函数是为了增加一个全局变量“uwTick”用作申请时基。 在默认实现中这个变量每1ms增加一次在SysTick ISR。 这个函数被声明为__weak在其他情况下会被覆盖实现在用户文件。 * retval无*/ __weak void HAL_IncTick(void) {uwTick uwTickFreq; }/** * brief提供以毫秒为单位的tick值。 这个函数被声明为__weak在其他情况下会被覆盖实现在用户文件。 retval tick value*/ __weak uint32_t HAL_GetTick(void) {return uwTick; }对于裸机程度没有其他的隐蔽的东西自己好好分析还是可以理清程序运行的细节及时序关系。遵守的原则 1、尽量不要在主程序中使用死等的延时二、每个子程序也可以叫任务吧的查询频率要大于主程序运行的时间。比如ad采样100ms采样一次那么主程序一定要在100ms以内执行完毕。 死等的延时可以是us级别的时序性较高的地方大的延时就使用定时器。 stm32f407_intr_handle.c解析 中断处理函数void EXTI4_IRQHandler 根据startup_stm32f407xx.s中对于handler的描述编写相应的断点处理函数 __Vectors DCD __initial_sp ; Top of StackDCD Reset_Handler ; Reset HandlerDCD NMI_Handler ; NMI HandlerDCD HardFault_Handler ; Hard Fault HandlerDCD MemManage_Handler ; MPU Fault HandlerDCD BusFault_Handler ; Bus Fault HandlerDCD UsageFault_Handler ; Usage Fault HandlerDCD 0 ; ReservedDCD 0 ; ReservedDCD 0 ; ReservedDCD 0 ; ReservedDCD SVC_Handler ; SVCall HandlerDCD DebugMon_Handler ; Debug Monitor HandlerDCD 0 ; ReservedDCD PendSV_Handler ; PendSV HandlerDCD SysTick_Handler ; SysTick Handler执行函数HAL_GPIO_EXTI_IRQHandler(KEY0_PIN)调用stm32f4xx_hal_gpio.c中的void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)函数的定义为 void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) {/* EXTI line interrupt detected *///#define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__) (EXTI-PR (__EXTI_LINE__))//__EXTI_LINE__ specifies the EXTI line flag to check.if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) ! RESET) // RESET 0Ustm32f4xx.h,表明检测到了中断{/*** brief Clears the EXTIs line pending bits.* param __EXTI_LINE__ specifies the EXTI lines to clear.* This parameter can be any combination of GPIO_PIN_x where x can be (0..15)* retval None*/__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);HAL_GPIO_EXTI_Callback(GPIO_Pin);} }回调函数在HAL_GPIO_EXTI_Callback在HAL中未明确实现(弱声明需要自己构造实现函数。 原型为 /*** brief EXTI line detection callbacks.* param GPIO_Pin Specifies the pins connected EXTI line* retval None*/ __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {/* Prevent unused argument(s) compilation warning */UNUSED(GPIO_Pin);/* NOTE: This function Should not be modified, when the callback is needed,the HAL_GPIO_EXTI_Callback could be implemented in the user file*/ }在key.c中对回调函数进行了重写 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if(GPIO_Pin KEY0_PIN) // KEY0_PIN被按下{Led_Ctrl(LED0_PIN_ROW, LED0_PIN, LED_ON); //执行点灯操作} }本节中uint16_t Detect_key(uint16_t key_pin)未使用。 调试流程 在中断处理函数和uwTick自加操作函数处设立中断进行调试 void EXTI4_IRQHandler(void) {HAL_GPIO_EXTI_IRQHandler(KEY0_PIN); }void SysTick_Handler(void) {HAL_IncTick(); //uwTick自加操作 uwTick uwTickFreq;}软件模拟调试 采用软件模拟方式进入调试停在了main函数底下的LED0_Init()函数 运行出现错误*** error 65: access violation at 0x40023830 : no ‘write’ permission 由于没有指定相应的cpu 解决方法 1 新建cpu.ini,写入: map 0x40000000,0x400FFFFF read write2 将cpu.ini添加入debug 两种代码的比较 中断模式对CPu占用率更小等待时间更短减小CPU占有率 课后作业: 1:预习缤程手册关于USART控制器的描述第30章 2:通过中断的方式实现一个程序,要求按下KEY1以后:让LED1间隔0.5S闪烁,并持续5S后关闭,实现代码并在板调试

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

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

相关文章

深圳餐饮网站建设甘肃做网站哪个平台好

一、实验目的 BMCV 提供了一套基于 Sophon AI 芯片优化的机器视觉库,通过利用芯片的 TPU 和 VPP模块,可以完成色彩空间转换、尺度变换、仿射变换、透射变换、线性变换、画框、JPEG 编解码、BASE64 编解码、NMS、排序、特征匹配等操作。 本实验的目的是…

生态旅游网站的建设wordpress菜单无效

在C语言编程的旅程中,你可能会遇到一个令人困惑的情况:使用getchar()函数获取字符时,那讨厌的回车符(\n)又是如何产生和处理的呢?本文将为你揭示这个问题,并分享几种消除回车符困扰的经验。 一…

平泉建设局网站免费网站服务

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 给我们一个矩阵,每次都把每行中的最大元素拿出来删掉,再把每次删除的元素里最大的元素拿出来加到结果里&…

长春一般建一个网站需要多少钱建设网站知乎

转载自 JVM运行时区域详解我们知道的JVM内存区域有:堆和栈,这是一种泛的分法,也是按运行时区域的一种分法,堆是所有线程共享的一块区域,而栈是线程隔离的,每个线程互不共享。 线程不共享区域 每个线程的数据…

企业网站建设的实践意义信息流优化师

1.jQuery对象就是通过jQuery包装DOM对象后产生的对象。2.jQuery对象和DOM对象的相互转换。良好的书写风格&#xff1a;var $input$("input")jQuery获取的对象在变量前面加上$。<1>jQUery对象转成DOM对象,两种方法&#xff1a;[index]和get(index)a:var $cr$(&q…

企业级网站开发需求分析上海网站建设公司推荐排名

长篇小说:我正在为我的函数编程类做一个项目,我想到在Lisp中为Mario AI competition.我正在研究从Java调用LISP代码的框架/库/方式,甚至更好的LISP Java互通信。我看过Jacol但它是旧的,对我来说也不是很好。到目前为止,我的最佳选择是:Jatha.它真的很整洁,虽然一些Lisp构造还没…

朋友圈网站广告怎么做挂网站需要什么服务器

C之单例模式 前言介绍1、单例模式是什么&#xff1f;1.1 实现单例模式的三个要点1.2 单例模式分类 2. 懒汉式2.1 懒汉实现&#xff1a;基础方法2.2 懒汉实现&#xff1a;基于单锁2.3 懒汉实现&#xff1a;基于双重检测锁2.4 懒汉实现&#xff1a;基于双重检测锁和资源管理2.4.1…

做防水怎么注册网站高校网站建设情况报告范文

03:10 按照视频里的顺序 我们从第6个网站开始倒数 点击本行文字或下方链接 进入查看 6大网站地址 网址查看链接&#xff1a; http://www.uzing.net/community_show-1962-48-48-35.html 06 Tectures Wood Fence 001 | 3D TEXTURES 简介&#xff1a;最大的纹理网站之一&#x…

通州建设局网站网站开发语言入门

Nodejs简介 Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具&#xff01; &#xff08; 运行环境&#xff0c;是不是很熟悉&#xff0c;对。就是 java JRE&#xff0c;Java 运行时环境&#xff09; Node.js 在浏览器之外运行 V8 Java…

网站建设赶集网wordpress免费自定义模板装修教程

PID算法的通俗讲解 PID算法的江湖地位&#xff1f; PID算法在控制领域是非常常见的算法&#xff0c;小到控制温度&#xff0c;大到控制飞机的飞行姿态&#xff0c;基本上算是在控制领域万能的算法。 关于PID算法的生活小故事&#xff1a; 假设一辆慢点量的车&#xff0c;跑着跑…

门户网站的区别新年祝福语在线制作网站

一. 准备工作1.下载安装sts(springsource推荐使用), 毕竟人家的框架用他自家的ide是最好的,当然sts也是基本eclipse的, 下载地址: http://www.springsource.org/downloads/sts-ggts2.下载安装gradle, spring 源码构建加入了gradle支持. gradle下载: http://www.gradle.org/down…

中国城乡建中国城乡建设部网站sem和seo是什么

文章目录 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ Orange Pi AIpro开发板相关介绍1.1 &#x1f393; 核心配置1.2 ✨开发板接口详情图1.3 ⭐️开箱展示 二、2️⃣配置开发板详细教程2.1 &#x1f393; 烧录镜像系统2.2 ✨配置网络2.3 ⭐️使用SSH连接主板 三、…

怎么做车载mp3下载网站网站备案可以更改吗

作为风变推出的python课程的一名学员&#xff0c;很幸运能与风变相遇&#xff0c;更庆幸自己选择学习python&#xff0c;我学习的是python基础课程和爬虫精进课程&#xff0c;目前已经学完了python基础课程&#xff0c;不得不说对我的感触很深&#xff0c;非常想要继续学下去&a…

网站开发用什么电脑wordpress 加ico

这是开博的第一篇&#xff0c;还要废话一下。我写的很多内容都是网上找资料然后自己总结出来的&#xff0c;原出处已经很难找到了&#xff0c;所以不会标出引用的内容。如果侵犯到您的版权&#xff0c;请和我联系&#xff0c;我会删改相关的内容。 cloudblob 是azure blob的一个…

企业网站建设 阿里云湖南响应式网站方案

目录 1.解决雪崩的方式有4种&#xff1a; 1.1.2超时处理&#xff1a; 1.1.3仓壁模式 1.1.4.断路器 1.1.5.限流 1.1.6.总结 1.2.服务保护技术对比 1.3.Sentinel介绍和安装 1.3.1.初识Sentinel 1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制 2.1.簇点链路 …

东莞seo建站公司大连建设网查询水电费

IC认证是什么&#xff1f; IC是加拿大工业部Industry Canada的简称&#xff0c;作为政府机构&#xff0c;负责电子电器产品进入加拿大市场的认证事务。与美国的FCC相似&#xff0c;IC目前只在电磁干扰上做限制。一般规定&#xff1a;仅限制EMI&#xff0c;认证方式也与FCC相同…

建设银行网站维护淮南市住房与城乡建设部网站

Deep Knowledge-Aware Network for News Recommendation 类别&#xff1a;依次学习 首先使用知识图谱特征学习得到实体向量和关系向量&#xff0c;然后将这些低维向量引入推荐系统&#xff0c;学习得到用户向量和物品向量。 [论文下载链接]https://arxiv.org/abs/1801.08284…

正规的常州网站推广济南百度竞价开户

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

响应式企业展示型网站长春网站排名优化公司

1.jmeter的并发执行 并发执行&#xff1a;多个线程同时执行&#xff0c;不能确定谁先结束 以上案例中http请求里面没有写任何内容&#xff0c;只是为了看这个并发执行的效果 2.jmeter的顺序执行 顺序执行&#xff1a;多个线程顺序执行 再测试计划中勾选“独立运行每个线程组…

郑州网站建设与制作wordpress友情链接激活

Vue2.0 介绍 :::warning 注意 在学习 Vue 之前建议你已经学会了 HTML5、CSS3、Javascript、ES6、ESLint、Webpack、Sass、前端工程化等基础。否则你学习起来可能会有点吃力。 ::: 在我们传统模式中&#xff0c;都是通过 HTML5、CSS3、JavaScript 进行页面开发&#xff0c;但是…