博士
最后登录1970-1-1
在线时间 小时
注册时间2014-10-31
|
本帖最后由 11kxmx 于 2016-8-20 09:07 编辑
该程序在触摸控制LED灯的基础上编写,但打电话时发出数据总是第5第6个字符出现错误如发电话号码123456, 收到出现如下字符串:发13569988792 出现如下错误:
char sendnum[14];//暂存电话号码的数组
char ATD[]="ATD";//拨号时用到的数组
void even_process(void){
switch(even)
{
case E_BUTTON0: //0
strcat(sendnum,"0"); //字符串拼接
LCD_Clear(10, 30, 180, 40, BLACK);//液晶屏上显示,显示正确
LCD_DispStr3216(10,30,sendnum, RED);
even = E_NULL;
break;
case E_BUTTON1: //1
strcat(sendnum,"1"); //字符串拼接
LCD_Clear(10, 30, 180, 40, BLACK);
LCD_DispStr3216(10,30,sendnum, RED);
even = E_NULL;
break;
case E_BUTTON2: //2
strcat(sendnum,"2"); //字符串拼接
LCD_Clear(10, 30, 200, 32, BLACK);
LCD_DispStr3216(10,30,sendnum, RED);
even = E_NULL;
break;
case E_BUTTONcall: //拨打电话
strcat(sendnum,";");//字符串拼接,电话号码后面加引号
strcat(ATD,sendnum); //字符串拼接,前面加 “ATD”
printf("%s\n",ATD); //串口发送出去
even = E_NULL;
break;
case E_BUTTONlisten: //接电话
printf("%s","ATA"); //发送“ata”
printf("\n"); //回车
even = E_NULL;
break;
主程序除了初始化之外,就是:
Lcd_show_bmp(0, 0,"/shouji.bmp");//显手机界面的图片
Lcd_GramScan(1);
LCD_DispEnCh(10, 10, "请输入电话号码", RED);
while(1)
{
even_process();
}
尝试了115200波特率和9600波特率都是这样,并且用其它串口接收软件接收也不正常
接收计数不知是否正确,如 ATD123456加分号和换行是11个字符,但显示收到10个字符
|
-
-
|