很简单的一个红外检测
单片机源程序如下:
- //#include "stm32f10x.h"
- #include "Light.h"
- #include "delay.h"
- #include "hmi.h"
- #include "led.h"
- #include "sys.h"
- #include "usart.h"
- #include "timer.h"
- #include "exti.h"
- extern u32 times0;
- extern u32 times1;
- extern u32 times2;
- extern u32 times3;
- extern u8 k;
- extern u16 number;
- int main(void)
- {
- u8 DATA;
- float t;
- u32 t1;
- u32 t2;
- u32 v1;
- float v;
- u32 x;
-
- delay_init();
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- uart_init(9600);//直接采用单片机自带串口与串口屏进行通讯,波特率9600
- LED_Init();
- //Light_Init();
- EXTIX_Init();
- TIM3_Int_Init(999,71);
- UART_Send_END();
-
- while(1)
- {
-
- if(k==1)
- {
-
- t1=times1-times0;
- t2=times3-times2;
- t=(float)(t1+t2)/2;
- t1=times2-times0;
- t2=times3-times1;
- v=(float)((float)13/t1+(float)13/t2)/2;
- v1=(float)v*1000;
- x=(float)(float)v*(float)t;
- if(x>30)
- CALLHMI("main.n0.pic", 4);
- else
- CALLHMI("main.n0.pic", 5);
- CALLHMI("main.n0.val", x);
- CALLHMI("main.n1.val", number);
- CALLHMI("main.n2.val", t);
- CALLHMI("main.n3.val", v1);
- k=0;
- }
- if(USART_RX_STA&0x8000)
- {
- DATA=USART_RX_BUF[0];
- USART_RX_STA=0;
- }
- if(DATA==1)
- {
- number=0;
- CALLHMI("main.n0.val", 0);
- CALLHMI("main.n1.val", number);
- CALLHMI("main.n2.val", 0);
- CALLHMI("main.n3.val", 0);
- CALLHMI("main.n0.pic", 5);
- DATA=0;
- }
- LED0=!LED0;
- delay_ms(100);
- }
- }
复制代码
所有资料51hei提供下载:
mianshi.rar
(271.75 KB, 下载次数: 22)
|