LED发展到今天,能和HID争树红树碧高低影了吗

氙气灯亮还是LED灯亮_氙气灯吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:9,588贴子:
氙气灯亮还是LED灯亮收藏
苏宁易购,氙气大灯,好车低价购,各类车品优惠购不停!氙气大灯,苏宁易购汽车超市,商品种类全,折扣多,正品保障,极速物流,售后无忧,特色服务!
淘宝搜店铺,领路者HID。
氙气灯相对比较亮
疝气灯亮 但是不节能,LED
节能环保!
安装流明 和感官来说LED亮 但是实际还是氙气灯铺路效果好 除非汽车厂家配置好的LED大灯效果会很好 单买LED灯炮根本不行 厂家会根据灯来配置透镜 而且不管什么车型现在LED都是近光最少4个灯泡 如果自己单换也就是只能换两个近光两个光 数量来说就比车厂出的少亮度也就不行了 而且你的透镜或是反光碗也和LED不匹配 也出不来效果 看着亮 铺路效果赶不上卤素大灯
这样说吧!同价位氙气灯亮,同样亮铺路效果一样LED价格有点感人
登录百度帐号氙气灯LED优缺点_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
氙气灯LED优缺点
&&氙气灯LED优缺点
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢如何与HID设备通讯(二)
//来自百合电子工作室:
想学习usb开发的可以去看看。是个开源的,挺详细的。我只是转载了一部分。
USB开源项目:Easy USB 51 Programer
三、读写HID设备的步骤
  读写HID设备步骤如下:
①、得到系统HID设备结构数组指针
②、对设备进行遍历
③、得到指定HID设备的句柄
④、readfile/writefile进行读写
  下面分别对各步骤及其所涉及的相关API函数进行介绍。
