复刻江协旋钮控制模块

news/2025/9/29 19:41:27/文章来源:https://www.cnblogs.com/nailongtch/p/19119390

复刻江协旋钮控制模块

1、初始化硬件

OLED初始化

  • 这里就不展开细讲了,可以看我之前的帖子

复刻江协激光触发器

旋钮初始化

  • 使能外部中断
    img
  • 模式改为上拉
    img
  • 根据旋钮接口接上线

2、操作代码

(1) 初始化输出

  • 定义全局变量count,并初始化值为0,表示旋钮的相对位置
/* USER CODE BEGIN 0 */
int32_t count = 0;
/* USER CODE END 0 */
  • 在第一行,顶格位置显示字符串count:
	OLED_ShowString(1, 1, "count:");/* USER CODE END 2 */
  • 在循环体内输出相对位置的值

注意:OLED_ShowNum()函数不支持输出复数,所以需要额外步骤来进行判断

  /* USER CODE BEGIN WHILE */while (1){//判断正负性if(count >= 0){//如果为非负数,加'+'OLED_ShowChar(2, 1, '+');OLED_ShowNum(2, 2, count, 10);}else{//如果为复数,加'-'并对相对位置的值取反OLED_ShowChar(2, 1, '-');OLED_ShowNum(2, 2, -count, 10);}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

(2) 中断回调函数

  • 由于旋钮总共有2个输出接口,所以需要判断中断触发源
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){//判断中断源if(GPIO_Pin == PinA_Pin){//如果为A口触发,则增加相对位置int i = 3000;//消抖while(i){i--;}count++;}		else if(GPIO_Pin == PinB_Pin){//如果为B口,则减小相对位置int i = 3000;while(i){i--;}count--;}
}
/* USER CODE END 4 */

3、实验效果

  • 向右拧旋钮后,相对位置增加
    img
  • 向左拧旋钮后,相对位置减小
    img

4、流程图

主程序部分

img

中断部分

img

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

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

相关文章

做自行车车队网站的名字展厅搭建公司

一、引入 在没有遇见mapstruct的时候,实现各个实体之间的转换,都是手动转换实现的,属性少一带你还好,当属性一多,代码就会变得很冗余,没必要的非逻辑的代码就会加多。。。。 比如: public cl…

Linux 基础IO与系统IO - 实践

Linux 基础IO与系统IO - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

从零开始,使用Idea工具搭建一个springboot项目

一,搭建之前准备 搭建之前先确保本机已正确安装JDK,Maven,IDEA。 以下是我的配置: OpenJDK 17 Maven 3.9.11 IDEA 2025 二,开始搭建1,打开Idea工具,File->New-> Project...2,左边选择“Spring Boot"…

最优/极值问题的算法选择

如何选择滑动窗口、二分、动态规划算法 刷leetcode时对于一些最优/极值问题往往不知采用哪一种算法,故借助大模型学习一些算法要点。1. 滑动窗口(Sliding Window) 特点适用于 数组 / 字符串 的 连续子区间 问题。 目…

珠海的门户网站有哪些深圳地址大全

ScottPlot是一款简单易用、高度定制、性能卓越的.NET绘图库,支持跨平台操作。除提供标准图表类型外,还支持交互式操作,呈现生动的数据展示。在工厂数字化系统中,可用于生产数据可视化、设备监测和质量控制。无论用于科学研究、数据…

网站开发和推广方案永康市建设银行网站查询

PHP程序的调试一直是一件让人头疼的事,它既不像VB等高级语言那样有集成的编译调试环境,也不想Perl那样可以在Linux或者DOS环境下直接运行。其实,我们完全可以通过灵活地使用echo语句来完成对PHP的调试工作。下面的几个函数可以让你随时查看程…

梁山网站建设多少钱wordpress文章末尾添加内容

前言 有时遇到这样的需求,就是在表格里面嵌入一个表格,以及要求带有分页,这样在ElementPlus中很好实现。以下使用Vue2语法实现一个简单例子,毕竟Vue3兼容Vue2语法,若想要Vue3版本例子,简单改改就OK了。 一…

外贸建站wordpress昆山网站建设jofuns

以下内容整理于Linux字符设备驱动剖析,如有侵权请告知删除 。 一、应用层的程序 应用程序一般都是open打开设备文件,read、write、ioctl设备文件,最后close设备文件退出。 int main(int argc ,char *argv[]) { unsigned char val[1] 1; …

第三方控件库的添加和使用

添加把第三方控件库先复制到根目录下 ,也就是Debug 的目录下然后再拖到工具箱的空白处下就可以了使用 和之前的控件使用相同 ‍

实用指南:基于 HTML、CSS 和 JavaScript 的智能图像灰度直方图匹配系统

实用指南:基于 HTML、CSS 和 JavaScript 的智能图像灰度直方图匹配系统2025-09-29 19:20 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: au…

C4NR PVP服务器1.2 天穹炮塔更新

C4NR PVP服务器1.2 天穹炮塔更新 更新内容在风弹获得处增加了一个建筑,可以使用风弹上去。上面是一个放置压力板的一个平台。踩压力板会获得20点风弹伤害并且生成一个风弹。玩家可以通过向指定方向攻击风弹来控制风弹…

树形dp [JOI Open 2020] 发电站 / Power Plant

作为最强摸鱼人的 BaiBaiShaFeng,这个题解也是发到洛谷上了,希望给过。 先辈们说的太简略了我感觉有点难懂,虽然我的表达能力很弱,估计强不了多少。 注:参考过网上零散题解。 题意很好理解,我们就不过多叙述了。…

深入解析:灵画-AI绘画小程序

深入解析:灵画-AI绘画小程序pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

AT_arc156_b [ARC156B] Mex on Blackboard

首先枚举你花 \(i\) 次操作可以搞到的最大值是什么,然后你剩下的集合就随便取,只要取不超过 \(k - i\) 个即可,用插板法很容易做。

实用指南:CAN邮箱深度解析:从硬件架构到实战应用

实用指南:CAN邮箱深度解析:从硬件架构到实战应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

产品排序

考虑区间 $dp$。设 $f_{i,j}$ 表示处理 $[i,j]$ 最小的总惩罚值。分类: - 产品 $i$ 第一个出栈,则有 $f_{i,j}=t_i\times sd_{i,j}+f_{i+1,j}$ - 产品 $i$ 第 $k$ 个出栈,则有 $f_{i,j}=f_{i+1,k}+f_{k + 1,j}+st_{…

众包网站开发网站建设录哪个科目

先拆成链的情况来看。 设B[i]表示i要向i1拿糖果的数量,C为平均数,则B[i] C - A[i] B[i-1] Answer就是B的绝对值之和 现在来看环的情况,也就是说B[n]指的是n要向1拿糖果的数量。不妨设B[n]为K,则B[1] C - A[1] K………… 照着式…

云阳一平米网站建设打开百度网页

LVGL_基础控件label 1、创建一个基础对象 /* 创建一个基础对象 label */ lv_obj_t * label lv_label_create(lv_scr_act()); // 创建一个label部件(对象),他的父对象是活动屏幕对象2、设置显示内容 char * text "www.100ask.net"; // 要显示的文字 /* 展示文…

环形链表II-leetcode

题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系…

ubuntu20.04安装nvidia显卡

24.04内核最新升级6.14.0,但是会出现英伟达驱动问题,现有的版本是6.8 重新安装了ubuntu20.04 先检查可用驱动:ubuntu-drivers devices下面会显示推荐安装的驱动版本,因为我原先的版本太低了,导致ubuntu内核更新一…