找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2667|回复: 0
打印 上一主题 下一主题
收起左侧

基于STM32F103的简单红外距离检测装置源码

[复制链接]
跳转到指定楼层
楼主
ID:220348 发表于 2018-3-25 11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很简单的一个红外检测

单片机源程序如下:
  1. //#include "stm32f10x.h"
  2. #include "Light.h"
  3. #include "delay.h"
  4. #include "hmi.h"
  5. #include "led.h"
  6. #include "sys.h"
  7. #include "usart.h"
  8. #include "timer.h"
  9. #include "exti.h"

  10. extern u32 times0;
  11. extern u32 times1;
  12. extern u32 times2;
  13. extern u32 times3;
  14. extern u8 k;
  15. extern u16 number;

  16. int main(void)
  17. {
  18.           u8 DATA;
  19.                 float t;
  20.                 u32 t1;
  21.                 u32 t2;
  22.           u32 v1;
  23.                 float v;
  24.                 u32 x;
  25.          
  26.                 delay_init();
  27.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  28.                 uart_init(9600);//直接采用单片机自带串口与串口屏进行通讯,波特率9600
  29.                 LED_Init();
  30.          //Light_Init();                  
  31.                 EXTIX_Init();
  32.                 TIM3_Int_Init(999,71);
  33.                 UART_Send_END();
  34.          
  35.          while(1)
  36.          {
  37.                  
  38.                  if(k==1)
  39.                  {
  40.                          
  41.                    t1=times1-times0;
  42.                    t2=times3-times2;
  43.                    t=(float)(t1+t2)/2;
  44.                    t1=times2-times0;
  45.                    t2=times3-times1;
  46.              v=(float)((float)13/t1+(float)13/t2)/2;
  47.                          v1=(float)v*1000;
  48.                    x=(float)(float)v*(float)t;
  49.        if(x>30)
  50.                                  CALLHMI("main.n0.pic", 4);
  51.                          else
  52.          CALLHMI("main.n0.pic", 5);
  53.                    CALLHMI("main.n0.val", x);
  54.                          CALLHMI("main.n1.val", number);
  55.                    CALLHMI("main.n2.val", t);
  56.                    CALLHMI("main.n3.val", v1);
  57.                          k=0;
  58.                  }
  59.                  if(USART_RX_STA&0x8000)
  60.                         {                                          
  61.                                 DATA=USART_RX_BUF[0];
  62.                                 USART_RX_STA=0;
  63.                         }  
  64.                 if(DATA==1)
  65.                  {
  66.                          number=0;
  67.                          CALLHMI("main.n0.val", 0);
  68.                    CALLHMI("main.n1.val", number);
  69.                    CALLHMI("main.n2.val", 0);
  70.                    CALLHMI("main.n3.val", 0);
  71.                          CALLHMI("main.n0.pic", 5);
  72.                          DATA=0;
  73.                  }
  74.                  LED0=!LED0;
  75.                  delay_ms(100);
  76.          }
  77. }
复制代码

所有资料51hei提供下载:
mianshi.rar (271.75 KB, 下载次数: 22)


评分

参与人数 2黑币 +55 收起 理由
睡着的水 + 5
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表