久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32F107單片機USB驅動磁卡刷卡器的驅動源程序
[打印本頁]
作者:
寂蔚藍
時間:
2018-5-18 11:47
標題:
STM32F107單片機USB驅動磁卡刷卡器的驅動源程序
STM32F107磁卡刷卡器驅動
程序使用說明:
1、本例程通過4個led來指示usb鼠標的功能,僅為演示用,若用戶要開發自己的usb鼠標程序,可以參考。
2、將usb鼠標接到J3上(或通過mini usb轉接線接到J10上)將程序下載到開發板上,復位單片機,點擊鼠標,則可以看到相應的led亮。
單片機源程序如下:
/* Includes ------------------------------------------------------------------*/
#include <includes.h>
#include "LED.h"
#include "usbh_usr.h"
#include "usbh_core.h"
#include "stmflash.h"
#include "timer.h"
#include "usart.h"
#include "yx5200.h"
#define _2ms 14400
#define _20ms 144000
#define _200ms 1440000
#define _400ms 2880000
#define _1s 7200000
extern USBH_Status USBH_DeInit(void);
extern void clear_buffer(void);
extern HID_Machine_TypeDef HID_Machine;
extern vu8 bDeviceState; //默認沒有連接
extern unsigned char BUFEER[PASSWORD_DIGITS + 1];
extern unsigned char BUFEER_counter;
extern unsigned char enter_complete;
extern unsigned char _30s_config_count;
void Compare_Process(void);
void ConfigurationMode_judgment(void);
void Password_judgment(void);
unsigned char Judgment_password(unsigned char *buffer,unsigned char *password);
unsigned char Active(void);
unsigned char Setting(void);
unsigned char PASSWORD1[PASSWORD_DIGITS + 1] = {0};
unsigned char PASSWORD2[PASSWORD_DIGITS + 1] = {0};
unsigned char PASSWORD3[PASSWORD_DIGITS + 1] = {0};
unsigned char RESTWORD[PASSWORD_DIGITS + 1] = {0};
unsigned char password1_count;
unsigned char Configuration_mode = 0;
unsigned char active_falg = 0;
unsigned char _30s_flag = 0;
unsigned char ResetMode = 0;
static void LED_Delay(uint32_t nCount)
{
while(nCount > 0)
{
nCount --;
}
}
void Start_sound(void) {
GPIO_SetBits(GPIOA , GPIO_Pin_9);
LED_Delay(_400ms);
GPIO_ResetBits(GPIOA , GPIO_Pin_9);
}
int main (void)
{
unsigned char i;
LED_Configuration(); //初始化
uart_init(9600);
TIM3_Int_Init(4999,7199);//10Khz的計數頻率,計數到5000為500ms
USBH_Init(&USB_OTG_FS_dev, &HID_cb , &USR_Callbacks);
StartReadEeprom(); //讀密碼
clear_buffer();
Start_sound();
LED_Delay(_1s);
if(Setting() == 1) {
Configuration_mode = MODE1;
Uart_SendCMD(0x0F , 0 , 0x0202) ;
} else {
Uart_SendCMD(0x0F , 0 , 0x0201) ;
}
LED_Delay(_200ms);
for(i = 0;i < 50;i ++) {
while(!yx5200_play_finish_statu()) {LED_Delay(_2ms);} //檢測是不是播完了
}
Uart_SendCMD(0x06 , 0 , 0x0000) ;
LED_Delay(_200ms);
Uart_SendCMD(0x0F , 0 , 0x0463) ;
LED_Delay(_400ms);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1) == 0) {
LED_Delay(_20ms);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1) == 0) {
Uart_SendCMD(0x0E , 0 , 0x0000) ;
LED_Delay(_200ms);
ResetMode = 1;
}
}
Uart_SendCMD(0x06 , 0 , 0x001E) ;
LED_Delay(_200ms);
active_falg = 1;
while(1) {
// if(active_falg == 0) {
// if(Active() == 1) {
// active_falg = 1;
// Uart_SendCMD(0x0F , 0 , 0x0301) ;
// LED_Delay(_200ms);
// for(i = 0;i < 50;i ++) {
// while(!yx5200_play_finish_statu()) {LED_Delay(_2ms);} //檢測是不是播完了
// }
// }
// }
USBH_Process(); //USB處理流程
Compare_Process(); //密碼比較流程
}
}
//////////////////////////////激活接口/////////////////////////////////
unsigned char Setting(void) {
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7) == 0) {//C7
LED_Delay(_200ms);
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7) == 0) {
return 1;
}
}
return 0;
}
unsigned char Active(void) {
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_6) == 0) {//C6
LED_Delay(_200ms);
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_6) == 0) {
return 1;
}
}
return 0;
}
////////////////////////////////密碼比較過程//////////////////////////////////
void Compare_Process(void) {
if(enter_complete == 1) { //如果按下了回車
enter_complete = 0;
if((active_falg) && (BUFEER_counter != 0)) {
Password_judgment(); //正常密碼比較
}
clear_buffer(); //清buffer
}
}
//////////////////////////////正常密碼比較過程////////////////////////////////
void Password_judgment(void) { //正常密碼的比較
/////////////////////////////密碼1/////////////////////////////////
if(BUFEER_counter == password1_count) {
if(Judgment_password(BUFEER,PASSWORD1)) {
_30s_flag = 1;
_30s_config_count = 0;
GPIO_SetBits(GPIOA , GPIO_Pin_8);
Uart_SendCMD(0x0F , 0 , 0x0101) ;
LED_Delay(_200ms);
return;
}
}
Uart_SendCMD(0x0F , 0 , 0x0302) ;
LED_Delay(_200ms);
}
unsigned char Judgment_password(unsigned char *buffer,unsigned char *password) {
unsigned char i;
for(i = 0;i < PASSWORD_DIGITS;i++) {
if(buffer[i] != password[i]) {
break;
}
}
if(i == PASSWORD_DIGITS) {
return 1;
} else {
return 0;
}
}
#ifdef USE_FULL_ASSERT
/**
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
STM32F107磁卡刷卡器驅動.rar
(688.12 KB, 下載次數: 15)
2018-5-19 01:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一色桃子av
|
在线观看av免费
|
日本久久久久久久久
|
99一区二区
|
色人人
|
国产成人午夜高潮毛片
|
久久人体视频
|
欧美九九九
|
欧美69式性猛交
|
亚洲自拍偷拍视频
|
91av视频
|
精品1区2区
|
国产日韩在线播放
|
99精品欧美一区二区蜜桃免费
|
亚洲乱码一区二区
|
国产精品三
|
色婷婷狠狠
|
狠狠撸狠狠干
|
能看毛片的网站
|
91一区二区
|
国产精品成人免费视频
|
日韩首页
|
五月婷婷激情综合
|
黄色大片av
|
成人欧美日韩
|
成人黄色一级片
|
成人欧美一区二区三区白人
|
亚洲福利片
|
午夜88
|
欧美在线天堂
|
欧美三级韩国三级日本三斤在线观看
|
日韩成人精品
|
四虎8848精品成人免费网站
|
日韩一区二区在线播放
|
免费h片
|
麻豆精品在线播放
|
久久久久久中文字幕
|
亚洲综合激情网
|
久久久久久久久久国产精品
|
日韩国产一区二区
|
国产精品一区二区三区四区五区
|