出国留学网站开发怎么做pp网站

张小明 2026/1/1 18:00:19
出国留学网站开发,怎么做pp网站,业之峰装饰公司北京地址,怎么发布自己做的网站一、EXTI是什么#xff1f;EXTI External Interrupt/Event Controller#xff08;外部中断/事件控制器#xff09;简单说#xff1a;EXTI是STM32的“门卫”#xff0c;专门管引脚上的电平变化。当引脚电平变化时#xff0c;EXTI会通知CPU#xff1a;“有情况#xff0…一、EXTI是什么EXTI External Interrupt/Event Controller外部中断/事件控制器简单说EXTI是STM32的“门卫”专门管引脚上的电平变化。当引脚电平变化时EXTI会通知CPU“有情况”二、EXTI能干什么两种工作模式中断模式电平变化 → EXTI → CPU → 执行中断函数事件模式电平变化 → EXTI → 直接触发其他外设不打扰CPU常见用途按键检测按一下触发一次限位开关碰到就停外部信号计数来一个脉冲记一次三、EXTI的硬件连接重要外部引脚 → GPIO端口 → EXTI线路 → NVIC → CPU ↑ ↑ ↑ ↑ ↑ 电平变化 端口选择 线路选择 优先级 执行中断关键规则每个EXTI线路对应多个GPIO引脚但有规矩同一时间一个EXTI线路只能连一个GPIO引脚四、EXTI线路分配表必须记住EXTI线路可以连接的GPIO引脚EXTI0PA0, PB0, PC0, PD0, PE0, ... PI0EXTI1PA1, PB1, PC1, PD1, PE1, ... PI1EXTI2PA2, PB2, PC2, PD2, PE2, ... PI2......按数字对应EXTI15PA15, PB15, PC15, PD15, ... PI15重要规律EXTI0可以连所有端口的引脚0EXTI1连所有引脚1以此类推。五、完整配置步骤按键为例第1步初始化按键引脚PA0为例void KEY_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; // 1. 开启GPIOA时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); // 2. 配置PA0为上拉输入按键按下接地 GPIO_InitStructure.GPIO_Pin GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN; // 输入模式 GPIO_InitStructure.GPIO_PuPd GPIO_PuPd_UP; // 上拉电阻 GPIO_InitStructure.GPIO_Speed GPIO_Speed_100MHz; GPIO_Init(GPIOA, GPIO_InitStructure); }第2步配置EXTI中断核心void EXTI0_Init(void) { EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; // 1. 开启SYSCFG时钟必须很多人忘记 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); // 2. 将PA0连接到EXTI0线路 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); // 3. 配置EXTI0线路 EXTI_InitStructure.EXTI_Line EXTI_Line0; // 线路0 EXTI_InitStructure.EXTI_Mode EXTI_Mode_Interrupt; // 中断模式 EXTI_InitStructure.EXTI_Trigger EXTI_Trigger_Falling; // 下降沿触发 EXTI_InitStructure.EXTI_LineCmd ENABLE; // 使能 EXTI_Init(EXTI_InitStructure); // 4. 配置NVIC中断优先级 NVIC_InitStructure.NVIC_IRQChannel EXTI0_IRQn; // 中断源 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority 0; NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; NVIC_Init(NVIC_InitStructure); }第3步编写中断服务函数// EXTI0中断服务函数函数名固定不能改 void EXTI0_IRQHandler(void) { // 1. 检查是否是EXTI0触发的中断 if(EXTI_GetITStatus(EXTI_Line0) ! RESET) { // 2. 你的处理代码 if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) 0) { // 按键按下的处理 LED_Toggle(); // 切换LED状态 } // 3. 清除中断标志必须不然会一直进中断 EXTI_ClearITPendingBit(EXTI_Line0); } }六、触发方式详解触发方式说明适用场景上升沿触发低电平→高电平时触发按键释放检测下降沿触发高电平→低电平时触发按键按下检测双边沿触发上升和下降都触发电平变化检测// 选择触发方式 EXTI_InitStructure.EXTI_Trigger EXTI_Trigger_Rising; // 上升沿 EXTI_InitStructure.EXTI_Trigger EXTI_Trigger_Falling; // 下降沿 EXTI_InitStructure.EXTI_Trigger EXTI_Trigger_Rising_Falling; // 双边沿七、多按键配置示例多个EXTI线路// 配置PA0(EXTI0)和PC13(EXTI13)两个按键 void EXTI_Multi_Init(void) { // ... 开启时钟、GPIO初始化 ... // PA0 - EXTI0按键1 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); EXTI_InitStructure.EXTI_Line EXTI_Line0; EXTI_InitStructure.EXTI_Trigger EXTI_Trigger_Falling; EXTI_Init(EXTI_InitStructure); // PC13 - EXTI13按键2 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13); EXTI_InitStructure.EXTI_Line EXTI_Line13; EXTI_Init(EXTI_InitStructure); // 配置两个中断通道 NVIC_InitStructure.NVIC_IRQChannel EXTI0_IRQn; NVIC_Init(NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel EXTI15_10_IRQn; // 注意10-15共用 NVIC_Init(NVIC_InitStructure); } // 中断服务函数 void EXTI0_IRQHandler(void) // 处理EXTI0 { if(EXTI_GetITStatus(EXTI_Line0) ! RESET) { // 处理按键1 EXTI_ClearITPendingBit(EXTI_Line0); } } void EXTI15_10_IRQHandler(void) // 处理EXTI10-15 { if(EXTI_GetITStatus(EXTI_Line13) ! RESET) { // 处理按键2PC13 EXTI_ClearITPendingBit(EXTI_Line13); } }八、注意事项避坑指南常见错误1忘记开SYSCFG时钟// 必须加 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); 常见错误2中断函数名写错EXTI0-4EXTI0_IRQHandler、EXTI1_IRQHandler...EXTI5-9共用EXTI9_5_IRQHandlerEXTI10-15共用EXTI15_10_IRQHandler常见错误3没清除中断标志会导致重复进入中断程序卡死常见错误4GPIO模式设错必须设置为输入模式GPIO_Mode_IN九、事件模式 vs 中断模式// 中断模式需要CPU参与 EXTI_InitStructure.EXTI_Mode EXTI_Mode_Interrupt; // 事件模式直接触发其他外设如DMA、ADC EXTI_InitStructure.EXTI_Mode EXTI_Mode_Event; // 事件模式不触发中断不需要NVIC配置十、软件触发中断特殊用途// 有时候需要软件模拟一个中断 EXTI_GenerateSWInterrupt(EXTI_Line0); // 软件触发EXTI0中断十一、消抖处理实际应用void EXTI0_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line0) ! RESET) { // 简单延时消抖 delay_ms(20); // 延时20ms // 再次检测 if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) 0) { // 确实按下了 LED_Toggle(); } EXTI_ClearITPendingBit(EXTI_Line0); } }十二、EXTI配置速查表步骤做什么关键函数/配置1开SYSCFG时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG)2GPIO初始化模式输入上下拉按需3引脚连EXTISYSCFG_EXTILineConfig(端口源, 引脚源)4配置EXTI选线路、模式、触发方式5配置NVIC设优先级6写中断函数函数名固定记得清标志总结口诀EXTI是门卫管脚电平变。 先开时钟后连线SYSCFG别忘记。 引脚线路要对齐0对0来1对1。 触发方式有三种上升下降和双边。 中断函数名固定清除标志要牢记。 按键记得要消抖实际应用才稳定。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建站公司网站模板湖南seo网站开发

