基于SMT32U575RIT单片机-中断练习
任务

查看手册对所有的拓展板上和相对应的底板的引脚对应的端口找到以下结论

通过STM32MX软件对各个引脚进行相应的配置
1.第一种切换模式电脑发送
#include "main.h"
#include "icache.h"
#include "usart.h"
#include "gpio.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <stdio.h>
#include <string.h>
/* USER CODE END Includes *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
char buf[16]={0};//保存串口通信数据
//串口控制模式
int m=0;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){printf("[%s]\n\r", buf);if(strcmp(buf,"led")==0){m =1;//进入LED模式printf("mode=%d\n\r",m);}else if(strcmp(buf,"fan") == 0){m=2;//进入风扇模式printf("mode=%d\n\r",m);}else if(strcmp(buf,"bee") == 0){m=3;//进入LED模式printf("mode=%d\n\r",m);}HAL_UART_Receive_IT(&huart1, (uint8_t *)buf, 3);
}//重写fputc函数
int fputc(int ch, FILE * fp){HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 3);return ch;
}void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin == GPIO_PIN_9){printf("key\n\r");if(m == 1){//LED模式HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);}else if(m == 2){//风扇模式HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);}else if(m == 3){//蜂鸣器模式HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15);}}
}int main(void)
{HAL_Init();MX_GPIO_Init();MX_ICACHE_Init();MX_USART1_UART_Init();while (1){//开启串口接收中断模式HAL_UART_Receive_IT(&huart1,(uint8_t*)buf,3);}
}
2.按键模式 控制开关main.c核心代码
#include "main.h"
#include "icache.h"
#include "gpio.h"
#include "stdio.h"int count1 = 0;//记录user按键被按下的次数
int m1=0;//LED控制模式
int m2=1;//风扇控制模式
int m3=2;//蜂鸣器控制模式//按键控制模式和开关
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin == GPIO_PIN_12){count1++;}else if(GPIO_Pin==GPIO_PIN_9){//进入LED模式if(count1%3 == m1){HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);}else if(count1%3 == m2)//进入风扇模式{HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);}else if(count1%3 == m3)//进入蜂鸣器模式{HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15);}}
}
相关文章:
基于SMT32U575RIT单片机-中断练习
任务 查看手册对所有的拓展板上和相对应的底板的引脚对应的端口找到以下结论 通过STM32MX软件对各个引脚进行相应的配置 1.第一种切换模式电脑发送 #include "main.h" #include "icache.h" #include "usart.h" #include "gpio.h"/*…...
在Django的Serializer的列表数据中剔除指定元素
【Python工作随笔】 提问 如何在List序列化方法中剔除不要的元素,例如在成绩中剔除0 class BasicDescriptionSubjectBoxPlotSerializer(serializers.Serializer):语文 serializers.ListField(sourcescore_chinese)数学 serializers.ListField(sourcescore_math…...
我喜欢的数学题
偏向抖机灵性质的,考察理解的,而不是比拼计算量的,可能跟现在岁数大了算不明白了多少有点关系吧。 高高手,别太重计算,给普通孩子留条路。就算将来真的理工治国,也没必要都往人形计算机方面引导。毕竟你未来…...
Redis解决热key问题
当Redis遇到热key问题时,即某个或某些key被频繁访问,可能导致单个Redis节点负载过高,影响整个系统性能。以下是一些常见的解决方案: 1. 缓存预热与复制 缓存预热:在系统启动阶段,将热key对应的value预先加…...
【git】-2 分支管理
目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 【git】-初始gi…...
Win11+WLS Ubuntu 鸿蒙开发环境搭建(二)
参考文章 penHarmony南向开发笔记(一)开发环境搭建 OpenHarmony(鸿蒙南向开发)——标准系统移植指南(一) OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二&…...
Meilisearch ASP.Net Core API 功能demo
安装 MeiliSearch 0.15.5 0.15.5demo code using Meilisearch; using System.Data; using System.Text.Json; using System.Text.Json.Serialization;namespace MeiliSearchAPI {public class MeilisearchHelper{public MeilisearchHelper(){DefaultClient…...
程序员独立开发竞品分析:确定网站使用什么建站系统
要确定一个网站使用的建站系统,可以通过以下几种方法尝试分析: 查看页面源代码: 打开网站,右键点击页面并选择“查看页面源代码”。在代码中查找一些常见的建站系统标志,例如: WordPress 的迹象:…...
selenium+pyqt5自动化工具总结
说明:本工具是,操作外部google浏览器、selenium是无法操作qt界面中嵌套的浏览器的, 工具在后面 1. 代码结构 pycharm打开的文件下,再写一个子文件,文件导入的时候把子文件名带上 这样就可以在 外层使用命令 pyinst…...
docker GPU安装
docker 离线安装 docker下载地址:https://download.docker.com/linux/static/stable/x86_64/ 解压: tar xzvf docker-24.0.6.tgz移动解压后的内容 sudo mv docker/* /usr/local/bin/创建 docker.service配置文件 sudo vim /etc/systemd/system/dock…...
hutool糊涂工具通过注解设置excel宽度
import java.lang.annotation.*;Documented Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) public interface ExcelStyle {int width() default 0; }/*** 聊天记录*/ Data public class DialogContentInfo {/**…...
Three.js教程015:全面讲解Three.js的UV与应用
文章目录 全面讲解UV与应用UV介绍代码演示完整代码全面讲解UV与应用 UV介绍 在 Three.js 中,UV 坐标(也称为纹理坐标)是用来定义纹理如何映射到三维模型上的一组二维坐标。UV 坐标的范围通常是 (0, 0) 到 (1, 1),其中: U 对应纹理的横向轴(类似于 X 轴)。V 对应纹理的…...
IOS界面传值-OC
1、页面跳转 由 ViewController 页面跳转至 NextViewController 页面 (1)ViewController ViewController.h #import <UIKit/UIKit.h>interface ViewController : UIViewControllerend ViewController.m #import "ViewController.h" …...
阿里mod_asr3.0集成webrtc静音算法
alibabacloud-nls-cpp-sdk-master 先到阿里官网下载nls库的源代码,编译生成对应的库文件和头文件。 我编译的放到了以下目录。 /home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/ /home/jp/2025/alibabacloud-nls-cpp-sdk-…...
[Git] git pull --rebase / git rebase origin/master
1. git pull --rebase 这个命令是用来更新当前分支的,它会从远程仓库拉取更新,然后将你的本地提交重新应用到更新后的基础之上。它相当于先执行 git fetch,然后在当前分支上执行 git rebase origin/。使用 --rebase 而不是默认的 merge 可以…...
Leetcode3270:求出数字答案
题目描述: 给你三个 正 整数 num1 ,num2 和 num3 。 数字 num1 ,num2 和 num3 的数字答案 key 是一个四位数,定义如下: 一开始,如果有数字 少于 四位数,给它补 前导 0 。答案 key 的第 i 个数…...
第十一章 施工监测
11 施工监测 11.1 施工监测主要内容、常用仪器与方法 11.1.1 主要内容 1.目的和意义 及时掌握工程自身及周边环境风险动态、通过分析和预测工程结构及周边环境的安全状态与发展趋势,优化调整设计参数和施工参数提供数据支撑。为今后同类工程施工提供类比资料 2…...
Python爬虫应用领域
Python爬虫作为一种强大的数据获取工具,在多个领域发挥着重要作用。以下是Python爬虫在不同领域的应用情况: 一、数据采集与分析 (一)市场调研 产品信息收集:爬取电商平台的产品详情、价格、销量、用户评价等数据&am…...
软件架构考试基础知识 002:进程的状态与其切换
进程状态转换的说明 在操作系统中,进程的状态表示其当前的执行情况和资源占用情况。进程状态的转换反映了操作系统如何管理和调度进程。以下是进程状态转换的说明: 1. 三态模型(Three-state Model) 三态模型是最基础的进程状态模…...
新车月交付突破2万辆!小鹏汽车“激活”智驾之困待解
首次突破月交付2万辆规模的小鹏汽车,稳吗? 本周,高工智能汽车研究院发布的最新监测数据显示,2024年11月,小鹏汽车在国内市场(不含出口)交付量(上险口径,下同)…...
OpenClaw技能市场巡礼:Top5适合Phi-3-vision-128k-instruct的图文处理插件
OpenClaw技能市场巡礼:Top5适合Phi-3-vision-128k-instruct的图文处理插件 1. 为什么需要为多模态模型搭配专用技能? 去年我在尝试用OpenClaw处理一批产品截图时,发现一个有趣现象:当我把图片直接丢给普通文本模型时,…...
30天重置一次:JetBrains IDE评估期管理工具使用指南
30天重置一次:JetBrains IDE评估期管理工具使用指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 在软件开发过程中,JetBrains系列IDE(如IntelliJ IDEA、PyCharm、WebStorm等…...
马上深挖!!!三段逆置如何实现数组轮转?!用最简单的话让你秒懂
一、目的给定一个数组和一个整数k,让数组向右轮转k个数。如令[1,2,3,4,5,6]向右轮转3个数,结果为[4,5,6,1,2,3]。二、代码#include <iostream> using namespace std;void swap(int* a,int* b) {int tmp*a;*a*b;*btmp;return; }void reverse(int* a…...
WPF项目实战视频《四》(主要为项目实战API设计)
30.WPF项目实战(创建数据库)31.WPF项目实战(工作单元)32.WPF项目实战(待办事项接口)33.WPF项目实战(配置)34.WPF项目实战(备忘录接口)35.WPF项目实战…...
MySQL高频面试题(2026最新版):覆盖90%考点,小白也能直接背
很多开发者备考时,要么盲目刷题、记不住重点,要么只背答案、不懂原理,面试时被面试官追问一句就卡壳。其实MySQL面试没有那么复杂,核心考点就那么多,只要吃透高频题、理解底层逻辑,就能从容应对。本文整理了…...
React Overdrive与Next.js集成:构建流畅页面过渡
React Overdrive与Next.js集成:构建流畅页面过渡 【免费下载链接】react-overdrive Super easy magic-move transitions for React apps 项目地址: https://gitcode.com/gh_mirrors/re/react-overdrive React Overdrive是一款为React应用提供超简单魔法移动过…...
OpenClaw技能开发入门:为千问3.5-27B编写自定义模块
OpenClaw技能开发入门:为千问3.5-27B编写自定义模块 1. 为什么需要自定义技能? 去年冬天,我发现自己每天早晨都要手动查询天气并发送给家人。重复的操作让我开始思考:能否让OpenClaw帮我自动完成这个任务?这就是我踏…...
Flink StateBackend详解:大数据状态存储方案
Flink StateBackend详解:大数据状态存储的底层逻辑与实践 关键词 Flink 流处理、StateBackend、状态存储、Checkpoint、Exactly-Once、RocksDB、FsStateBackend 摘要 在大数据实时计算领域,状态(State)是流处理从"无状态计算…...
90% 的代码交给 AI 后,人还剩什么本事?
问题定义、架构决策、结果取舍。 Cognition AI 及其研发的智能体 Devin 如何重塑软件工程的未来。作者指出,AI 已经能够接管 90% 的底层执行工作,包括编写代码和修复漏洞,使人类工程师从琐碎的实现细节中解放出来。在这一范式转变下ÿ…...
Intv_AI_MK11 解决 403 Forbidden 错误:模型服务访问权限配置详解
Intv_AI_MK11 解决 403 Forbidden 错误:模型服务访问权限配置详解 1. 问题背景与解决思路 当你兴致勃勃地准备调用 Intv_AI_MK11 模型服务时,突然收到一个冷冰冰的 "403 Forbidden" 错误,这种体验就像拿着门票却被拦在演唱会门外…...
