首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
stm32f103检测光强
2024-10-20
STM32应用实例十四:利用光敏二极管实现光度测量
最近我们在开发臭氧发生器时,需要监测生成的臭氧的浓度,于是想到使用光度计来测量.因为不同浓度的臭氧对管的吸收作用是不相同的,于是检测光照强度的变化就可以得到相应的浓度数据. 1.硬件设计 此次光照度检测我们选用了S1336-5BQ光电点二极管,其光谱响应范围为:190~1100nm范围.而我们的光源波长则在254nm最显著,包括其它600nm以内的光波,这个好处于测量范围之内. 根据相关的资料,光电点二极管S1336-5BQ的每100lx的光照对应有5μA的电流.于是我们可以据此设计一个电路,将
基于STM32F103的Max30100心率、血氧检测代码(转载)
MAX30100是能够读取心率.血氧的传感器,通信方式是通过IIC进行通信.其工作原理是通过红外led灯照射,能够得到心率的ADC值. MAX30100的寄存器可以分为五类,状态寄存器.FIFO.控制寄存器.温度寄存器.ID寄存器.温度寄存器是读取芯片的温度值,以矫正因为温度而产生的偏差.ID寄存器是读取芯片的ID号. 重点在于另外三类寄存器.STATUS寄存器其中,STATUS寄存器有两个,一个是中断状态寄存器,一个是中断使能寄存器. FIFO寄存器数据存储在FIFO_DATA寄存
STM32f103按键检测程序实现长按短按
背景 只要使用单片机,按键检测基本上是一定要实现的功能.按键检测要好用,最重要的是实时和去抖.初学者往往会在主循环调用按键检测程序(实时)并利用延时去抖(准确).这种在主循环内延时的做法对整个程序非常不友好,也非常不高效.因此,本篇就我自己实现的一个检测按键并可判断按键是否长短按的程序做个介绍和记录. 正文 在硬件连接上,按键一端连接在普通IO口上,另一端接地,IO配置为内部弱上拉. 在软件上,先配置一个5ms定时器并打开中断,每进入该定时中断则置位一次标志位"key_handle".
STC15W408AS简单使用教程-简单的光强检测!
第一步:搭建开发环境 安装最新版本的STC_ISP程序烧录软件,链接:http://pan.baidu.com/s/1slLPnOD 密码:6bov 安装keil C51的51系列单片机集成IDE软件,链接:https://www.keil.com/c51/demo/eval/c51.htm 安装串口程序,链接:http://rj.baidu.com/soft/detail/27520.html?ald 安装Altium Designer,链接:http://www.mr-wu.cn/altiu
STM32f103 定时器之编码器接口模式
背景 买了个Arduino的旋转编码器模块,配合STM32定时器的编码器模式实现了旋转角度以及圈数的计数.这种旋转编码器我能想到的实际应用场景暂时只有实体音量旋钮,鼠标的滚轮等,所以只实现了计数.阅读Arduino关于该编码器的介绍,该编码器还可以实现旋转的速度.加速度的计算.应该算是算法层级的吧,还没做到实际应用,暂时不深究,本篇仅仅对旋转编码器的原理以及STM32编码器接口模式的配置使用方法做个简介. 正文 编码器分类: 按工作原理:光电式.磁电式和触点电刷式: 按码盘的刻孔方式:增量式和绝
STM32f103之外部中断
一.背景 有个需求,IO口检测上升沿,然后做相应的动作.在此记录STM32F103的外部中断结构及配置方法, 以备下次快速上手使用. 有许多不太明白,又是老司机(:-D)帮忙,真的是站在别人的肩膀上会让你看的更远,走的更快, 感谢老司机. 二.正文 STM32f103有68个可屏蔽中断.(但是,真正能用的其实远没有这么多,原因下面会详述.) 有16个可编程的优先等级,优先等级的概念可详见我的另外一篇博客<STM32 之 NVIC(中断向量. 优先级)简述>,链接:"http://ww
DPM 目标检测1
1. Origin 原始目标检测: HOG梯度模型+目标匹配 为了提过对目标形变的鲁棒性(多视角->多组件): 目标形态多样性—>多个模型 目标的动态变化多视角—> 子模型 目标形变—> 图结构的组件模型策略 DPM目标检测: HOG特征提取+SVM分类器+滑动窗 2. 改进的HOG特征 1) 原始HOG特征(histogram of gradient)->局部物体外形能被光强梯度或边缘方向的分布所描述,一幅图被分为小的连接区域(cells) 对图像局部出现的方向梯度进行计数
目标检测之线段检测---lsd line segment detector
(1)线段检测应用背景 (2)线段检测原理简介 (3)线段检测实例 a line segment detector (4)hough 变换和 lsd 的区别 ---------------------author:pkf ------------------------------time:2015-1-26 -----------------------------------------qq:1327706646 (1)线段检测应用背景 线段检测在高铁电机机车顶部图像检测系统中有很大应用,像
OpenCV中基于HOG特征的行人检测
目前基于机器学习方法的行人检测的主流特征描述子之一是HOG(Histogram of Oriented Gradient, 方向梯度直方图).HOG特征是用于目标检测的特征描述子,它通过计算和统计图像局部区域的梯度方向直方图来构成特征,用这些特征描述原始图像. HOG的核心思想是所检测的局部物体外形能够被光强梯度或边缘方向的分布所描述.通过将整幅图像分割成小的连接区域(称为cells),每个cell生成一个方向梯度直方图或者cell中pixel的边缘方向,这些直方图的组合可表示出(所检测目标的目
基于STM32F103和Cube的输入捕获例程
1.开发环境 (1)Cube5.24 (2)Keil5 (3)STM32F103 2.Cube配置 Cube配置很简单,只要打开TIM4通道1的引脚,设置为输入捕获模式,在配置是高或低电平沿触发 TIM的定时器时钟可根据自己的需要来配置,触发模式为上升沿触发 最后把中断给打开 Cube生成的代码如下: void MX_TIM4_Init(void) { TIM_MasterConfigTypeDef sMasterConfig = {}; TIM_IC_InitTypeDef sConfigIC
STM32F103 串口-IAP程序升级
STM32F103 串口-IAP程序升级 通常情况下我们给STM32系列的单片机烧录程序文件的时候,使用SWD.J-link或者通过设置BOOT引脚后,使用串口进行程序下载,这样的方式直接一次性将程序文件下载到单片机的flash中,比较适合绝大部分的应用.但是有些应用中产品装配完成后,下载口不便引出的情况下,或者是某些设备需要具有远程更新程序情况下,使用串口IAP的方式将会更加便捷. 一般我们常见的51单片机内部的flash空间,只能使用下载器进行烧录程序.芯片自身无法擦写内部flash空间.这
STM32F103之ADC学习记录
1.问题 1)10位ADC的误差是多少? 首先要分清分辨率与精度的区别. 10cm的尺子,有100个等分刻度,则该尺子的分辨率为1mm. 但不能说这把尺子的精度是1mm. 在冬天,尺子会热胀冷缩,依然有100格刻度,每格刻度代表1mm,但每格刻度与真实的1mm是不同的,精度在变化. 实际上,10位的ADC将会把基准电压分成1024份,分辨率为:基准电压/1024. 2)ADC的采样频率是多少? 芯片开发手册上转换时间公式为: 例子中,采样频率为1MHz. 3)STM32F103这款芯片有多少个A
【补档STM32】STM32F103俄罗斯方块游戏实现
项目地址:https://gitee.com/daycen/stm32-tetris/tree/master 使用Keil uVision5打开即可 一.概述 本文介绍了一个基于STM32的俄罗斯方块游戏实现例子 整体方案的硬件部分由一个最小系统.按键开关模块以及2.2寸TFTLCD屏幕组成,软件部分设计由绘图.逻辑.整合控制三大部分组成,由一个二维绘图函数绘制出游戏画面,并由碰撞判断.状态储存等机制实现游戏的正常运行. 需求: 开发一款基于STM32F103的游戏机,能够游玩经典游戏<
halcon——缺陷检测常用方法总结(频域空间域结合)
摘要 缺陷检测是视觉需求中难度最大一类需求,主要是其稳定性和精度的保证.首先常见缺陷:凹凸.污点瑕疵.划痕.裂缝.探伤等. 缺陷检测算法不同于尺寸.二维码.OCR等算法.后者应用场景比较单一,基本都是套用一些成熟的算子,所以门槛较低,比较容易做成标准化的工具.而缺陷检测极具行业特点,不同行业的缺陷算法迥然不同.随着缺陷检测要求的提高,机器学习和深度学习也成了缺陷领域一个不可或缺的技术难点. 总的来说,机器视觉中缺陷检测分为一下几种: blob+特征(官方示例surface_scratch.hde
STM32F103学习进程
软硬件下载程序和程序运行的相关问题和解决方案,以我自身买的STM32F103C8T6为例 (1) 硬件需要 1. 购买一个STM32F103XXX的板子.这是一个操作实践性非常强的一个学习过程,如果没有实物的构件,即使学习的再好,记忆力非常好,到真正实际用的时候也会出现各式各样的问题,所以必须要有自己的板子. STM32F103C8T6实物图 2. 需要一个USB转TTL的模块板.这个是程序下载到STM32F103的一个必须硬件要求,有些开发板自带转换端口,可以忽略这步. 转换模块 3. 一根安
(stm32f103学习总结)—输入捕获模式
一.输入捕获介绍 在定时器中断实验章节中我们介绍了通用定时器具有多种功能,输入捕获就是其中一种.STM32F1 除了基本定时器 TIM6 和 TIM7,其他定时器都具有输入捕获功能.输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,通常用于测量输入信号的脉宽.测量 PWM 输入信号的频率及占空比. 输入捕获的工作原理比较简单,在输入捕获模式下,当相应的 ICx 信号检测到跳变沿后,将使用捕获/比较寄存器(TIMx_CCRx)来锁存计数器的值.简单的说就是通过检测 TIMx_CHx 上的
dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别.同时,对于程序的dll文件应该放到System32文件夹,还是SysWow64,大部分人做的决定是,32位程序放到System32,64位程序放到SysWow64.是不是这样呢,那么今天就由我身边发生的一个案例来详细的说明一下. dll文件不匹配导致数据库无法启动 前段时间,数据库做了一些功能上的
Android性能优化之利用LeakCanary检测内存泄漏及解决办法
前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来.所以决定抽空学习总结一下这方面的知识,以及分享一下我们是如何检测内存泄漏的.我们公司使用开源框架LeakCanary来检测内存泄漏. 什么是内存泄漏? 有些对象只有有限的生命周期.当它们的任务完成之后,它们将被垃圾回收.如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,这就会导致内存泄漏
C++的内存泄漏检测
C++大量的手动分配.回收内存是存在风险的,也许一个函数中一小块内存泄漏被重复放大之后,最后掏空内存. 这里介绍一种在debug模式下测试内存泄漏的方法. 首先在文件的开头以确定的顺序写下这段代码: #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> #include <stdlib.h> 第1行定义了宏,实现一些内存分配函数向debug模式的映射. 打开<crtdbg.h>我们可以找到这么一段代码: 可以看到,定义了_DEBUG
使用 Android Studio 检测内存泄漏与解决内存泄漏问题
本文在腾讯技术推文上 修改 发布. http://wetest.qq.com/lab/view/63.html?from=ads_test2_qqtips&sessionUserType=BFT.PARAMS.195040.TASKID&ADUIN=913337456&ADSESSION=1468996652&ADTAG=CLIENT.QQ.5431_.0&ADPUBNO=26510 自从Google在2013年发布了Android Studio后,Android
iOS网络4——Reachability检测网络状态
一.整体介绍 前面已经介绍了网络访问的NSURLSession.NSURLConnection,还有网页加载有关的webview,基本满足通常的网络相关的开发. 其实在网络开发中还有比较常用的就是网络状态的检测.苹果对需要联网的应用要求很高,就是必须要进行联网检查.另外,当网络发生异常时能够及时提示用户网络已断开,而不是程序问题造成卡顿:当用户观看视频或下载大文件时,提示用户当前的网络状态为移动流量或wifi下,是否继续使用,以避免在用户不知情下产生过多流量资费等等. 网络状态的检测有多种方法,
热门专题
idea启动项目卡住不动
unity 武器拖尾空物体设置
mysql 多表按字段去重
eclipse创建maven项目后jdk版本是1.5
window.location 获取连接地址
java随机生成一个整数
如何监听elementUI中布局容器到底部
halcon多模板匹配
Android 定时执行线程
pyqt5tablewidget如何实现冻结一列
魅族18 识别成winusb 而不是 adb
glpi与manager
MFC对话框搭建 openGL
hbase数据库重启
为什么不用自增长ID
java asm限制
h5 zxing 对焦
arduino开发环境是什么
java dot文件
Hadoop框架简介