您现在的位置是:主页 > news > 外贸综合服务网站建设/百度获客平台

外贸综合服务网站建设/百度获客平台

admin2025/6/9 14:52:55news

简介外贸综合服务网站建设,百度获客平台,wordpress去掉更新提示,建设工程管理专业学什么【IAR工程】STM8S208RB基于ST标准库下EXTI外部中断📍相关篇《【IAR工程】STM8S208RB基于ST标准库下GPIO点灯示例》🔖基于ST STM8S/A标准外设库:STSW-STM8069,版本号:2.3.1📌STSW-STM8069官方资源下载地址:https://www.…

外贸综合服务网站建设,百度获客平台,wordpress去掉更新提示,建设工程管理专业学什么【IAR工程】STM8S208RB基于ST标准库下EXTI外部中断📍相关篇《【IAR工程】STM8S208RB基于ST标准库下GPIO点灯示例》🔖基于ST STM8S/A标准外设库:STSW-STM8069,版本号:2.3.1📌STSW-STM8069官方资源下载地址:https://www.…

【IAR工程】STM8S208RB基于ST标准库下EXTI外部中断


  • 📍相关篇《【IAR工程】STM8S208RB基于ST标准库下GPIO点灯示例》
  • 🔖基于ST STM8S/A标准外设库:STSW-STM8069,版本号:2.3.1
  • 📌STSW-STM8069官方资源下载地址:https://www.st.com/zh/embedded-software/stsw-stm8069.html
  • 🔧IAR编译器版本:IAR Assembler for STMicroelectronics STM8 3.11.1
  • 📌STM8S207/208RBT6最小系统板:https://oshwhub.com/perseverance51/stm8s207rbt6-kai-fa-ban

📓EXTI外部中断

✨使用标准库就不在对寄存器的功能做阐述介绍了,只对相关的内容进行说明。

  • 🌿中断向量表
    在这里插入图片描述
  • 🍁从上面的中断向量表可以知道,只有EXTI0 - EXTI4,EXTI外部中断的引脚端口分别为:PortA、B、C、D、E,共5组GPIO。

✅外部中断触发方式

  • 🔖在标准库函数中提供了4种信号触发方式:
typedef enum {EXTI_SENSITIVITY_FALL_LOW  = (uint8_t)0x00, /*!< Interrupt on Falling edge and Low level */EXTI_SENSITIVITY_RISE_ONLY = (uint8_t)0x01, /*!< Interrupt on Rising edge only */EXTI_SENSITIVITY_FALL_ONLY = (uint8_t)0x02, /*!< Interrupt on Falling edge only */EXTI_SENSITIVITY_RISE_FALL = (uint8_t)0x03  /*!< Interrupt on Rising and Falling edges */
} EXTI_Sensitivity_TypeDef;
  1. EXTI_SENSITIVITY_FALL_LOW:下降沿和低电平触发方式
  2. EXTI_SENSITIVITY_RISE_ONLY:仅上升沿触发方式
  3. EXTI_SENSITIVITY_FALL_ONLY :仅下降沿触发方式
  4. EXTI_SENSITIVITY_RISE_FALL :上升沿和下降沿触发方式

📑EXTI中断引脚函数配置

//EXTI中断引脚配置
void EXTI_PortE_Init(void)
{//设置PE0为含中断带上拉电阻输入GPIO_Init(GPIOE , GPIO_PIN_0 , GPIO_MODE_IN_PU_IT);//中断上拉EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOE, EXTI_SENSITIVITY_FALL_ONLY);//配置中断触发方式为仅下降沿触发//设置PE1为不含中断带上拉电阻输入GPIO_Init(GPIOE , GPIO_PIN_1 , GPIO_MODE_IN_PU_IT);//中断上拉EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOE, EXTI_SENSITIVITY_FALL_ONLY);//配置中断触发方式为仅下降沿触发EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY); //设置/获取高级中断触发方式ITC_SetSoftwarePriority(ITC_IRQ_PORTE,ITC_PRIORITYLEVEL_3 );//配置软件优先级为 2 
}
//EXTI中断服务函数
INTERRUPT_HANDLER(EXTI_PORTE_IRQHandler, 7)
{if(KEY1==0){delay_ms(25);while(KEY1==0);LED1_TOGGLE;}if(KEY2==0){delay_ms(25);while(KEY2==0);LED2_TOGGLE;	}
}

📝主程序代码

/**************************************************************************************
实验现象:按下K1键,控制LED1指示灯亮灭,按下K2键,控制LED2指示灯亮灭接线说明:	1,STM8S单片机-->LEDPC7-->LED1PC6-->LED22,STM8S单片机-->独立按键模块PE0-->K1PE1-->K2注意事项:1、点击“Download active application”按钮,程序下载完成后,即可运行程序。***************************************************************************************/#include "stm8s.h"      /*  添加库函数头文件 */
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"/* 主函数 */
int main( void )
{disableInterrupts();    //关闭系统总中断//内部时钟为1分频 = 16MhzCLK_SYSCLKConfig( CLK_PRESCALER_HSIDIV1 );LED_Init();EXTI_PortE_Init();enableInterrupts();     //打开系统总中断while( 1 ){}
}
//是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数
void assert_failed( u8* file, u32 line )
{while ( 1 ){}
}

📚工程源码

  • 🔖IAR对中文路径不友好,不要将工程解压在带有中文字符路径的文件夹内直接打开工程编译,这样会导致IAR内部检索文件路径将消耗大量CPU资源。
链接: https://pan.baidu.com/s/1_agF_yvmdfqEee5lb7p7EA
提取码: pwpp