很簡單的一個紅外檢測
單片機源程序如下:
- //#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)
2018-3-26 02:49 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
|