新手上路
- 积分
- 41
- 金钱
- 41
- 注册时间
- 2019-7-30
- 在线时间
- 11 小时
|
发表于 2019-10-6 11:00:58
|
显示全部楼层
本帖最后由 xiyan2015 于 2019-10-6 11:02 编辑
原子哥,我这个代码接收蓝牙串口发来的汉字用lcd显示之后是乱码(数字和字母可以显示),我看了好久都没有头绪,可以帮帮我吗?
else if(key==KEY1_PRES) //切换模块主从设置
{
key=HC05_Get_Role(); //返回值:0,从机;1,主机;0XFF,获取失败.
if(key!=0XFF)
{
key=!key; //状态取反
if(key==0)HC05_Set_Cmd("AT+ROLE=0");
else HC05_Set_Cmd("AT+ROLE=1");
HC05_Role_Show();
HC05_Set_Cmd("AT+RESET"); //复位ATK-HC05模块
delay_ms(200);
}
}
else if(key==KEY0_PRES)
{
sendmask=!sendmask; //发送/停止发送
if(sendmask==0)LCD_Fill(30+40,170,240,160+16,WHITE);//清除显示
}else delay_ms(10);
if(sendmask) //定时发送
{
sprintf((char*)sendbuf," %d s\r\n",time);
LCD_ShowString(30+40,170,200,16,16,sendbuf); //显示发送数据
u3_printf(" %d\r\n",time); //发送到蓝牙模块
// u3_printf((char*)sendbuf);
}
HC05_Sta_Show();
t=0;
LED0=!LED0;
if(USART3_RX_STA & 0X8000) //接收到一次数据了
{
LCD_Fill(30,210,240,320,WHITE); //清除显示
reclen=USART3_RX_STA & 0X7FFF; //得到数据长度
USART3_RX_BUF[reclen]=0; //加入结束符
if(reclen==9||reclen==8) //控制DS1检测
{
if(strcmp((const char*)USART3_RX_BUF,"+LED1 ON")==0)LED1=0; //打开LED1
if(strcmp((const char*)USART3_RX_BUF,"+LED1 OFF")==0)LED1=1;//关闭LED1
}
// LCD_ShowString(30,210,209,119,16,USART3_RX_BUF);//显示接收到的数据
Show_Str(30,210,200,16,USART3_RX_BUF,16,0);
USART3_RX_STA=0;
}
|
|