新手上路
- 积分
- 42
- 金钱
- 42
- 注册时间
- 2017-7-26
- 在线时间
- 8 小时
|
10金钱
我用Mini板调试AS608模块,用的是原子哥的例程,main函数里只保留了“刷指纹”这个功能,本以为很简单的程序,却总是显示32和as608模块握手不成功。 程序中,串口1都没问题,我手头没有触摸屏,就把触摸屏相关程序全部引掉了,主程序逻辑很简单,AS608.c文件也没有任何改动,却始终握手不成功。
跪求帮忙解答一下 被这个问题折磨好久了,之前在网上看有说监控串口数据的收发,可我手头上没有JLink仿真器 请求帮忙看一下,我把工程文件上传上来
以下是我的main函数
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "lcd.h"
#include "key.h"
#include "touch.h"
#include "malloc.h"
#include "usmart.h"
#include "MMC_SD.h"
#include "ff.h"
#include "exfuns.h"
#include "fontupd.h"
#include "text.h"
#include "usart2.h"
#include "AS608.h"
#include "timer.h"
//ALIENTEK Mini STM32开发板扩展实验14
//ATK-AS608指纹识别模块实验-库函数版本
//技术支持:www.openedv.com
//淘宝店铺:http://eboard.taobao.com
//广州市星翼电子科技有限公司
//作者:正点原子 @alientek
#define usart2_baund 57600//串口2波特率,根据指纹模块波特率更改(注意:指纹模块默认57600)
SysPara AS608Para;//指纹模块AS608参数
u16 ValidN;//模块内有效模板个数
u8** kbd_tbl;
void press_FR(void);//刷指纹
u16 GET_NUM(void);//获取数值
int main(void)
{
u8 ensure;
u8 key_num;
char *str;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(); //初始化延时函数
uart_init(115200); //初始化串口1波特率为115200,用于支持USMART
usart2_init(usart2_baund);//初始化串口2,用于与指纹模块通讯
PS_StaGPIO_Init(); //初始化FR读状态引脚
usmart_dev.init(72);//初始化USMART
mem_init(); //初始化内存池
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[1],"1:",1); //挂载FLASH.
printf("test1");
while(PS_HandShake(&AS608Addr))//与AS608模块握手 程序死这里了
{
printf("握手不成功\n");
}
printf("Connect success!\n"); //通讯成功
ensure=PS_ValidTempleteNum(&ValidN);//读库指纹个数
if(ensure!=0x00)
printf("No vaild num\n");
ensure=PS_ReadSysPara(&AS608Para); //读AS608模块参数
while(1)
{
if(PS_Sta) //检测PS_Sta状态,如果有手指按下
{
press_FR();//刷指纹
}
}
}
//刷指纹
void press_FR(void)
{
SearchResult seach;
u8 ensure;
char *str;
ensure=PS_GetImage();
if(ensure==0x00)//获取图像成功
{
ensure=PS_GenChar(CharBuffer1);
if(ensure==0x00) //生成特征成功
{
ensure=PS_HighSpeedSearch(CharBuffer1,0,300,&seach);
if(ensure==0x00)//搜索成功
{
printf("Search fingerprint success\n");
str=mymalloc(50);
printf("Match ID:%d Match score:%d",seach.pageID,seach.mathscore);//显示匹配指纹的ID和分数
}
else
printf("Search fingerprint failed\n");
}
else
printf("Search fingerprint failed\n");
}
}
|
最佳答案
查看完整内容[请看2#楼]
已经解决了,原来是指纹模块的波特率被改动了一下,我一直以为是57600呢,串口2的波特率也是57600,后来把串口2的波特率改成115200就可以正常通信了。
|