引言“我们的推荐系统准确率又提升了5%!”——但你知道用户点击增加是因为推荐本身,还是因为同时进行的营销活动?这种“混淆变量”的陷阱,正是传统机器学习无法跨越的鸿沟。开篇:相关性≠因果性——机器学习的“认知革…

张小明 2026/1/1 17:58:16 网站建设

汽车网站设计模板浦东注册公司

Linux Shell脚本编写指南 1. 编写Shell脚本 1.1 开始编写 Shell脚本是纯文本文件,可以使用如 vi 、 nano 或 pico 等文本编辑器来创建。脚本的第一行需要指定用于运行它的shell,例如: #!/bin/bash前两个字符是特殊代码,告知Linux内核这是一个脚本,并将该行其余…

张小明 2026/1/1 17:56:12 网站建设

重庆免费建站014最新电影网站源码程序|自动采集|一键采集|静态生成|联盟利器

地理空间绿色移动边缘计算:挑战、解决方案与未来方向 1. 移动边缘计算中的现有地理空间应用 近年来,大量地理空间应用在移动边缘计算(MEC)环境中得到开发。这些应用可分为以下七类: | 应用类别 | 具体描述 | | — | — | | 智慧城市服务 | 涵盖交通预测与道路安全、医…

张小明 2026/1/1 17:54:09 网站建设

成都 php 网站刚开始做网站要传数据库吗

JeecgBoot大屏动态刷新实战指南:让数据实时"活"起来 【免费下载链接】jimureport 「数据可视化工具:报表、大屏、仪表盘」积木报表是一款类Excel操作风格,在线拖拽设计的报表工具和和数据可视化产品。功能涵盖: 报表设计、大屏设计…

张小明 2026/1/1 17:52:06 网站建设

网站公司 模板网上购物平台类型

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):405标注数量(xml文件个数):405标注数量(txt文件个数):405标注类别数&…

张小明 2026/1/1 17:50:03 网站建设

四川手机网站制作网站服务器怎么建设

BAFF&APRIL异源三聚体蛋白是一种精准模拟体内复杂信号环境的创新重组工具。它将B细胞激活因子(BAFF/BLyS)和增殖诱导配体(APRIL)以异源三聚体形式融合,并携带组氨酸标签,为研究B细胞异常活化、生存及抗…

张小明 2026/1/1 17:48:01 网站建设