找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 586|回复: 0
打印 上一主题 下一主题
收起左侧

STM32F103C8T6单片机外部中断程序

[复制链接]
跳转到指定楼层
楼主
ID:827939 发表于 2023-10-20 18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实验软件设计
1、外部中断检测急停按键:流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)。
2、定时驱动 LED 提示报警闪烁:流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)。
3、利用串口传输信息到 PC 机:流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)。
4、综合各模块功能,通过外部中断检测急停按钮状态,利用串口传输信息到 PC 机,同时实现警示 LED 闪烁和继电器输出控制;即实现工业急停模拟系统功能:
(1 )未按下紧急按键时,将正常运行信息通过串口发生至上位机;警示 LED常亮;
(2 )当按下紧急按键时,警示 LED 定时闪烁;将急停信息通过串口发生至上位机;并将输出控制的继电器切断(可用 LED 代替)。设计流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)

单片机源程序如下:


  1. /*
  2. STM32 开发板 库函数部分          */
  3. // 中断实验  通过外部中断线  到 按键 PA.0  PD.2上          并配置为下降沿触发 具体设置在exti.c中
  4. //按键按下则产生中断         PA.0(S4)产生中断 控制板载LED亮   PD.2(S3)产生中断 控制板载LED灭
  5. //并且串口 也将不停的打印数据 以表示程序正在运行

  6. #include  "delay.h"
  7. #include  "led.h"
  8. #include  "key.h"
  9. #include  "usart.h"
  10. #include "exti.h"


  11. int main(void)
  12.    {

  13.            delay_init();                     //延时函数初始化
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //设置NVIC中断分组为组2  2:2位抢占优先级,2位响应优先级
  15.                                                         //一旦定义 即不要轻易改变
  16.         uart_init(9600);            //串口初始化为9600  
  17.         LED_Init();                              //初始化与LED连接的硬件接口
  18.         KEY_Init();                                //        按键端口初始化
  19.         EXTIX_Init();                         //外部中断初始化
  20.    
  21.         while(1)
  22.         {
  23.                 printf("ELH 启光电子\r\n");       
  24.                 delay_ms(1000);
  25.         }

  26.    }

复制代码

原理图: 无
仿真: 无
代码: STM32F103C8T6 外部中断程序.7z (182.34 KB, 下载次数: 14)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表