按键中断实验和串口中断实验

目录

【1】按键中断实验

【2】串口中断实验


【1】按键中断实验

·实验要求:STM32上电LED(PB0)灯灭 ,当检测到按键(PA8)按下时处理中断事件,变量i++

按键中断实验和串口中断实验_第1张图片

按键中断实验和串口中断实验_第2张图片

扩展:知识点 响应优先级-》在两个中断同时触发时,且这两个中断的优先级相同,谁的相应优先级高谁执行

按键中断实验和串口中断实验_第3张图片

按键中断实验和串口中断实验_第4张图片

按键中断实验和串口中断实验_第5张图片

按键中断实验和串口中断实验_第6张图片

按键中断实验和串口中断实验_第7张图片

按键中断实验和串口中断实验_第8张图片

验证:并且学习个扩展知识-》仿真的使用

按键中断实验和串口中断实验_第9张图片

寄存器仿真控制  查看

按键中断实验和串口中断实验_第10张图片

按键中断实验和串口中断实验_第11张图片

知识点:消抖

方法一:进入中断赋值个标号,然后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】串口中断实验

          发送完成中断实验

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

按键中断实验和串口中断实验_第12张图片

按键中断实验和串口中断实验_第13张图片

按键中断实验和串口中断实验_第14张图片

按键中断实验和串口中断实验_第15张图片

按键中断实验和串口中断实验_第16张图片找到串口1的中断服务程序

按键中断实验和串口中断实验_第17张图片

当发送结束时调用UART_EndTransmit()

按键中断实验和串口中断实验_第18张图片

找到发送完成中断回调函数:

按键中断实验和串口中断实验_第19张图片

按键中断实验和串口中断实验_第20张图片

重写发送完成回调函数:

实验现象:

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

按键中断实验和串口中断实验_第21张图片

 串口接收中断实验

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

你可能感兴趣的:(单片机,stm32,嵌入式硬件)