完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > HID
HID(High intensity Discharge)是高壓氣體放電燈的簡(jiǎn)稱,一般由高壓包、鎮(zhèn)流器(安定器)、燈泡組成。電路中連接各電器設(shè)備的接線部件,由絕緣護(hù)套、接線端子、導(dǎo)線及絕緣包扎材料等組。
HID(High intensity Discharge)是高壓氣體放電燈的簡(jiǎn)稱,一般由高壓包、鎮(zhèn)流器(安定器)、燈泡組成。電路中連接各電器設(shè)備的接線部件,由絕緣護(hù)套、接線端子、導(dǎo)線及絕緣包扎材料等組。
HID(High intensity Discharge)是高壓氣體放電燈的簡(jiǎn)稱,一般由高壓包、鎮(zhèn)流器(安定器)、燈泡組成。電路中連接各電器設(shè)備的接線部件,由絕緣護(hù)套、接線端子、導(dǎo)線及絕緣包扎材料等組。
完成stm32 上HID的應(yīng)用
這個(gè)是公司的項(xiàng)目,以前基于usb的虛擬串口來做上下位機(jī)通信,由于usb平時(shí)也就刷參數(shù)和調(diào)試之用,也不很常用,外面反應(yīng)usb有時(shí)會(huì)連不上stm32控制器,心里一直認(rèn)為不是大問題,后來反應(yīng)的多了,就重視這個(gè)事情了,雖然usb平時(shí)不用,但是用的時(shí)候只要出現(xiàn)異常掉線,就再也連不上去了,特別影響用戶對(duì)我們產(chǎn)品的信心。
在網(wǎng)上找了很多資料,到現(xiàn)在也只能隱約確定是stm32官方的虛擬串口庫(kù)有問題,我發(fā)現(xiàn)不同的電源板都會(huì)影響到usb虛擬串口的枚舉,于是下定決心使用其他方式來做上下位機(jī)的連接,排除了usb虛擬串口,眼前的選擇只有兩個(gè)
1)usblib,這個(gè)是針對(duì)usb的上位機(jī)庫(kù),可以玩很多的花樣,但是需要開發(fā)者稍稍熟悉usb協(xié)議,而且這個(gè)需要在上位機(jī)上安裝usb驅(qū)動(dòng)程序。
2)hid設(shè)備,這個(gè)是windows自身支持的usb設(shè)備,只支持中斷傳輸,最大的速率也就64Kb/s,上位機(jī)采用windows api編程
我估算了一下,hid方式滿足我的要求,而且是免驅(qū)動(dòng),又不用學(xué)習(xí)usblib,所以就使用hid方式實(shí)現(xiàn)了usb通信。
hid幾個(gè)注意事項(xiàng):
1)對(duì)于windows API來說,讀和寫hid設(shè)備的數(shù)據(jù)包都是大小確定了,也就是說如果stm32 端口設(shè)備的hid屬性是64的話,那么讀寫都是64字節(jié)的。讀寫的最大幀是64字節(jié),我在代碼中是基于64字節(jié)做應(yīng)用層協(xié)議的。
2)hid寫速度不能太快,所以我一般在寫前會(huì)等待2ms左右,確保不會(huì)寫出錯(cuò)。
確認(rèn)是是HIDAPI的代碼問題,我對(duì)寫函數(shù)修改如下,結(jié)果就好了,可以一直寫無需等待
int HID_API_EXPORT HID_API_CALL hid_write(hid_device *dev, const unsigned char *data, size_t length)
{
DWORD bytes_written;
BOOL res;
BOOL bResult;
OVERLAPPED ol;
HANDLE ReportEvent;
ReportEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
ResetEvent(ReportEvent);
memset(&ol, 0, sizeof(ol));
ol.hEvent = ReportEvent;
//res = WriteFile(dev-》device_handle, data, 23, NULL, &ol);
res = WriteFile(dev-》device_handle, data, length, NULL, &ol);
if (!res) {
int errcode = GetLastError();
if (errcode != ERROR_IO_PENDING) {
// WriteFile() failed. Return error.
register_error(dev, “WriteFile”);
return -1;
}
}
bResult = WaitForSingleObject(ReportEvent, 50);
if(bResult == WAIT_TIMEOUT || bResult == WAIT_ABANDONED)
{
register_error(dev, “WriteFile”);
CancelIo(&(dev-》device_handle));
return -1;
}
// Wait here until the write is done. This makes
// hid_write() synchronous.
res = GetOverlappedResult(dev-》device_handle, &ol, &bytes_written, TRUE);
if (!res) {
// The Write operation failed.
register_error(dev, “WriteFile”);
return -1;
}
return bytes_written;
}
3)上位機(jī)上的讀寫之間不能釋放hid的句柄,這個(gè)我參考百合的hid教材的時(shí)候,吃了不少苦頭。
4)我使用了HIDAPI這個(gè)庫(kù)來操作hid設(shè)備。
linux內(nèi)核中通用HID觸摸驅(qū)動(dòng)
在linux內(nèi)核中,為HID觸摸面板實(shí)現(xiàn)了一個(gè)通用的驅(qū)動(dòng)程序,位于/drivers/hid/hid-multitouch.c文件中。hid觸摸驅(qū)動(dòng)是以s...
2024-10-29 標(biāo)簽:內(nèi)核Linux驅(qū)動(dòng)程序 537 0
熒光燈鎮(zhèn)流器中有一種典型的簡(jiǎn)單高頻驅(qū)動(dòng)方法,但是具有高弧光管壓力的 HID 燈存在聲共振現(xiàn)象(*) 的問題。為了避免這個(gè)問題,HID 燈需要以低于 1k...
2024-02-02 標(biāo)簽:轉(zhuǎn)換器鎮(zhèn)流器HID 617 0
對(duì)于 USB 接口的 HID 設(shè)備,有一套協(xié)議。 1.1 描述符 HID 設(shè)備有如下描述符: HID 設(shè)備的"設(shè)備描述符"并無實(shí)際意...
開發(fā)板既要當(dāng)USB OTG口既要當(dāng)鍵盤,又要當(dāng)鼠標(biāo)使用。則要生成兩個(gè)hid:,一個(gè)鍵盤hidg0,一個(gè)鼠標(biāo)hidg1。
在講述繞線貼片電感我們之前也有給大家做個(gè)簡(jiǎn)單的介紹,最近我們發(fā)現(xiàn)很多人在咨詢?cè)鯓颖鎰e繞線貼片電感好壞的問題。今天帶你們了解怎樣辨別繞線貼片電感的好壞。
可以用Arduino來制作USB設(shè)備嗎?嘗試通過Arduino Pro Micro(Leonardo)使用HID功能
這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。本文最初發(fā)布在deviceplus.jp網(wǎng)站上,而后被翻譯成英語。
一個(gè)藍(lán)牙實(shí)戰(zhàn)項(xiàng)目USB藍(lán)牙接收器的解析總結(jié)
前不久,一名在深圳的大學(xué)好友聯(lián)系到我,他們公司需要做一個(gè) USB藍(lán)牙接收器 ,功能大體如下: USB藍(lán)牙接收器插在電腦上使用,被識(shí)別為鍵盤; 手機(jī)程序連...
PECVD沉積SiNx:H薄膜HID氫誘導(dǎo)退化的研究
PECVDSiNx:H薄膜常用作晶硅太陽能電池的減反射和鈍化層,其鈍化效果與氫含量有關(guān),但該薄膜在光照和熱輻射下會(huì)發(fā)生氫致退化(HID)。光照后,p型和...
藍(lán)牙自動(dòng)感應(yīng)模塊BLE HID無感車鑰匙方案
ANS-BT101M 是一款低功耗藍(lán)牙模塊,支持藍(lán)牙 5.1 和 HID、GATT、HID 等配置文件。 模塊可以通過UART通信和AT命令設(shè)置模塊名稱...
TRI的機(jī)器人技術(shù)高級(jí)副總裁Max Bajracharya指出:我們可以訓(xùn)練一個(gè)大型模型來一次性學(xué)習(xí)常識(shí)性知識(shí),并通過自然語言編程并適應(yīng)用戶。
2023-07-15 標(biāo)簽:AIHID自動(dòng)駕駛 541 0
HID燈受環(huán)境因素影響,灌封膠可為其提供持久性的保護(hù)
HJ-5011聚氨酯灌封膠為照明燈具封裝的通用材料,它在使用時(shí),膠體透明度較高,可使HID燈的光照效果得到良好體現(xiàn),其流動(dòng)性可使填平燈具內(nèi)部間隙,使得密...
BT401藍(lán)牙HID模塊鍵盤鼠標(biāo)的補(bǔ)充說明
BT401支持雙模藍(lán)牙,所以可以很輕松的支持藍(lán)牙BLE 。因?yàn)橹С至薆LE,所有就支持了BLE的HID。 也就是藍(lán)牙的鍵盤、鼠標(biāo)設(shè)備 注意,這里BL...
KT6368A的HID藍(lán)牙雙模版本_藍(lán)牙鍵盤鼠標(biāo)掃碼槍方案介紹
藍(lán)牙HID,實(shí)際上指的就是藍(lán)牙鍵盤、藍(lán)牙鼠標(biāo)、藍(lán)牙遙控器等等設(shè)備類型,都稱之為人機(jī)交互設(shè)備。這里我們KT6368A藍(lán)牙芯片,就是虛擬成這些設(shè)備。對(duì)于wi...
AT32 MCU USB HID應(yīng)用 帶來無縫連接芯體驗(yàn)
傳統(tǒng)設(shè)備數(shù)據(jù)傳送依靠有線USB將信息傳輸至主機(jī),經(jīng)常面臨多條線材擺放凌亂、布線空間及操控范圍受限等問題?;诳萍几镄滤俣炔粩嗉涌?、技術(shù)推陳出新,IoT概...
SDK中的B85m_ble_sample例程的使用及注意事項(xiàng)
單連接SDK中B85m_ble_sample適用825x芯片和827x芯片,所以編譯選項(xiàng)中又分為了825x_ble_sample和827x_ble_sa...
我使用的硬件是極海的APM32F407IG MINI Board,它提供了一個(gè)全速的USB口(Type B)。打開Device_Examples目錄中的...
HID轉(zhuǎn)串口免驅(qū)芯片CH9326概述及特點(diǎn)
CH9326是一款HID轉(zhuǎn)串口免驅(qū)芯片。CH9326支持雙向數(shù)據(jù)傳輸,用于接收串口數(shù)據(jù),并按照HID類設(shè)備規(guī)范,將數(shù)據(jù)打包通過USB口上傳給計(jì)算機(jī),或者...
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動(dòng)駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺 | 無人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國(guó)民技術(shù) | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |