首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

03-HAL库GPIO输入与多功能按键实现

、GPIOE14和GPIOE10,连接方式采用的是低电平有效,也即是,按键按下之后,MCU检测到的电平为低电平,松开之后检测为高电平,外部拉电阻4.7K 接下来,我们只需要在cubemx对这3个...: 接下来依然是对GPIO的模式、配置进行修改,这里需要注意一点就是GPIO的上下拉配置,不要瞎选,这个一定是跟硬件相关的,比如本次硬件设计,空闲时是保持高电平的,那么配置拉是比较合适的,但是呢,此时外部已经有了拉电阻...,选择最为合适的配置 配置比较简单,我们此次采用的是轮询获取GPIO状态的方法来实现按键,当然也可以采用外部中断的方式,对于普通按键来讲,不是很有必要,轮询GPIO状态即可 HAL库GPIO输入模式操作详解与结构介绍...,包括弹起和按下两种事件 */ #define CONTINUOS_TRIGGER 0 //是否支持连续触发,连发的话就不要检测单双击与长按了 /* 是否支持单击&双击同时存在触发...,如果选择开启宏定义的话,单双击都回调,只不过单击会延迟响应, 因为必须判断单击之后是否触发了双击否则,延迟时间是双击间隔时间 BUTTON_DOUBLE_TIME。

84920

【Java 进阶篇】JavaScript 与 HTML 的结合方式

1.2 外部文件方式 为了更好地组织代码并提高可维护性,你可以将JavaScript代码保存在外部文件中,并在HTML中引入这些文件。这样可以将JavaScript代码与HTML分离,使代码更清晰。...1.3 异步和延迟加载 可以通过添加async或defer属性来改变脚本的加载方式: async:脚本将异步加载,不会阻止HTML解析。脚本将在下载完成后立即执行,不保证执行顺序。...事件处理使你能够对用户在网页的交互作出响应。以下是一些常见的HTML事件: onclick:单击(或触摸)元素时触发。 onmouseover:鼠标悬停在元素时触发。...你可以使用内联方式外部文件方式添加事件处理程序。以下是一个使用内联方式的示例: <!...你也可以使用外部文件方式添加事件处理程序,这样代码更容易维护: index.html: <!

47740
您找到你想要的搜索结果了吗?
是的
没有找到

博途多用户操作

本地会话中,相应的工程师可以添加更改,然后将其入到多用户服务器项目进行发布,入后,本地会话中所做的更改将再次提供给服务器项目中的所有工程师。...,还可以入前选择是否进行编译,编译方式可选择“设备软件(仅更改)”或是“标记的对象(仅更改)”, 为了记录更改状态,可以注释栏输入所做的更改情况,单击 “开始入” 按钮进行检入,如果有冲突对象需要确认是否继续入...入对象表2.工具栏图标 如果在入界面勾选 “显示服务器项目视图” 选项,单击 “开始入” 按钮后会打开服务器项目视图,可以对本次入操作进行选择,“放弃更改”可以取消这次入操作,“保存更改”...服务器项目视图 入完成后会提示是否保留标记或是保留本地会话,单击确定完成入。成功签入服务器项目的内容后,本地会话将被刷新并打开,如下图 21 所示。...调试编辑器 调试编辑器中,用户将收到有关用户需要采取哪些操作或决策的更多信息,系统将提示用户解决服务器项目视图中的错误或警告,通过勾选 “Continue” 并选择应用来继续执行下载,还可以通过取消按钮来撤销下载请求

5.3K21

【全栈修炼】414- CORS和CSRF修炼宝典

用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另一方面,JSONP 可以不支持 CORS 的老旧浏览器运作。...非简单请求发出 CORS 请求时,会在正式通信之前增加一次 “预”请求(OPTIONS方法),来询问服务器,本次请求的域名是否许可名单中,以及使用哪些头信息。...当预请求通过以后,响应头中,会返回 Access-Control-Allow- 开头的信息,其中 Access-Control-Allow-Origin 表示许可范围,值也可以是 *。...3.1 Cookie Hashing(所有表单都包含同一个伪随机数) 最简单有效方式,因为攻击者理论无法获取第三方的Cookie,所以表单数据伪造失败。 php 代码为例: <?...3.4 方法4:内容安全策略(CSP) 内容安全策略(Content Security Policy,CSP),实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,大大增强了网页的安全性

