完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、硬件使用分类
1.整体图展示 采用STM32F103RCT6作为主控制器 2.STM32F103RCT6单片机 STM32F103RCT6不含USB转TTL芯片,需要外界接入 下图为STM32F103RCT6原理图 其中在RCT6中PA9,PA10为板子的USART1,原理图中并没有出现以上俩引脚,其引脚在为板子上标识的TX,RX 以下是工程中USART1的初始化程序设计 void uart_init(u32 bound) { //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9 //USART1_RX GPIOA.10初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10 //Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器 //USART 初始化设置 USART_InitStructure.USART_BaudRate = bound;//串口波特率 USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位 USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断 USART_Cmd(USART1, ENABLE); //使能串口1 } 在上面的程序段中,我们可以清晰的看出来PA9,PA10都可以使用,PA9为TX,PA10为RX。 3.AS608指纹模块 AS608指纹识别模块是ALIENTEK推出的一款高性能的光学指纹识别模块。AS608模块采用了国内著名指纹识别芯片公司杭州晟元芯片技术有限公司(Synochip)的 AS608指纹识别芯片。芯片内置DSP运算单元,集成了指纹识别算法,能高效快速采集图像并识别指纹特征。模块配备了串口、USB通讯接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口、USB 按照通讯协议便可控制模块。本模块可应用于各种考勤机、保险箱柜、指纹门禁系统、指纹锁等场合。 下面是AS608的一些具体参数:
注意!!!! AS608指纹模块切勿接5V,一定要接3.3V 注意!!!! AS608指纹模块切勿接5V,一定要接3.3V 如果不相信的话可以去试试(如果你是土豪的话,完全跳过这一条) 下面俩个图就是我们AS608指纹模块的引脚解释: D+和D-不用接,就算你想接也不一定能接上,反正根本就没有那俩跟线的引脚。 其中5线(蓝线)这个引脚就是作为我们输出的引脚,话说每个模块到头来都是个开关而已,就是开关的启动方式不同罢了。 4.USB转TTL 这个就不做过多介绍了,都是大家常用的东西。 二、软件设计 1.接线设计 AS608指纹模块与单片机接线
2.程序设计 程序是按照正点原子中的历程进行修改的,此处使用的是串口进行操作的 对于AS608指纹模块我们首先要进行握手,换句话也就是通过发送特定的16进制数据将单片机与模块进行连接而已了。 printf("AS608指纹模块串口操作rn"); printf("作者:十里承欢-rn"); printf("尝试连接AS608中.....rn"); while(PS_HandShake(&AS608Addr))//与AS608模块握手 { printf("未连接上AS608!rn"); delay_ms(1000); printf("再次尝试连接中....rn"); delay_ms(1000); } //连接模块成功,初始化 printf("连接成功!!rn"); str=mymalloc(30); sprintf(str,"波特率:%d 地址:%x",usart2_baund,AS608Addr);//显示波特率 printf("%s",str); delay_ms(100); 在握手过程中 1.发送包头:也就是0XEF、0X01 2.发送地址:AS608的默认地址是0XFFFFFFFF 3.发送0X01、0X00、0X00等待AS608响应,对比响应的数据即可完成握手 //与AS608握手 PS_HandShake //参数: PS_Addr地址指针 //说明: 模块返新地址(正确地址) u8 PS_HandShake(u32 *PS_Addr) { SendHead(); SendAddr(); MYUSART_SendData(0X01); MYUSART_SendData(0X00); MYUSART_SendData(0X00); delay_ms(200); if(USART2_RX_STA&0X8000)//接收到数据 { if(//判断是不是模块返回的应答包 USART2_RX_BUF[0]==0XEF &&USART2_RX_BUF[1]==0X01 &&USART2_RX_BUF[6]==0X07 ) { *PS_Addr=(USART2_RX_BUF[2]<<24) + (USART2_RX_BUF[3]<<16) +(USART2_RX_BUF[4]<<8) + (USART2_RX_BUF[5]); USART2_RX_STA=0; return 0; } USART2_RX_STA=0; } return 1; } 然后按照内容提示进行操做 按下KEY1键就是录入指纹 此时需要我们填写指纹的位置,由于该模块最多就能储存300个指纹,所以位置就是1~300中任何一个数。 我们的指纹已经被成功录入。 我们可以进行指纹读取: 在红框框住的,前面是我们的指纹位置,后面是我们的等级,也就是相似程度,可以这样理解。 剩下的功能就不过多演示了,基本跟着提示来就没有问题。 上面我也说过,可以通过TCH引脚进行一系列操作以及拓展,希望大家加油!!!! |
|||||
|
|||||
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:54 , Processed in 1.209747 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号