主函数(部分)(已经卡在这里了),
int main(void)
{
u8 key;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组
PS_StaGPIO_Init();
delay_init(168); //初始化延时函数
LED_Init();
KEY_Init();
uart_init(115200);
usart2_init(usart2_baund);
RS485_Init(); //初始化RS485串口2
//BEEP_Init();
while(PS_HandShake(&AS608Addr))//与AS608模块握手
{
delay_ms(1000);
printf("未检测到指纹模块!!!\r\n");
printf("尝试连接指纹模块!!!\r\n");
delay_ms(1000);
}
握手部分的代码:
//与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)//接收到数据
{
printf("接收到信号\n");
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;
}
printf("%d: %d: %d: \n",USART2_RX_BUF[0],USART2_RX_BUF[1],USART2_RX_BUF[6]);
return 1;
}
握手部分第一个if就进不去了
代码as608.c和.h还有usart都是用的正点原子的。接线是按资料连得,AS608的TX,RX分别接单片机的RX,TX,但灯不亮,用上位机软件测试的时候灯会亮,但是也连不上。
做毕设,有大佬帮看下嘛,感激不尽
请问解决了吗,我也遇到了同样的问题