2.7K40

了解 JavaScript 中的回调函数

使用 JavaScript 时,我们经常会遇到需要多花一段时间才能完成的任务。这些任务可能是从外部源获取数据、处理大型数据集或处理用户交互。...处理异步操作 异步操作是指不一定线性同步方式执行的任务。相反,它们在后台运行,允许其他操作继续进行,而无需等待当前任务完成。...事件是系统或 HTML 文档中发生的操作或事件,如鼠标点击、按键或页面加载。使用回调函数,我们可以定义事件发生时应执行的特定操作。...示例2:处理点击事件 假设我们想要在每次单击网页的按钮时记录一条消息。我们可以使用回调函数来处理点击事件。...因此,我们有必要研究像promises, async/await 等现代替代方法,简化异步编程并创建更可读、更易管理的代码。

20730

TIA Portal 中使用因果矩阵编程

配置完成后,单击“确定”创建块。 创建 Conveyor_Control 块 块被创建并且因果矩阵编辑器打开。您可以看到顶行包含结果,左列包含原因。块接口与任何其他编程语言创建的块的接口相同。...当系统启用时,传送带可以运行。输送机可以两种模式运行;自动和手动。该模式由操作员通过钥匙开关选择。 自动模式下,输送机反向运行,直到它检测到载物台处于装载位置。...要启用/禁用系统,我们需要两个原因; 第一个原因使用 AND 逻辑来确定是否按下启用按钮并且系统未启用。 第二个原因使用 AND 逻辑来确定是否按下启用按钮并启用系统。...在这种情况下,指令将是块的 o_CNV_Enabled 输出上执行的赋值运算符 ('=')。 定义效果 现在,我们必须定义因果关系。您可以通过单击因果之间的交叉方块来完成此操作。...禁用关系 使用手动控制探索行动组 本节中,我们将对输送机的手动控制进行编程,并学习如何创建动作组,合乎逻辑的方式将原因联系在一起。 首先,让我们将所需的原因添加到我们的程序中。

1.7K20

未分配的磁盘怎么还原回去_硬盘突然未初始化

初始化存储设备(非常类似于格式化过程)是一种擦除驱动器的数据并允许其以前不使用时可以再次使用的方法。要进行初始化,可以通过将其分为两个步骤来准备外部硬盘接受数据。...首先是分区: 通过驱动器创建分区,它可以执行特定的任务: 1.它提供了MBR和GPT风格硬盘驱动器的特定位置创建分区表。 2.通过初始化过程,最多可以形成四个不同的MBR分区。...如果电源线出现问题,系统的BIOS将无法检测到硬盘驱动器。...用户可以按照以下步骤执行此快速修复。 开始此过程之前,请确保关闭所有程序。 打开开始菜单,然后单击重新启动。 完成上述解决方案后,尝试将设备插入PC,并检查是否可以访问驱动器的文件。...3.恢复丢失的数据: 也可以预览恢复的文件,检查恢复的数据是否已损坏。 查看数据后可以选择文件并通过单击“恢复”来检索它们。

4.2K10

前端系列第2集-如何让事件先冒泡后获取?

例如,如果有一个包含多个按钮的列表,并且希望单击每个按钮时执行相同的操作,可以单击事件监听器添加到列表元素,并使用事件对象来获取单击的按钮。...}); 在这个例子中,我们使用 setTimeout() 将事件处理程序延迟了 0 毫秒,确保它以稍微延迟的方式执行。...); 在这个例子中,我们将单击事件监听器添加到 myList 元素,并使用 if 语句检查被单击的元素是否为按钮。...由于事件冒泡会在整个文档中传播,因此父元素添加事件监听器可以确保事件先冒泡后获取。 使用 setTimeout():将事件处理程序延迟一小段时间再执行确保事件有时间传播到父元素。...由于事件冒泡是异步方式下完成的,因此使用 setTimeout() 函数可以确保事件先冒泡后获取。 实际应用中,可以根据需要选择其中任何一种方法,确保事件先冒泡后获取。

