OpenEdv-开源电子网

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

[指纹识别模块] 【指纹模块】驱动例程如何改到其他串口教学

[复制链接]

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17657
金钱
17657
注册时间
2018-3-3
在线时间
523 小时
发表于 2019-3-1 15:12:11 | 显示全部楼层 |阅读模式
本帖最后由 Psheng 于 2019-3-1 21:10 编辑

本次教学将使用F767指纹模块的源码  将串口2驱动改为串口4
首先用例程测试下模块是否能正常使用然后再移植(不然模块出问题了,后续移植就不可能成功)

第一步:将例程复制出来(不要直接在源程序上面修改,这样改错了不好对照)

第二部:新建一个专门的串口工程(比如这次我们是将串口2 改到 串口4)
          2.1:首先确定IO口及其状态 我采用的是阿波罗的F7板子 串口4用到的io为PA11 PA12  确定了这两个IO是空闲的 可以使用。
          2.2:因为是改串口的,所以直接复制了串口例程 新建了usart4.h 和usart4.c文件  并且添加进工程
          2.3:在串口4的工程中先配置好串口4 并且测试下收发是否正常(一定要测试成功!,不然一步错 后面都调不通)[mw_shl_code=c,true]USART4        A12   A11
*/

int main(void)
{
        int t;
        Cache_Enable();                 //打开L1-Cache
        HAL_Init();                                        //初始化HAL库
        Stm32_Clock_Init(432,25,2,9);   //设置时钟,216Mhz
        delay_init(216);                //延时初始化
        usart4_init(115200);
        LED_Init();                     //初始化LED
        while(1)
        {
                usart4_test();//串口4测试函数
                HAL_Delay(10);
                t++;
                if(t>100)
                {
                        t=0;
                        LED0_Toggle;
                }
        }
}[/mw_shl_code]

[mw_shl_code=c,true]void usart4_test(void)
{
        u32 len;
        static u32 times=0;
        if(USART_RX_STA_4&0x8000)
        {                                          
                len=USART_RX_STA_4&0x3fff;//得到此次接收到的数据长度
                u4_printf("\r\n usart4:您发送的消息为:\r\n");
                HAL_UART_Transmit(&hUART4,(uint8_t*)USART_RX_BUF_4,len,1000);        //发送接收到的数据
                while(__HAL_UART_GET_FLAG(&hUART4,UART_FLAG_TC)!=SET);                //等待发送结束
                u4_printf("\r\n\r\n");//插入换行
                USART_RX_STA_4=0;
        }else
        {
                times++;
                if(times%200==0)u4_printf("usart4:请输入数据,以回车键结束\r\n");  
        }
}[/mw_shl_code]
和电脑串口助手测试如图
上位机测试.png

第三步:将测试好的串口4代码添加到指纹例程里面(头文件路径也要添加),并删除掉串口2的文件
上位机测试.png
第四步:在主函数中包含串口的头文件并且在主函数中调用串口初始化函数
第五步:修改AS608中的MYUSART_SendData()函数为串口4的寄存器
         5.1:修改JudgeStr()函数为串口4的寄存器
         5.2: 修改函数PS_HandShake()中的寄存器为串口4的
第六部:完成 插上模块能正常实验
注意
1 。以上的代码修改均可以在我修改后的工程中全局搜索 /*change*/ 找到修改过的地方
ctlr+f
上位机测试.png
2。 由于串口1用过了函数HAL_UART_MspInit(),所以在串口4中为了方便底层初始化也写在函数usart4_init()里面
       串口中断接收函数还是按照HAL库的写法
3。PA11 是接收  PA12是发送 F767_串口4.rar (11.38 MB, 下载次数: 18)
/*
*
*
*
*
*
*/
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

43

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-10-17
在线时间
29 小时
发表于 2019-6-13 19:24:53 | 显示全部楼层
大哥 还在吗 我是串口2改的串口5 上面您说的我都改了还是不行 方便咨询下嘛
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 22:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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