当前位置: 首页 > news >正文

stm32之使用中断控制led灯

#include "stm32f10x.h"void delay_ms(uint32_t ms)
{for (uint32_t i = 0; i < ms * 8000; i++){ // 8 MHz HSI}
}void GPIO_Inits(void)
{// 1. 启用 GPIO 时钟、AFIO时钟使能RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPCEN | RCC_APB2ENR_AFIOEN;GPIOA->CRL |= GPIO_CRL_CNF0_1;GPIOA->CRL &= ~GPIO_CRL_CNF0_0;GPIOA->CRL &= ~GPIO_CRL_MODE0;GPIOA->ODR &= ~GPIO_ODR_ODR0;//  配置 PA1 为推挽输出(2 MHz)GPIOC->CRH &= ~(GPIO_CRH_CNF13 | GPIO_CRH_MODE13);GPIOC->CRH |= GPIO_CRH_MODE13_1; // 2 MHz 输出 (10)GPIOC->ODR &= ~GPIO_ODR_ODR13;// 2. 选择 EXTI0 的PA0AFIO->EXTICR[0] |= AFIO_EXTICR1_EXTI0_PA;// 3.配置EXTI// 上升沿触发EXTI->RTSR |= EXTI_RTSR_TR0;// 开启中断频闭寄存器EXTI->IMR |= EXTI_IMR_MR0;NVIC_SetPriorityGrouping(3);NVIC_SetPriority(EXTI0_IRQn, 1); // 设置优先级// 启用中断NVIC_EnableIRQ(EXTI0_IRQn); // 启用 TIM1 更新中断
}void EXTI0_IRQHandler(void)
{EXTI->PR |= EXTI_PR_PR0; // 清除中断标志位delay_ms(10);if ((GPIOA->IDR & GPIO_IDR_IDR0) != 0){GPIOC->ODR ^= GPIO_ODR_ODR13; // 翻转PA0}
}int main(void)
{GPIO_Inits();
http://www.lqws.cn/news/447031.html

相关文章:

  • MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗
  • 李宏毅《生成式人工智能导论》 | 第3讲-第5讲:训练不了模型可以训练自己 含作业3、让AI村民组成虚拟村庄会发生什么
  • EchoEar(喵伴):乐鑫发布与火山引擎扣子联名 AI 智能体开发板
  • 高保真组件库:全选
  • Matplotlib 绘图库使用技巧介绍
  • 如何实现一个64 bit ID Unique Generator
  • Laravel框架的发展前景与Composer的核心作用-优雅草卓伊凡
  • 大数据复习HDFS
  • 苍穹外卖-2025 完成基础配置环节(详细图解)
  • 端口安全配置示例
  • golang excel导出时需要显示刷新
  • go客户端ssh交换机
  • Mysql5.7 自动备份恢复示例
  • 渗透实战:绕过沙箱机制的反射型XSS
  • ROS学习之动作通信
  • 苍穹外卖--WebSocket、来单提醒、客户催单
  • 图像特征检测算法ORB
  • ros中相机话题在web页面上的显示,尝试js解析sensor_msgs/Image数据
  • 动态规划:01 背包(闫氏DP分析法)
  • Linux系统远程操作和程序编译
  • JS红宝书笔记 - 8.1 理解对象
  • 零基础指南:利用Cpolar内网穿透实现Synology Drive多端笔记同步
  • PHP 生成当月日期
  • 解决 Docker 里 DrissionPage 无法连接浏览器的问题,内含直接可用的Docker镜像(DrissionPage 浏览器链接失败 怎么办?)
  • 23种设计模式--简单工厂模式理解版
  • 日本生活:日语语言学校-日语作文-沟通无国界(3)-题目:わたしの友達
  • 基于 Web 的 3D 设计工具Spline介绍
  • 理解服务注册与发现
  • DeserializationViewer使用说明
  • java IO流