15720

深入探索嵌入式系统开发:从LED控制到物联网集成

准备工作开始之前,确保具备以下工具和知识:嵌入式开发板或仿真器:可以使用一块支持C语言编程的嵌入式开发板或仿真器。这里我们将假设有一个支持的平台。...如果检测到按键按下,我们会切换LED的状态,并在按键释放前等待。中断处理嵌入式系统中,中断是一种重要的机制,用于及时响应外部事件,例如按键输入、传感器信号等。...主循环中,可以执行其他的工作,而中断处理函数会在中断发生时被调用。低功耗模式嵌入式系统中,管理功耗是一个重要的问题。通过将系统置于低功耗模式,可以最大限度地延长电池寿命或节省能源。...由于嵌入式系统通常没有屏幕和键盘,需要使用调试工具、串口通信等方式来获取和输出调试信息。确保代码各种情况下都能正常工作,并注意处理可能的错误情况。...交叉编译和工具链嵌入式系统通常在不同的硬件架构运行,因此需要使用交叉编译工具链来生成适用于目标平台的可执行文件。了解如何配置和使用交叉编译工具链是进行嵌入式开发的关键。

24110

【全栈修炼】CORS和CSRF修炼宝典

用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另一方面,JSONP 可以不支持 CORS 的老旧浏览器运作。...非简单请求发出 CORS 请求时,会在正式通信之前增加一次 **“预”请求(OPTIONS方法)**,来询问服务器,本次请求的域名是否许可名单中,以及使用哪些头信息。...**通过**以后,响应头中,会返回 `Access-Control-Allow-` 开头的信息,其中 `Access-Control-Allow-Origin` 表示许可范围,值也可以是 `*`。...#### 3.2 验证码 思路是:每次用户提交都需要用户表单中填写一个图片的随机字符串,这个方案可以完全解决CSRF,但易用性差,并且验证码图片的使用涉及 MHTML 的Bug,可能在某些版本的微软...Content Security Policy,CSP)](http://www.ruanyifeng.com/blog/2016/09/csp.html),实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行

1.7K00

关于“Python”的核心知识点整理大全38

14.1.1 创建 Button 类 由于Pygame没有内置创建按钮的方法,我们创建一个Button类,用于创建带标签的实心矩形。 你可以游戏中使用这些代码来创建任何按钮。...14.1.3 开始游戏 为玩家单击Play按钮时开始新游戏,需game_functions.py中添加如下代码,监视与这 个按钮相关的鼠标事件: game_functions.py def...我们将使用stats 来访问标志game_active,并使用play_button来检查玩家是否单击了Play按钮。...无论玩家单击屏幕的什么地方,Pygame都将检测到一个MOUSEBUTTONDOWN事件(见1),但我 们只想让这个游戏玩家用鼠标单击Play按钮时作出响应。...我们将这些值传递 给函数check_play_button()(见3),而这个函数使用collidepoint()检查鼠标单击位置是否 Play按钮的rect内(见4)。

11810

Angular Change Detection 的学习笔记

Angular 可以测到组件数据何时发生变化,然后自动重新渲染视图反映该变化。但是,单击按钮这样的低级事件之后,它怎么能做到这一点,这可能发生在页面的任何地方?...要理解这是如何工作的,我们需要首先意识到 Javascript 中整个运行时(runtime)设计是可重载的。如果我们愿意,我们可以重载 String 或者 Number 这些原生函数。...区域只不过是多个 Javascript VM 执行轮次中幸存下来的执行上下文。这是一种通用机制,我们可以使用它向浏览器添加额外的功能。...Angular 变更检测的重要特性之一是,与 AngularJs 不同,它强制执行单向数据流:当我们的控制器类的数据更新时,变更检测会运行并更新视图。 但是,视图的更新本身不会触发进一步的更改。...Angular 默认更改检测机制实际与 AngularJs 非常相似:它比较浏览器事件前后模板表达式的值,查看是否发生了变化。它对所有组件都这样做。