1、得到设备句柄:这步用到的两面个主要API函数原型为:
A、通过以下函数
VOID&&HidD_GetHidGuid(OUT&LPGUID&&HidGuid&&&&);&&
得到HID设备的GUID。
B、再通过以下函数
HDEVINFO&SetupDiGetClassDevs(
&&CONST&LPGUID&ClassGuid,&
&&PCTSTR&Enumerator,&
&&HWND&hwndParent,&
&&DWORD&Flags
取得HID设备结构数组指针,以便下一步利用这个数组对所有HID设备进行遍列。
2、对设备进行遍历:遍历过程如下
A、首先执行以下函数:
WINSETUPAPI&BOOL&WINAPI&&SetupDiEnumDeviceInterfaces(
&&&&IN&HDEVINFO&&DeviceInfoSet,
&&&&IN&PSP_DEVINFO_DATA&&DeviceInfoData&&OPTIONAL,
&&&&IN&LPGUID&&InterfaceClassGuid,
&&&&IN&DWORD&&MemberIndex,
&&&&OUT&PSP_DEVICE_INTERFACE_DATA&&DeviceInterfaceData);&&
运行此函数的主要目的是取得第一个参数DeviceInfoSet的填充值,又将此值作为以下函数
BOOL&SetupDiGetDeviceInterfaceDetail(
&&&&HDEVINFO&DeviceInfoSet,&
&&&&PSP_DEVICE_INTERFACE_DATA&DeviceInterfaceData,&
&&&&PSP_DEVICE_INTERFACE_DETAIL_DATA&DeviceInterfaceDetailData,&
&&&&DWORD&DeviceInterfaceDetailDataSize,&
&&&&PDWORD&RequiredSize,&
&&&&PSP_DEVINFO_DATA&DeviceInfoData);&&&
的第一个参数,以便取得这个函数的第三个参数DeviceInterfaceDetailData的填充值,然后利用这个值传递给CreateFile函数,此时CreateFile会返回一个指向HID设备的句柄,再根据以下函数
BOOLEAN&&HidD_GetAttributes(
&&&&IN&HANDLE&&HidDeviceObject,
&&&&OUT&PHIDD_ATTRIBUTES&&Attributes
取得此HID设备的属性(第二个参数的填充值),然后判断属性里的PID(Attributes-&ProductID)和VID(Attributes-&VendorID)是否是我们要查找的设备的PID和VID。PID和VID在下位机固件代码的设备描述符里提供(设备描述里的idProduct域和idVendor,参考发表的文章《》一文中表4),当然您也可以通过一些工具查询得到PID和VID,您可以到USB组织官方网站下载这类工具。
3、根据得到的设备句柄利用ReadFile和WriteFile对设备进行读写操作。
  已经将以上步骤封装成了一个HID类(参考了其它一些实例代码),它能实现对指定PID和VID设备的查找,并实现了数据收发功能,同时具有设备拨插检测通知功能。
下面用实例说明如何使用这个类。
&四、读写HID设备实例
1、找开Visual C++ 6.0,新建一基于MFC的工程名为:Easy USB 51 Programer
2、MFC AppWizard Step 1对话框中选择基于对话框的应用程序,然后点“Finish”按钮,如图所示:
3、创建3个静态文本标签(Static
Text),文本内容分别为:Write、Read和Message;创建两个文本框和一个列表框,ID分别为:IDC_EDIT_TX、IDC_EDIT_RX和IDC_LIST_MESSAGE;两个按钮ID和文本分别为:IDC_BTN_WRITE(Write)和IDCANCEL(Exit)。界面如下:
4、添加控件所对应的变量,如下图所示:
5、将Hid.c和Hid.h导入工程,并将“要用到的windows
ddk里的几个文件”文件夹内的文件复制到工程所在目录,在Procect-&Settings-&Link页的“Object/Library
moudles”设置中添加“hid.lib setupapi.lib”,如下图所示:
6、在stdafx.h文件中包含头文件语句前添加:#define WINVER&
7、修改Hid.c中的PID和VID宏定义来设置需要访问的HID设备,此处的PID和VID值分别为0x1:
#define&VID&0x0471
#define&PID&0x0666&&
8、在CEasyUSB51ProgramerTest1Dlg类中添加成员变量m_MyHidDevice,其定义如下
CHid&m_MyHidD&&
当然您得包含头文件Hid.h。
9、在CEasyUSB51ProgramerTest1Dlg类的OnInitDialog函数中添加如下语句:
m_MyHidDevice.m_hParentWnd&=&(HANDLE*)&this-&GetSafeHwnd(&);
if(m_MyHidDevice.FindHid())&&&&&//找到指定HID设备
&&&&m_ctrlMessage.InsertString(-1,"My&hid&device&detected");
else&&&&&&&&&&&&&&&&&&&&&&&&&&&&//没有找到指定HID设备
&&&&m_ctrlMessage.InsertString(-1,"My&hid&device&not&detected");
&&&&m_ctrlWrite.EnableWindow(FALSE);&&&&//禁用"write"按钮
10、在CEasyUSB51ProgramerTest1Dlg的消息映射中(“BEGIN_MESSAGE_MAP(CEasyUSB51ProgramerTest1Dlg,
CDialog)” 与 “END_MESSAGE_MAP()”之间)添加如下代码:
ON_MESSAGE(WM_DEVICECHANGE,&OnDeviceChange)&&
11、在CEasyUSB51ProgramerTest1Dlg类中添加成员函数:
LRESULT&OnDeviceChange(WPARAM&wParam,&LPARAM&lParam);&&
12、成员函数OnDeviceChange的结构如下:
LRESULT&CEasyUSB51ProgramerTest1Dlg::OnDeviceChange(WPARAM&wParam,&LPARAM&lParam)
&&&&switch(LOWORD(wParam))&
&&&&&&&&&&
&&&&&&&&case&DBT_DEVICEARRIVAL:
&&&&&&&&&&&&&&
&&&&&&&&&&&&if(m_MyHidDevice.FindHid())&&&
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&break;
&&&&&&&&&&
&&&&&&&&case&DBT_DEVICEREMOVECOMPLETE:
&&&&&&&&&&&&if(!m_MyHidDevice.FindHid())&&&&&&
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&break;
&&&&return&true;
13、这里为了实现在Message信息框里显示HID设备的拨插操作,现对OnDeviceChange函数作如下填充:
LRESULT&CEasyUSB51ProgramerTest1Dlg::OnDeviceChange(WPARAM&wParam,&LPARAM&lParam)
&&&&switch(LOWORD(wParam))&
&&&&&&&&&&
&&&&&&&&case&DBT_DEVICEARRIVAL:
&&&&&&&&&&&&&&
&&&&&&&&&&&&if(m_MyHidDevice.FindHid())&&&
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&unsigned&short&nIndex&&&=&m_ctrlMessage.InsertString(-1,"My&hid&device&detected");
&&&&&&&&&&&&&&&&m_ctrlMessage.SetCurSel(nIndex);&&&&//流动信息窗口
&&&&&&&&&&&&&&&&m_ctrlWrite.EnableWindow(TRUE);&&&&&//启用"write"按钮
&&&&&&&&&&&&}
&&&&&&&&&&&&break;
&&&&&&&&&&
&&&&&&&&case&DBT_DEVICEREMOVECOMPLETE:
&&&&&&&&&&&&if(!m_MyHidDevice.FindHid())&&&&&&
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&unsigned&short&nIndex&&&=&m_ctrlMessage.InsertString(-1,"My&hid&device&removed");
&&&&&&&&&&&&&&&&m_ctrlMessage.SetCurSel(nIndex);&&&&//流动信息窗口
&&&&&&&&&&&&&&&&m_ctrlWrite.EnableWindow(FALSE);&&&&//禁用"write"按钮
&&&&&&&&&&&&}
&&&&&&&&&&&&break;
&&&&return&true;
&14、对HID的读写可通过Hid类的成员函数WriteHid和ReadHid。以下是"write"按钮的响应函数,实现对HID设备的读写操作:
void&CEasyUSB51ProgramerTest1Dlg::OnBtnWrite()&
&&&&unsigned&char&ucTxBuffer[64];&&&//发送缓冲
&&&&unsigned&char&ucRxBuffer[64];&&&//接收缓冲
&&&&UpdateData(TRUE);
&&&&//判断发送框中内容是否超过64字节
&&&&if(m_strTx.GetLength()&64)
&&&&&&&&AfxMessageBox("发送字节数不能超过64个字节");
&&&&//准备发送缓冲区中的内容
&&&&for(int&i=0;&i&64&;&i++)
&&&&&&&&if(i&&=&(m_strTx.GetLength()-1)&)
&&&&&&&&&&&&ucTxBuffer[i]&&&=&m_strTx.GetAt(i);
&&&&&&&&else&&
&&&&&&&&&&&&ucTxBuffer[i]&&&=&0;
&&&&//写操作
&&&&m_MyHidDevice.WriteHid(ucTxBuffer,64);
&&&&//读操作
&&&&m_MyHidDevice.ReadHid(ucRxBuffer,64);
&&&&m_strRx&&&&&=&ucRxB
&&&&UpdateData(FALSE);
完成后的实际效果:
  此例子需要用到扩展板:EXT-BOARD-A。实现功能为通过上位机设定
