OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13367|回复: 35

指纹模块 基于STM32

[复制链接]

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-7
在线时间
0 小时
发表于 2014-4-27 16:27:32 | 显示全部楼层 |阅读模式

原子哥你好,搞了几天指纹模块,通信无应答。。。能帮我看看么

问题用红字体标出了。。。

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时钟
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //使能USART1,GPIOA时钟
  USART_DeInit(USART1);  //复位串口1
 USART_DeInit(USART2);  //复位串口2
  //USART1_TX   PA.9
  //USART1_TX   PA.2
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_2; //PA.2,PA.9
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
    GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9PA2
   
   //USART1_RX   PA.10
 //USART2_RX  PA.3
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
    GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化PA10PA3
   //USART 初始化设置

 USART_InitStructure.USART_BaudRate = bound;//一般设置为9600;
 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_InitStructure.USART_BaudRate = 57600; //串口2波特率
 USART_Init(USART2, &USART_InitStructure); //初始化串口2
   //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_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启中断

    USART_Cmd(USART1, ENABLE);                    //使能串口
 USART_Cmd(USART2, ENABLE);    

}

上面是在你的程序上改的,目的是初始化串口2,指纹同信要求是波特率57600,起始位低电平,8个数据位,1位停止位

接着是在主程序里面

 void main()