4.4K30

如何检查 Mac 的内存是否有问题?

概览选项卡,内存行列出了 GB 为单位的 RAM 量、 MHz 为单位的 RAM 速度以及您当前使用的双倍数据速率 (DDR) 的生成。...您还可以使用它来找出哪些应用程序正在使用您的可用内存,以及它们使用了多少内存。 启动活动监视器并单击内存选项卡。然后,按降序对Memory列进行排序查看顶部使用最多内存的进程。...如果您看到“kernel_task”使用了大量内存,请不要担心,这通常只是操作系统在后台运行。 您可以通过选择它并单击窗口顶部的X按钮来终止任何进程。不过,这将关闭相应的应用程序或浏览器选项卡。...检查 Mac 内存问题的最佳方法是尽可能少使用内存的情况下执行内存测试。由于操作系统在后台使用相当多的 RAM,建议通过启动到轻量级测试环境来测试内存。...完成后,您应该会看到一份报告,其中简要概述了检测到的任何问题。不过,该测试只会告诉您是否测到问题,无法分辨哪根 RAM 有问题。 运行测试有问题?

7.5K10

网站安全维护团队公司解决防护方案

渗透测试侧重用较短的时间去挖掘更多的安全漏洞,一般不太关注攻击行为是否被监测发现,目的是帮助业务系统暴露和收敛更多风险。...,包括联络、迎工作推动,迎结果汇报等所有相关工作 负责与外部安全相关单位联络 负责安全意识培训、宣传和推广 安全技术负责人 业务安全防护整体技术规划和计划 了解组织安全技术缺陷,并能找到方法进行防御...如果前面的机制都工作正常,那么应用程序就知道每个被接受到的请求所来自的用户的id,并据此决定用户对所请求要执行的动作或要访问的数据是否得到了授权。...一般来说,这种方式是被认为是输入效果较差的一种方式。主要有两个原因,其一Web应用中的一个典型的漏洞可以使用很多种不同的输入来被利用,输入可以是被加密的或以各种不同的方法表示。...一些情况下,存在安全的编程方法能够避免通常的问题。

1.6K30

Spring Security的CORS与CSRF(三)

请求 预请求不同于简单请求,它会发送一个 OPTIONS 请求到目标站点,查明该请求是否安全,防止请求对目标站点的数据造成破坏。...甚至根本不需要单击按钮,而是直接用JavaScript代码自动化该过程。 CSRF 利用了系统对登录期用户的信任,使得用户执行了某些并非意愿的操作从而造成损失。...在任何情况下,都应当尽可能地避免GET方式提供涉及数据修改的API。在此基础,防御 CSRF攻击的方式主要有以下两种。...API进行伪造,但最后的执行逻辑是放在用户浏览器的,只要用户的浏览器版本较新,便可 以避免这个问题),当校验到请求来自其他站点时,可以认为是CSRF攻击,从而拒绝该服务。...而不需要服务器注入参数,使用方式更加灵活。

1.2K20

JavaScript系列之初识JS,强大的实干家

Web自动化测试框架中通过JS来实现对Web元素的操作,测试开发中是必备的前端语言。 如果大家想系统全面的学习测试技术,成为资深测试,推荐大家都要学习JavaScript这门语言。...两者的关系仅仅是名字相近,语法风格实际与Self及Scheme较为接近。 JS是一种解释型语言,它不需要编译。交互式和动态的方式呈现网页,允许页面对事件做出反应,展示特殊效果。...例如在用户注册信息页面时,要求用户输入确认密码,确认用户输入的密码是否准确。如果用户“确认密码”文本框中输入的信息与“密码”文本框中输入的信息不同,将弹出相应的提示信息。...②打开开发者工具后,我们可以 Console 窗口调试 JavaScript代码,输入我们要执行的代码console.log("ITester"),按回车后执行。...③我们也可以 Chrome 浏览器中创建一个脚本来执行,开发者工具中点击 Sources 面板,选择 Snippets 选项卡,然后选择 Create new snippet 来新建一个脚本文件,右侧窗口输入要执行的代码

