96SEO 2026-02-20 10:04 0
由一个红外发光二极管和NPN光电三极管组成M3固定安装孔有输出状态指示灯输出高电平灯灭输出低电平灯亮。

有遮挡输出高电平。
无遮挡输出低电平。
使用3.3-5VDC
宽电压LM393比较器输出,信号干净波形好驱动能力强,超过15mA。
输出形式:数字开关量输出(0和1)。
广泛用于电机转速检测脉冲计数,位置限位等。
2、模块槽中无遮挡时接收管导通模块DO输出低电平开关指示灯亮;遮挡时DO输出高电平开关指示灯灭。
3、模块DO可与继电器相连组成限位开关等功能也可以与有源蜂鸣器模块相连组成报警器。
4、DO输出接口可以与单片机10口直接相连一般接外部中断检测传感器是否有遮档如用电机码盘则可检测电机的转速。
测速传感器输出为脉冲信号一个脉冲中断一次;红外射线导通的时候是低电平所以我们设置中断为低电平触法模式。
一般码盘上有整数格子无论是多少格其实原理一样例如10格码盘也就是有10个空格子,电机转一圈后便是射线导通10次,外部低电平触法10次;安装上面的思路,我们的测速传感器就可以发挥出效果了我们知道一圈就有10个中断于是我们计算中断次数得到的总次数除于10也就是电机转动次数了然后按照轮子的周长计算轮子一圈是多长就可以推算出小车已经跑多远了。
按照测距离的思路我们用一个MCU定时器计算1秒内接收多少个外部中断例如一秒内接收了20个外部中断我们就可以判断小车速度为1秒小车轮子转两圈然后再计算出小车轮子的周长就可得知小车1秒行驶的速度。
分为GPIO配置、中断线与GPIO引脚的连接、EXTI配置、NVIC配置与上一章的按键中断一样
EXTI_DeInit(void);//调用这个函数就可以根据这个结构体里的参数配置EXTI外设初始化EXTI要用到这个函数
EXTI_InitStruct);//调用这个函数可以把参数传递的结构体变量赋一个默认值
EXTI_StructInit(EXTI_InitTypeDef*
EXTI_InitStruct);//这个函数是用来软件触发外部中断的调用这个函数参数给一个指定的中断线就能软件触发一次外部中断
EXTI_GenerateSWInterrupt(uint32_t
比如外部中断来了会有一个挂起的寄存器置了一个标志位对于其他外设如串口收到数据会置标志位定时器时间到也会置标志位这些标志位都是放在状态寄存器的当程序想要看这些标志位时就会用到这四个函数
EXTI_Line);//可以获取指定的标志位是否被置1void
EXTI_Line);//可以对置1的标志位进行清除//在中断函数里如果你想查看标志位和清除标志位用下面两个函数
EXTI_ClearITPendingBit(uint32_t
NVIC_PriorityGroupConfig(uint32_t
NVIC_PriorityGroup);//根据结构体里面指定的参数初始化NVIC
{//------------------------定义结构体变量-----------------------------------GPIO_InitTypeDef
//定义NVIC结构体变量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开启GPIO的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
//开启AFIO的时钟//---------------------GPIO配置--------------------------------------GPIO_InitStructure.GPIO_Mode
//模式选择上拉输入GPIO_InitStructure.GPIO_Pin
//配置引脚GPIO_InitStructure.GPIO_Speed
//速率GPIO_Init(GPIOB,GPIO_InitStructure);
//GPIO初始化//---------------------GPIO配置--------------------------------------GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource14);//将中断线与GPIO引脚连接//---------------------EXTI配置--------------------------------------EXTI_InitStructure.EXTI_Line
//配置中断线EXTI_InitStructure.EXTI_LineCmd
//中断使能EXTI_InitStructure.EXTI_Mode
//选择中断模式EXTI_InitStructure.EXTI_Trigger
//下降沿触发EXTI_Init(EXTI_InitStructure);//---------------------EXTI配置--------------------------------------NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断分组这里放到模块函数里了一般情况放在主函数第一行如上一章按键中断//---------------------NVIC配置--------------------------------------NVIC_InitStructure.NVIC_IRQChannel
//选择中断通道NVIC_InitStructure.NVIC_IRQChannelCmd
//使能中断通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority
//抢占优先级配置NVIC_InitStructure.NVIC_IRQChannelSubPriority
//响应优先级配置NVIC_Init(NVIC_InitStructure);//---------------------NVIC配置--------------------------------------}
或者RESET0if(EXTI_GetITStatus(EXTI_Line14)
SET){//判断电平以免发生抖动if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)
0){CountSensor_Count;}//中断标志位置1程序就会跳转到中断函数//如果不清除中断标志位就会一直申请中断这样就会不断响应中断执行中断函数//程序就会卡死在中断函数里所以每次中断程序结束后都应该清除一下中断标志位EXTI_ClearITPendingBit(EXTI_Line14);}}//返回值
{LED_Init();OLED_Init();CountSensor_Init();OLED_ShowString(1,
Count:);while(1){OLED_ShowNum(1,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback