光电传感器实验例程!!!
希望各位大神指导
单片机源程序如下:
- #include "stm32f10x.h"
- #include "led.h"
- #include "delay.h"
- #include "exti.h"
- #include "nvic.h"
- void EXTI2_IRQnHandler(void);//函数声明
- int main(void)//主函数
- {
- delay_init(); //延时函数初始化
- LED_Inint();//LED0初始化
- EXTIX_Init();//外部中断线的初始化
- NVIC_Config();//中断初始化
- EXTI2_IRQnHandler();//中断服务函数
- while(1);
- }
- void LED0_On(void)
- {
- GPIO_ResetBits(GPIOB,GPIO_Pin_5); //LED0亮,给PB5低电平
- }
-
- void LED0_off(void)
- {
- GPIO_SetBits(GPIOB,GPIO_Pin_5);//LED0不亮,给PB5高电平
- }
- unsigned char LED0_IsOn(void)
- {
- return !GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_2);//检测PB2是否变成了低电平
- }
-
- void EXTI2_IRQnHandler(void)//外部中断2服务函数
- {
- unsigned char temp=LED0_IsOn();
- if(EXTI_GetITStatus(EXTI_Line2)!=RESET)//指定EXTI线的触发请求发生
- {
- if(temp)
- LED0_off();
- else
- LED0_On();
- EXTI_ClearITPendingBit(EXTI_Line2);//清除指定的EXTI线中断请求位
- }
- }
复制代码
所有资料51hei提供下载:
光电传感器实验例程.7z
(179.15 KB, 下载次数: 52)
|