XX性欧美肥妇精品久久久久久,51精品国自产在线,国产欧美日韩,日韩中文字幕

0 賣盤信息
BOM詢價(jià)
您現(xiàn)在的位置: 首頁(yè) > 電子資訊 >基礎(chǔ)知識(shí) > 基于STM32的韋根協(xié)議接收實(shí)現(xiàn)

基于STM32的韋根協(xié)議接收實(shí)現(xiàn)

來(lái)源: 21ic
2021-03-09
類別:基礎(chǔ)知識(shí)
eye 25
文章創(chuàng)建人 拍明

原標(biāo)題:基于STM32的韋根協(xié)議接收實(shí)現(xiàn)

基于STM32實(shí)現(xiàn)韋根(Wiegand)協(xié)議接收,通常用于門禁系統(tǒng)、考勤系統(tǒng)等需要讀取RFID卡信息的場(chǎng)合。韋根協(xié)議是一種簡(jiǎn)單的串行通信協(xié)議,通常用于讀卡器與控制器之間的數(shù)據(jù)傳輸。其基本的信號(hào)特性包括兩條數(shù)據(jù)線(D0和D1),以及一個(gè)時(shí)鐘信號(hào)(通常由數(shù)據(jù)線的跳變產(chǎn)生)。

以下是一個(gè)基于STM32實(shí)現(xiàn)韋根協(xié)議接收的基本步驟和示例代碼:

硬件準(zhǔn)備

  1. STM32開發(fā)板:確保開發(fā)板上有足夠的GPIO口用于接收韋根信號(hào)。

  2. 韋根讀卡器:通常讀卡器會(huì)提供D0、D1和GND三個(gè)接口。

  3. 連接線:將讀卡器的D0、D1分別連接到STM32的GPIO口,GND連接到開發(fā)板的GND。

軟件實(shí)現(xiàn)

1. 配置GPIO

首先,需要配置STM32的GPIO口為輸入模式,用于接收韋根信號(hào)??梢允褂肧TM32的HAL庫(kù)或標(biāo)準(zhǔn)外設(shè)庫(kù)進(jìn)行配置。

c復(fù)制代碼


// 假設(shè)D0連接到GPIOA的第0腳,D1連接到GPIOA的第1腳

GPIO_InitTypeDef GPIO_InitStruct = {0};



// 使能GPIOA時(shí)鐘

__HAL_RCC_GPIOA_CLK_ENABLE();



// 配置D0引腳

GPIO_InitStruct.Pin = GPIO_PIN_0;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);



// 配置D1引腳

GPIO_InitStruct.Pin = GPIO_PIN_1;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

2. 初始化定時(shí)器(可選)

如果需要精確測(cè)量韋根信號(hào)的脈沖寬度或時(shí)間間隔,可以配置一個(gè)定時(shí)器來(lái)捕捉這些信號(hào)。

3. 編寫中斷服務(wù)程序

為了實(shí)時(shí)響應(yīng)韋根信號(hào)的跳變,可以配置外部中斷。例如,當(dāng)D0或D1發(fā)生變化時(shí),觸發(fā)中斷。

image.png

c

復(fù)制代碼


// 假設(shè)使用EXTI0和EXTI1中斷

void MX_GPIO_EXTI_Init(void)

{

__HAL_RCC_SYSCFG_CLK_ENABLE();



// 配置D0引腳為EXTI0中斷

GPIO_InitTypeDef GPIO_InitStruct = {0};

GPIO_InitStruct.Pin = GPIO_PIN_0;

GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;

GPIO_InitStruct.Pull = GPIO_NOPULL;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);



// 配置EXTI0中斷優(yōu)先級(jí)和使能

HAL_NVIC_SetPriority(EXTI0_IRQn, 2, 0);

HAL_NVIC_EnableIRQ(EXTI0_IRQn);



// 配置D1引腳為EXTI1中斷

GPIO_InitStruct.Pin = GPIO_PIN_1;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);



// 配置EXTI1中斷優(yōu)先級(jí)和使能

HAL_NVIC_SetPriority(EXTI1_IRQn, 2, 0);

HAL_NVIC_EnableIRQ(EXTI1_IRQn);

}



// EXTI0中斷服務(wù)程序

void EXTI0_IRQHandler(void)

{

HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);

}



// EXTI1中斷服務(wù)程序

void EXTI1_IRQHandler(void)

{

HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);

}



// GPIO中斷回調(diào)函數(shù)

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

{

static uint8_t bit_count = 0;

static uint32_t data = 0;

static uint8_t parity = 0;



if (GPIO_Pin == GPIO_PIN_0)

{

// D0信號(hào)變化

// 根據(jù)D0和D1的狀態(tài)確定當(dāng)前位

uint8_t bit = (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1) == GPIO_PIN_SET) ? 1 : 0;



// 更新數(shù)據(jù)和奇偶校驗(yàn)

data = (data >> 1) | (bit << 23);

parity += bit;



// 位計(jì)數(shù)增加

bit_count++;



// 如果接收完一個(gè)字節(jié)(26位或34位,根據(jù)韋根版本)

if (bit_count == 26 || bit_count == 34)

{

// 檢查奇偶校驗(yàn)

if ((parity % 2) == 0)

{

// 奇偶校驗(yàn)正確,處理數(shù)據(jù)

ProcessWiegandData(data);

}



// 重置位計(jì)數(shù)、數(shù)據(jù)和奇偶校驗(yàn)

bit_count = 0;

data = 0;

parity = 0;

}

}