EXT-BOARD-A 上的8个发光二极管状态。
&1、命令及数据定义
  下位机已经规定了每帧数据的长度为64个字节,我们现在需要对每一个字节的含义作出定义。在这个实例中,我们可作如下规定:每帧数据前5个字节为命令,命令后面紧跟数据(从第6个字节开始)。命令为ASCII编码,在此实例中只有一个命令“ENLED”,代表设备LED状态。命令后面的一个字节为数据,代表D0~D7八个LED的状态,后面的字节无意义。
2、修改下位机程序
  修改main.c文件,其内容如下:
//#include&&at89x52.h&
#include&&reg51.h&
#include&"D12Config.h"
#include&"Descriptor.h"
#include&"Chap_9.h"
#include&"D12Driver.h"
#include&&string.h&
&&&&unsigned&char&ucLedS
&&&&if&(Init_D12()!=0)&&&&&&&&&&&&&&&&&&//初始化D12
&&&&&&&&return;&&&&&&&&&&&&&&&&&&&&&&&&&//如果初始化不成功,返回
&&&&IT0&=&0;&&&&&&&&&&&&&&&&&&&&&&&&&&&&//外部中断0为电平触发方式
&&&&EX0&=&1;&&&&&&&&&&&&&&&&&&&&&&&&&&&&//开外部中断0
&&&&PX0&=&0;&&&&&&&&&&&&&&&&&&&&&&&&&&&&//设置外部中断0中断优先级
&&&&EA&=&1;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//开80C51总中断&
&&&&while(1)
&&&&&&&&usbserve();&&&&&&&&&&&&&&&&&&&&&//处理USB事件
&&&&&&&&if(bEPPflags.bits.configuration)&&&&
&&&&&&&&{&&&&
&&&&&&&&&&&&//在这里添加端点操作代码&&
&&&&&&&&&&&&
&&&&&&&&&&&&if(bEPPflags.bits.ep2_rxdone&)&&//主端点接收到数据(从主机发往设备的数据)&&&&
&&&&&&&&&&&&{&&&&
&&&&&&&&&&&&&&&&bEPPflags.bits.ep2_rxdone&&&&&&&=&0;&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&//判断是否是&ENLED&命令(EpBuf的前5个字节为”ENLED“)&&&&&&&&&
&&&&&&&&&&&&&&&&if(strncmp("ENLED",EpBuf,5)==0)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&//取得LED状态设定值
&&&&&&&&&&&&&&&&&&&&ucLedState&&=&EpBuf[5];
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&//设定LED状态
&&&&&&&&&&&&&&&&&&&&P0&&=&ucLedS
&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}&&&&&
&&&&&&&&}&&
&3、上位机程序
  通过实例1的学习,其实上位机程序的编写非常简单,所以在这里只贴出源代码。
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&上位机界面&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
LED的状态由上位机控制
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。MiniLED Display HID V10.0中找不到LED屏怎么回事,如何处理
显示器抖动的原因 显示器刷新频率设置得太低 当显示器的刷新频率设置低于75Hz时,屏幕常会出现抖动、闪烁的现象,把刷新率适当调高,比如设置成高于85Hz,屏幕抖...
柔如凄,清如凄,一涛江水浮生迷,鹤峰远见低
找外贸公司去做代理销售
答: Lz 的结果是底危,很幸福啦!保持保持好心情,好孕!我是17号在龙华人民医院拿到的结果, AFP 是2.0395 MOM, 参考范围是0.5-2.0之间,属于高...
答: 网络和软件都很不错的 还可以根据你自己的情况来选择 如果你英语和高数不错的话 可以学软件 如果都不是很理想的话 可以选择网络啊 我认为网络还是不错的 网络工程师...
答: 用代IP的QQ就可以看
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区LED双光透镜灯和氙气灯有何不同?-产业新闻-LED社区
LED双光透镜灯和氙气灯有何不同?
发布时间: 07:43:14
来源:互联网
汽车升级改装,在现在已经不是什么特别新鲜的事儿了。追求时尚兼安全的汽车生活方式,已经逐渐受到车主的重视,特别是对汽车前大灯的亮度也自然有了更高要求,大灯升级有利于夜间行车安全。所以,升级LED大灯也正是在这样的社会发展背景之下,受到越来越多车主的喜爱,更多的车主会选择改装升级汽车的这双大眼,而这种热潮已经渐渐成为了提高原车&眼睛&的一种标志。此次,我们对大众速腾的大灯进行改装升级,选用的是益科光电LED双光透镜大灯,那么速腾升级后的大灯效果如何呢?下面我们就来体验一下。
这次我们进行升级的是大众速腾的近光灯,选用了益科光电LED双光透镜大灯,我们会重点体验升级前后汽车大灯的对比以及大灯的改装过程。
LED双光透镜灯和氙气灯有何不同?
随着汽车保有量的增加,车主对行车安全也有了更高的要求,特别是夜间行车安全。那么原车卤素灯的亮度在夜间行车就达不到车主想要的安全效果,所以,大部分车主都会自行升级汽车前大灯。目前,市面上升级前大灯的除了LED汽车大灯外,还有HID氙气大灯。相信不少车主都会问,氙气大灯和LED汽车灯有啥不一样?不急,以下小编会详细解说。那么对于原车卤素灯这里就不多说了,大伙都知道原车卤素灯除了灯光偏暗外,也没有透镜,聚光性差。
我们先说一下氙气灯,氙气灯的最大优势是瓦数低、亮度强,尤其是夜间照明的效果也不错。其次,氙气灯没有灯丝,不会产生因灯丝断掉而报废的问题,它的使用寿命是一般车灯的3倍。此外,氙气灯启动时间长,点亮后需五到十秒左右的时间才能达到额定亮度。还有,在雨雾天气行车光源容易散开,照射效果不及原车卤素灯。
相比氙气灯而言,LED汽车灯不仅亮度佳,且最接近自然色,避免了车主眼睛疲劳、视线看不清的问题,而且节能环保,其使用寿命也比氙气灯长,重要的是性能要也比氙气灯稳定,一点即能开启灯光,启动不延迟。美中不足的是,价格略贵。
终上所述,LED汽车灯和氙气灯最不同的地方是:氙气灯由于亮度强,相比卤素灯,夜间开启不仅提高了亮度,而且还增加了照射距离,适用于升级远光灯。而LED汽车灯除了亮度极佳外,还最接近自然色,不仅在光型上可以与卤素灯相媲美,而且色温更加纯,夜间开启LED汽车灯行车,能更加有效的降低眼疲劳,适用于升级近光灯。就小编个人推荐来说,还是推荐车主优先升级LED汽车灯,毕竟钱能解决的问题就不是问题。当然,经济拮据的情况下,车主也可以考虑一下升级氙气大灯。
严谨的改装过程
由于升级LED双光透镜灯需取代原车汽车大灯,而且还要把原车大灯拆解下来再装回去,过程繁琐复杂,万一改装不当,可能与原车电路不匹配导致故障灯,高频脉冲干扰车载电器正常工作。所以,建议车主到专业的改装门店进行改装。而此次,小编选定的专业改装店位于佛山南海的广东省快捷汽车配件市场内,也有幸目睹了专业改装店4个小时的严谨改装过程。
专业改装LED汽车灯步骤繁琐,大概耗时4小时,为了不影响车主时间,建议车主提前预约时间到店改装。
升级前后效果对比
为了让车主更直观看到升级后的灯光效果,以下,我们用速腾原车大灯和升级后的LED双光透镜大灯进行对比。车主可以明显看到,改装升级后的LED双光透镜大灯确实要比原车卤素灯要亮,聚光性也强,速腾的&眼睛&瞬间囧囧有神多了。
速腾升级了益科LED双光透镜近光灯后,实测效果确实让我们很惊喜,升级后的LED双光透镜大灯不仅在光型上媲美卤素灯,亮度也极佳,大大提高了夜间行车安全,而且也有效地降低车主眼疲劳,有改装需要的车主,可以留意一下益科的LED双光透镜大灯。不过需要注意的是,由于改装车灯过程繁琐复杂,万一改装不当,可能与原车电路不匹配导致故障灯,高频脉冲干扰车载电器正常工作。所以,车主切勿随意找门店改装,要到专业的改装门店进行改装。
据统计,我国照明用电约占全社会用电量的12%左右,且能源浪费严重。照明节能不仅是迫切需要解决的问题,更是全社会广泛存在的问题。
在人们谈论发动机和变速箱,谈论着升功率和加速度还有纽北的圈速的日子里,不知道灯从什么时候变成了一个关键配置。提到车灯,在儿时的记忆中,它远没有今天这样丰富。
Tel: 3-8070
备案号: 苏ICP备号-2}

我要回帖

更多关于 高低肩 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信