95030

什么是 CORS(跨源资源共享)?

那么,我们怎样才能让我们的 JavaScript 支持的页面使用外部脚本呢? CORS 就是答案。 跨源资源共享 (CORS) 是一种允许网页访问不同受限域运行的API或资产的方式的机制。...广告公司已允许访问 YouTube 允许 YouTube 网页播放存储的 Android 广告视频。 该系统的好处是 YouTube 可以使用来自另一台服务器的内容,而无需使用本地存储。...请求的服务器检查此预消息确保请求是安全的。 简单请求 简单请求不需要预并使用以下三种方法之一:GET、POST和HEAD。这些请求来自 CORS 发明之前,因此可以跳到 CORS 预。...它还可以用于触发文件下载。 一个例子是访问网络的任何站点。作为外部用户,我们只能看到网站的内容,不能更改文本或视觉元素。...服务器分析预请求检查此来源是否有权执行此类方法。 如果是,则服务器返回源允许使用的所有方法,并指示您可以发送原始请求。 如果不是,则忽略原始请求。

34130

小朋友好好学学lambda表达式吧!

Java复杂冗余的代码实现一直被程序员所诟病,好在随着JVM平台语言Scala的兴起以及函数式编程风格的风靡,让OracleJava的第8个系列版本中进行了革命性的变化,推出了一系列函数式编程风格的语法特性...,参数前可以加类型名,但由于自动类型推导功能,可以省去。 表达式可以是一行表达式,也可以是多条语句。如果是多条语句,需要包裹在大括号{}中。 表达式不需要显示执行返回结果,它会从上下文中自动推导。...只是把原有的接口实现方式用一种更像函数式编程的语法表示出来。...它就是lambda表达式中引用的外部变量,比如上例中的text和count变量。 如果熟悉函数式编程的同学会发现,Lambda表达式其实就是”闭包”(closure)。只是Java8并未叫这个名字。...,使把更多注意力放在业务逻辑,而不是复制一堆重复代码, 除非你一个用代码行数来衡量工作量的公司,你觉得呢?

29420

CA2109:检查可见的事件处理程序

值 规则 ID CA2109 类别 安全性 修复是中断修复还是非中断修复 重大 原因 检测到公共事件处理方法或受保护事件处理方法。...规则说明 外部可见的事件处理方法显示了一个安全问题,需要进行检查。 除非绝对必要,否则不要公开事件处理方法。...只要处理程序和事件签名匹配,就可以将调用公开方法的事件处理程序(委托类型)添加到任何事件中。 事件可能由任何代码引发,并且经常由高度可信的系统代码引发,响应用户操作(例如单击某个按钮)。...由于这些原因,只有检查事件处理方法后才能评估不解决此规则冲突的风险。 检查代码时,请考虑以下问题: 你的事件处理程序是否执行任何危险或可利用的操作,如断言权限或禁止非托管代码权限?...如何解决冲突 若要解决此规则的冲突,请检查方法并评估以下各项: 是否可以将事件处理方法设为非公开? 是否可以将所有危险功能移出事件处理程序? 如果提出了安全需求,是否可以通过其他方式实现?

51200

深入浅出话命令

还需要注意,各种控件发送命令的方法不经相同,比如Button和MenuButton单击时发送命令,而ListBoxItem单击时表示被选中,双击的时候才发送命令。...中输入内容之后,Button命令可执行状态下变为可用,此时单击按钮或者按Alt+C,TextBox就会被清空,效果如下图: ?...对于以上的代码,需要注意以下几点: 第一,使用命令可以避免自己写代码判断Button是否可以用以及添加快捷键。...需要注意的是,现实世界中的命令是不会自己执行的,而这里,执行变成了命令的方法,有点拟人化的味道。 CanExecute方法:执行之前探知命令是否可以执行。...比如我们可以自定义一个Save的命令,当命令到达命令目标的时候先通过命令目标的IsChanged属性判断命令目标的类容是否已经改变,如果改变,命令可以执行,命令执行会直接调用命令目标的Save方法,驱动命令目标自己的形式去保存数据

1.6K40
领券