// 如果需要處理D1信號(hào)的變化,可以在這里添加代碼

}



// 處理韋根數(shù)據(jù)的函數(shù)

void ProcessWiegandData(uint32_t data)

{

// 在這里處理接收到的韋根數(shù)據(jù)

// 例如,將數(shù)據(jù)存儲(chǔ)到緩沖區(qū)或發(fā)送到其他模塊

}

注意事項(xiàng)

  1. 韋根協(xié)議版本:韋根協(xié)議有多個(gè)版本(如韋根26、韋根34等),不同版本的數(shù)據(jù)格式和奇偶校驗(yàn)方式可能有所不同。在編寫代碼時(shí),需要確保與所使用的讀卡器協(xié)議相匹配。

  2. 噪聲處理:韋根信號(hào)可能會(huì)受到電磁干擾或機(jī)械振動(dòng)的影響,導(dǎo)致誤觸發(fā)中斷。因此,在編寫代碼時(shí),需要添加適當(dāng)?shù)脑肼曁幚磉壿?,以提高系統(tǒng)的穩(wěn)定性。

  3. 時(shí)序要求:韋根協(xié)議對(duì)信號(hào)的時(shí)序有一定的要求。在編寫代碼時(shí),需要確保能夠正確捕捉和處理韋根信號(hào)的上升沿和下降沿。

通過(guò)上述步驟和示例代碼,你可以在STM32上實(shí)現(xiàn)韋根協(xié)議的接收功能。根據(jù)具體的應(yīng)用需求,你可能還需要對(duì)代碼進(jìn)行進(jìn)一步的優(yōu)化和擴(kuò)展。


責(zé)任編輯:David

【免責(zé)聲明】

1、本文內(nèi)容、數(shù)據(jù)、圖表等來(lái)源于網(wǎng)絡(luò)引用或其他公開資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。

2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。

3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。

4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。

拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。

標(biāo)簽: STM32 韋根協(xié)議

相關(guān)資訊

資訊推薦
云母電容公司_云母電容生產(chǎn)廠商

云母電容公司_云母電容生產(chǎn)廠商

74ls74中文資料匯總(74ls74引腳圖及功能_內(nèi)部結(jié)構(gòu)及應(yīng)用電路)

74ls74中文資料匯總(74ls74引腳圖及功能_內(nèi)部結(jié)構(gòu)及應(yīng)用電路)

開關(guān)三極管13007的規(guī)格參數(shù)、引腳圖、開關(guān)電源電路圖?三極管13007可以用什么型號(hào)替代?

開關(guān)三極管13007的規(guī)格參數(shù)、引腳圖、開關(guān)電源電路圖?三極管13007可以用什么型號(hào)替代?

芯片lm2596s開關(guān)電壓調(diào)節(jié)器的中文資料_引腳圖及功能_內(nèi)部結(jié)構(gòu)及原理圖_電路圖及封裝

芯片lm2596s開關(guān)電壓調(diào)節(jié)器的中文資料_引腳圖及功能_內(nèi)部結(jié)構(gòu)及原理圖_電路圖及封裝

芯片UA741運(yùn)算放大器的資料及參數(shù)_引腳圖及功能_電路原理圖?ua741運(yùn)算放大器的替代型號(hào)有哪些?

芯片UA741運(yùn)算放大器的資料及參數(shù)_引腳圖及功能_電路原理圖?ua741運(yùn)算放大器的替代型號(hào)有哪些?

28nm光刻機(jī)卡住“02專項(xiàng)”——對(duì)于督工部分觀點(diǎn)的批判(睡前消息353期)

28nm光刻機(jī)卡住“02專項(xiàng)”——對(duì)于督工部分觀點(diǎn)的批判(睡前消息353期)

拍明芯城微信圖標(biāo)

各大手機(jī)應(yīng)用商城搜索“拍明芯城”

下載客戶端,隨時(shí)隨地買賣元器件!

拍明芯城公眾號(hào)
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號(hào)
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告
XX性欧美肥妇精品久久久久久,51精品国自产在线,国产欧美日韩,日韩中文字幕

          扒开腿挺进嫩苞处破苞疼的| 国产精品裸体一区二区三区| 国产成人一区二区三区四区| 《人妻かすみさん》动漫在线看| 好吊色综合高清| 天天躁日日躁狠狠躁欧美老妇小说| 精品人妻va人妻中文字幕麻豆 | 中国少妇下面毛茸茸| 久久婷香五月综合色啪图片| 国产69精品久久久久久| hd性videos熟女洋妞| 精品久久久久香蕉网| 午夜av福利电影| 女子初尝黑人巨嗷嗷叫s| 国产毛片美女18毛多| 欧美LXXLXX| 亚洲成人一区在线观看| 性生交大片免费看a| 尤物网在线| 日日碰夜夜| 精品色哟哟| 男阳茎进女阳茎视频| 国产成人精品无码一区二区蜜柚| 狠狠色狠狠色综合久久| 肉大捧一进一出免费视频| 无人区乱码一二三四蜜桃| 激情都市| 一级国产精品一级国产精品片| 国产在线a| 超碰97在线看| jizz熟女熟妇| 亚洲天堂av一区二区三区| 女人高潮被爽到呻吟在线观看| 变态另类一区二区三区不卡| 强壮公次次弄得我好爽A片| 精品无码国产一区二区三区51安| 97精品人人妻人人| 九九热最新网址| 五月播播| 国产三级电影在线观看| 老熟妇毛片|