資源簡介
Barcode Scanner Module 是條形碼、二維碼掃描識別模塊,我通過圖像智能識別算法,
可快速準確地讀取紙質或屏幕上的一維條碼及二維碼。體積小巧,板載 USB 和 UART 接口,
即可直接接入計算機使用,也可集成到各種設備中。
代碼片段和文件信息
#include?“sys.h“
#include?“usart2.h“
#include?“stdio.h“
u8?i;
u8?num=0;
u8?code[100];
u8?flag_over=0;
//////////////////////////////////////////////////////////////////////////////////? ?
//如果使用ucos則包括下面的頭文件即可.
#if?SYSTEM_SUPPORT_OS
#include?“includes.h“ //ucos?使用 ??
#endif
/*
//加入以下代碼支持printf函數而不需要選擇use?MicroLIB ??
#if?1
#pragma?import(__use_no_semihosting)?????????????
//標準庫需要的支持函數?????????????????
struct?__FILE?
{?
int?handle;?
};?
FILE?__stdout;???????
//定義_sys_exit()以避免使用半主機模式????
_sys_exit(int?x)?
{?
x?=?x;?
}?
//重定義fputc函數?
int?fputc(int?ch?FILE?*f)
{??????
while((USART2->SR&0X40)==0);//循環(huán)發(fā)送直到發(fā)送完畢???
????USART2->DR?=?(u8)?ch;??????
return?ch;
}
#endif?
/*使用microLib的方法*/
?/*?
int?fputc(int?ch?FILE?*f)
{
USART_SendData(USART1?(uint8_t)?ch);
while?(USART_GetFlagStatus(USART1?USART_FLAG_TC)?==?RESET)?{}
???
????return?ch;
}
int?GetKey?(void)??{?
????while?(!(USART1->SR?&?USART_FLAG_RXNE));
????return?((int)(USART1->DR?&?0x1FF));
}
*/
?
#if?EN_USART2_RX???//如果使能了接收
//串口1中斷服務程序
//注意讀取USARTx->SR能避免莫名其妙的錯誤???
?u8?USART2_RX_BUF[USART_REC_LEN];?????//接收緩沖最大USART_REC_LEN個字節(jié).
//接收狀態(tài)
//bit15, 接收完成標志
//bit14, 接收到0x0d
//bit13~0, 接收到的有效字節(jié)數目
u16?USART2_RX_STA=0;???????//接收狀態(tài)標記 ??
u16?Res=0;
void?uart2_init(u32?bound)
{
??//GPIO端口設置
GPIO_InitTypeDef?GPIO_InitStructure;
USART_InitTypeDef?USART_InitStructure;
NVIC_InitTypeDef?NVIC_InitStructure;
?
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2?ENABLE); //使能USART2
//USART1_TX???GPIOA.2
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_2;?//PA.2
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP; //復用
評論
共有 條評論