{    u8 t=0;

        delay_init();

        Nvic_Configuration();

        uart_init(9600);

        delay_ms(1000); //等待指纹模块稳定下来


       FINGERPRINT_Cmd_Get_Img(); //发送命令数据包
       FINGERPRINT_Recevice_Data(12);  //接收指纹模块的应答数据,每次运行程序都会在这里死循环,出不来
       for(t=0;t<12;t++)        //用串口1打印下来看。
            {
                    printf("%ld",UART2_FINGERPRINT_RECEVICE_BUFFER[t]);    
            }

我在把那个发送和接收的子程序贴出来:

void FINGERPRINT_Cmd_Get_Img(void)//这个是发送命令的,录取指纹
{
    unsigned char i;
        for(i=0;i<6;i++) //发送包头,循环6次
            {
                USART_SendData(USART2, FP_Pack_Head);//向串口2发送数据,usart_sendData这个调用的库里面现成的程序就不贴了
                while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待发送结束
           }  
      for(i=0;i<9;i++) //发送命令 0x1d
           {
               USART_SendData(USART2, FP_Get_Img);//向串口2发送数据
               while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
            }   
}

这个是接收数据的:

void FINGERPRINT_Recevice_Data(unsigned char ucLength)
{
      unsigned char i=0;

          for (i=0;i<ucLength;i++)
              {
                  while( USART_GetFlagStatus(USART2, USART_FLAG_RXNE)!=SET);//接收缓存器非空,标志位一直都是0,咋办啊,纠结啊
                 UART2_FINGERPRINT_RECEVICE_BUFFER =USART_ReceiveData(USART2);
              }

  
 大家觉得问题可能出在哪里呢?小弟苦无头绪,打了半天字,哪怕给一个想法也是好的啊!!

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-10-20
在线时间
0 小时
发表于 2017-10-20 12:12:41 | 显示全部楼层
通大Ahk1993 发表于 2014-7-15 21:21
回复【9楼】巴哈德:
---------------------------------
需要资料留下邮箱

1229432944@qq.com

指纹资料,非常感谢!!
回复 支持 1 反对 0

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-7
在线时间
0 小时
 楼主| 发表于 2014-4-27 17:31:45 | 显示全部楼层
自己太对自己失望了,弄了这么长时间不行,网上别人的程序一下,可以了
回复 支持 反对

使用道具 举报

11

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2014-4-7
在线时间
0 小时
发表于 2014-4-29 12:53:14 | 显示全部楼层
搞信号的麻药会用示波器啊
前方是绝路,希望在转角!
回复 支持 反对

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-5-31
在线时间
8 小时
发表于 2014-6-17 22:14:11 | 显示全部楼层
回复【2楼】通大Ahk1993:
---------------------------------
你好,我也在弄这个指纹模块,遇到了和你一样的问题,我也纠结很久了,请问这个问题怎样解决,谢谢了
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-7
在线时间
0 小时
 楼主| 发表于 2014-6-23 19:35:16 | 显示全部楼层
回复【4楼】阿Q小狗:
---------------------------------
每发送一条命令出去指纹模块都会有应答,即使这个应答没有用,你也必须要接收它,不然你发送下一个命令时候,上一个命令的应答还在等着你去接收。。。
回复 支持 反对

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-5-31
在线时间
8 小时
发表于 2014-6-24 12:38:21 | 显示全部楼层
回复【5楼】通大Ahk1993:
---------------------------------
// USART1 发送一个字节
void USART1_SendByte(u8 temp)
{
USART_SendData(USART1, temp);
    while(USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
}
// USART1 接收一个字节
u8 USART1_ReceivByte()
{
    u8 recev;
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
    recev = USART_ReceiveData(USART1);
return recev;
}
void FINGERPRINT_Cmd_Get_Img(void) //FINGERPRINT_获得指纹图像命令
{
    u8 i;
    for(i=0;i<6;i++) //发送包头
       USART1_SendByte(FP_Pack_Head);
  
    for(i=0;i<6;i++) //发送命令 0x1d
       USART1_SendByte(FP_Get_Img);
  
for(i=0;i<12;i++)//读回应答信息
  dat=USART1_ReceivByte();
}
我用串口调试助手测试,总是dat【】没有接收到指纹模块返回的数据,我的USART1没有用中断方式接收,是直接接收的,请问是什么原因??
你能够把你所参考的程序的链接复制给我吗??我也去看看希望能够把程序改正确,真的非常感谢。
回复 支持 反对

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-5-31
在线时间
8 小时
发表于 2014-6-24 12:40:41 | 显示全部楼层
FP_Get_Img是数组 
u8 FP_Get_Img[6] = {0x01,0x00,0x03,0x01,0x0,0x05}; //获得指纹图像
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-7
在线时间
0 小时
 楼主| 发表于 2014-7-14 14:31:33 | 显示全部楼层
回复【7楼】阿Q小狗:
---------------------------------
好久没登这个了,不知道你好搞不搞,需要加我qq760119637
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2014-4-2
在线时间
23 小时
发表于 2014-7-15 09:06:07 | 显示全部楼层
这个我未来要学....求哥们指教.....
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-7
在线时间
0 小时
 楼主| 发表于 2014-7-15 21:21:19 | 显示全部楼层
回复【9楼】巴哈德:
---------------------------------
需要资料留下邮箱
回复 支持 反对

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-5-31
在线时间
8 小时
发表于 2014-7-15 23:08:15 | 显示全部楼层
回复【10楼】通大Ahk1993:
---------------------------------
2402542684@qq.com,非常感谢哦
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-7
在线时间
0 小时
 楼主| 发表于 2014-7-16 18:22:12 | 显示全部楼层
回复【11楼】阿Q小狗:
---------------------------
已发送
回复 支持 反对

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2014-5-31
在线时间
8 小时
发表于 2014-7-16 23:19:11 | 显示全部楼层
回复【12楼】通大Ahk1993:
---------------------------------
收到了,灰常感谢哦!!
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2014-4-2
在线时间
23 小时
发表于 2014-7-19 12:10:09 | 显示全部楼层
回复【10楼】通大Ahk1993:
---------------------------------
1043927405@qq.com  谢谢大哥...
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-12-10
在线时间
0 小时
发表于 2014-12-14 10:12:27 | 显示全部楼层
回复【2楼】通大Ahk1993:
---------------------------------
亲,我也遇到一样的问题,返回的应答包12个字节全一样,发你短信了,望速回455926058
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-3-20
在线时间
0 小时
发表于 2015-3-20 11:26:40 | 显示全部楼层
我这边有指纹识别模块,可支持解决各位遇到的问题
●指纹感应灵敏,识别速度快,适应性强
●提供简便实用通讯协议,方便二次开发应用
●开发方便,操作简单,并配有PC机演示、学习软件、相关工具
●提供单片机C语言、VC、C#、QT、WINCE、LINUX、android等多种系统,多种开发语言
●可定制韦根24,韦根26等通讯接口和功能
微型打印机,RFID读卡模块,指纹识别模块 http://ez-hope.taobao.com
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-4-13
在线时间
0 小时
发表于 2015-4-20 15:23:36 | 显示全部楼层
@正点原子   一个指纹图像不可能就6个字节吧?!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-4-21 00:13:13 | 显示全部楼层
回复【17楼】lebuhe:
---------------------------------
我没搞过。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-4-4
在线时间
2 小时
发表于 2015-6-16 21:20:27 | 显示全部楼层
while( USART_GetFlagStatus(USART2, USART_FLAG_RXNE)!=SET);

你没开启串口2的接收中断啊,开启接收中断试试
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2015-4-3
在线时间
7 小时
发表于 2015-7-5 15:31:24 | 显示全部楼层
回复【10楼】通大Ahk1993:
---------------------------------
392829105@qq.com 
大神指教
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-9-26
在线时间
0 小时
发表于 2015-9-26 19:38:41 | 显示全部楼层
1043503402@qq.com,求楼主给发个资料
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-11-3
在线时间
0 小时
发表于 2015-11-3 12:29:31 | 显示全部楼层
回复【10楼】通大Ahk1993:
---------------------------------
2020006387@qq.com
我也很需要指纹的资料,也想认识您 有问题可以互相帮助下。谢谢!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-11-3
在线时间
0 小时
发表于 2015-11-3 12:32:50 | 显示全部楼层
回复【13楼】阿Q小狗:
---------------------------------
我也很需要指纹的资料,我弄了好多天,都没信心了,希望能认识您 有问题时可互相帮助。我的邮箱是2020006387@qq.com 谢谢了!
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-12-12
在线时间
0 小时
发表于 2015-11-14 00:15:22 | 显示全部楼层
楼主,你在网上找的指纹识别程序还有吗?
?能给我发一份吗,我的添加一个用户调不通,我想看看,调了好久了
?287267984@qq.com
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-11-7
在线时间
0 小时
 楼主| 发表于 2015-11-21 19:21:24 | 显示全部楼层
毕业好久,指纹资料没了,邮箱里附件也早过期了,以前发过给这个人,2402542684qq.com,朝他要吧。
回复 支持 反对

使用道具 举报

hexiaoping 该用户已被删除
发表于 2017-3-2 22:07:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-7-1
在线时间
0 小时
发表于 2017-7-1 08:50:29 | 显示全部楼层
965092133@qq.com求发一份,另外问一下有和R308指纹模块连接的程序吗
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2017-10-20
在线时间
0 小时
发表于 2017-10-20 12:14:54 | 显示全部楼层
通大Ahk1993 发表于 2014-4-27 17:31
自己太对自己失望了,弄了这么长时间不行,网上别人的程序一下,可以了

1229432944@qq.com

大神把资料发我一下好吗
回复 支持 反对

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-12
在线时间
8 小时
发表于 2017-11-17 11:15:43 | 显示全部楼层
解决了吗,我也遇到这问题了
回复 支持 反对

使用道具 举报

32

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-11-4
在线时间
60 小时
发表于 2019-1-29 12:44:36 | 显示全部楼层
通大Ahk1993 发表于 2014-7-15 21:21
回复【9楼】巴哈德:
---------------------------------
需要资料留下邮箱

1592451231@qq.com 感谢~
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2019-6-17
在线时间
16 小时
发表于 2019-9-3 16:31:17 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-11-1
在线时间
8 小时
发表于 2019-11-1 21:07:41 | 显示全部楼层
通大Ahk1993 发表于 2014-7-15 21:21
回复【9楼】巴哈德:
---------------------------------
需要资料留下邮箱

你好 我想要一份指纹资料 可以发下吗 591595102@qq.com   非常感谢
回复 支持 反对

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2019-12-26
在线时间
16 小时
发表于 2020-1-4 21:41:47 | 显示全部楼层
通大Ahk1993 发表于 2014-7-15 21:21
回复【9楼】巴哈德:
---------------------------------
需要资料留下邮箱

可以发给我一份吗
2622815102@qq.com
非常谢谢你
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2020-7-10
在线时间
26 小时
发表于 2020-7-28 12:53:39 | 显示全部楼层
可以发给我一份吗    邮箱807893977@qq.com
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2020-4-25
在线时间
12 小时
发表于 2020-10-8 23:52:36 | 显示全部楼层
求一份资料  1135407521@qq.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 10:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表