单片机--中断实验练习

这篇具有很好参考价值的文章主要介绍了单片机--中断实验练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【1】按键中断实验(外部中断)--EXTI:

STM32上电LED(PB0)灯亮 ,当检测到按键(PA8)按下时处理中断事件,变量i++

单片机--中断实验练习

单片机--中断实验练习

扩展:知识点 

响应优先级->在两个中断同时触发时,且这两个中断的优先级相同,响应优先级高先执行

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

验证:扩展知识->仿真的使用

 单片机--中断实验练习

单片机--中断实验练习

寄存器仿真控制  查看

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

知识点:消抖

消抖是为了避免在按键按下或是抬起时电平剧烈抖动带来的影响,确保在每一次断开或闭合触点时只有一个信号起作用。

方法一:进入中断赋值标号,然后main函数中判断标号,用HAL_Delay消抖

方法二:使用定时器中断消抖

方法三:自己写个延时函数

uint8_t i=0;
void delay(int time)
{
  
}
void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin)
{
  if(GPIO_Pin==GPIO_PIN_8)//判断是不是GPIO_PIN_8
	{
		 delay(100);
		 if(GPIO_Pin==GPIO_PIN_8)//判断是不是GPIO_PIN_8
		{
		 i++;
		}
	}
}

【2】串口中断实验(内部中断)--NVIC控制

          发送完成中断实验

          实验要求:主程序发送一句字符串“helloworld”,当这条字符串发送完成时触发中断事件,调用中断服务程序发送“UART Transmit completed!”

实验步骤:

1.打开CubeMX,创建新项目,配置USART1为异步,以及NVIC全局中断

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

2.发送函数

单片机--中断实验练习

单片机--中断实验练习

3.找到串口1的中断服务程序

单片机--中断实验练习

单片机--中断实验练习

4. 当发送结束时调用UART_EndTransmit()

单片机--中断实验练习5. 找到发送完成中断回调函数:

单片机--中断实验练习

单片机--中断实验练习

6.重写发送完成回调函数:

单片机--中断实验练习

7.实验现象:

当串口发送完“helloworld”之后产生发送完成事件触发中断,执行中断服务程序,并输出“UART Transmit completed!”

单片机--中断实验练习

【3】 串口接收中断实验

       实验要求:主程序接收到2个字符触发中断,中断服务程序发送“收到了”

1.主程序main.c

单片机--中断实验练习单片机--中断实验练习

 2.中断服务程序usart.c

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

【4】显示屏显示计时时间

   1. 显示屏显示计时时间,格式为00:00:00,时间以秒为单位自加,当检测到按键按下之后,时间归零,继续从0开始计时。

1.STM32G030C8T6查看底板原理图

单片机--中断实验练习

单片机--中断实验练习

2.查看核心板底座原理图

单片机--中断实验练习

3.打开STM32CubeMX新建工程配置对应引脚

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

4.将驱动文件放到工程目录下

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

单片机--中断实验练习

main.c

/* USER CODE BEGIN 0 */
  uint8_t buf[128]={""};
	uint8_t i=0;
	uint8_t j=0;
	uint8_t k=0;
/* USER CODE END 0 */

int main(){

 /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		HAL_Delay(1000);
			i++;
			if(i==60)
			{
				j++;
				i=0;
				if(j==60)
				{
					k++;
					j=0;
					if(k==60)
					{
						k=0;
					}
				}
			}	
			sprintf(buf," %02d : %02d : %02d ",k,j,i);
			Gui_DrawFont_GBK16(8,50,RED,BLACK,buf);
  }
  /* USER CODE END 3 */
}

gpio.c文章来源地址https://www.toymoban.com/news/detail-460062.html

/* USER CODE BEGIN 1 */
extern uint8_t i;
extern uint8_t j;
extern uint8_t k;
/* USER CODE END 1 */


/* USER CODE BEGIN 2 */
void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin)
{
	if(GPIO_Pin==GPIO_PIN_8)
	{
		i=0;
		j=0;
		k=0;
	}	
}
/* USER CODE END 2 */

到了这里,关于单片机--中断实验练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32单片机(六)TIM定时器 -> 第二节:TIM定时中断练习(定时器定时中断和定时器外部时钟)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月09日
    浏览(41)
  • STM32单片机(五)第二节:EXTI外部中断练习(对射式红外传感器计次和旋转编码器计次)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月09日
    浏览(47)
  • 【51单片机——————外部中断】

    中断是指单片机主程序运行过程中,出现某些意外情况需要单片机处理,单片机能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 在实际应用开发中,单片机不可能一直轮询查看按键是否按下,单片机还需要去执行其他任务,

    2024年02月06日
    浏览(48)
  • 【51单片机】外部中断

    51的 外部中断 与 定时器(内部中断) 有一个共同特点,那就是与主程序是 并行 工作的,就是主程序在运行的时候,中断也在等待触发条件,当 中断被触发的时候会暂停主程序 转而执行中断服务程序,只有中断服务程序执行完后,才会继续执行主程序。 这里的触发条件是指:

    2024年02月02日
    浏览(67)
  • 单片机学习 11-中断系统(定时器中断+外部中断)

    ​ 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学习单片机必须要掌握的。很多初学者被困在中断中,学了很久仍然不知道中断究竟是

    2024年02月05日
    浏览(51)
  • 51 单片机【外部中断、定时器中断、回调函数】

    ​这里的外部中断类似监听器,时时刻刻监视某引脚的电平变化;这里的定时器中断类似于定时任务,可以定时执行某函数;这里将回调函数和中断结合起来,案例里有点设计模式的味道(忘了哪个了,也可能就是感觉,关于高层不能调用低层的解决),也有点函数式编程的

    2024年02月04日
    浏览(70)
  • 单片机学习笔记---红外遥控(外部中断)

    目录 红外遥控简介 硬件电路 基本发送与接收 NEC编码​​​​​​​ 遥控器键码 复习外部中断和定时器 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940nm 通信协议标准:NEC标

    2024年02月22日
    浏览(41)
  • 51单片机:中断系统(外部中断,定时器中断,串口通信)

    目录 中断系统简介: 中断的优先级和嵌套: 8个中断请求源及其优先级: 中断的分别介绍: 1、外部中断0:INT0   2、外部中断1  3、T0和 T1:定时计数器的功能 4、串口中断(串口为什么使用定时器后面讲) 中断寄存器 (1)中断允许控制(IE) (2)中断请求标志(TCON) (

    2024年01月25日
    浏览(48)
  • STC15系列单片机学习6:外部中断

    外部中断,就是通过单片机IO引脚电平的变化触发的中断。 STC15系列单片机的外部中断源一共有5个,分别是外部中断0(INT0)、外部中断1(INT1)、外部中断2(INT2)、外部中断3(INT3)、外部中断4(INT4);当然不是所有的STC15系列单片机都有着5个外部中断。 中断源 触发行为

    2024年03月12日
    浏览(174)
  • 51单片机定时器中断按键消抖(无延时)

    单片机入门学习记录(二) 在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片

    2024年02月14日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包