OpenEdv-开源电子网

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

程序总是死在void sim900a_unigbk_exchange(u8 *src,u8 *dst,u8 mode)这个函数里

[复制链接]

10

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-2-27
在线时间
81 小时
发表于 2015-6-15 17:42:44 | 显示全部楼层 |阅读模式
5金钱
在提调试程序的时候,想用这个函数把字符串转换成gbk码,但是程序执行到这里的时候就死在这个函数里了,下面是代码
void sim900a_unigbk_exchange(u8 *src,u8 *dst,u8 mode)
{
u16 temp; 
u8 buf[2];
if(mode)//gbk 2 unicode
{
while(*src!=0)
{
if(*src<0X81) //非汉字
{
printf("7");//自己加的标志位,便于观察程序执行到哪里
temp=(u16)ff_convert((WCHAR)*src,1);
src++;
}else //汉子占两个字节
{
printf("8");
buf[1]=*src++;
buf[0]=*src++; 
temp=(u16)ff_convert((WCHAR)*(u16*)buf,1); 
}
printf("9");
*dst++=sim900a_hex2chr((temp>>12)&0X0F);
printf("10");
*dst++=sim900a_hex2chr((temp>>8)&0X0F);
printf("11");
*dst++=sim900a_hex2chr((temp>>4)&0X0F);
printf("12");
*dst++=sim900a_hex2chr(temp&0X0F);
printf("13");
}
}else //unicode 2 gbk

while(*src!=0)
{
buf[1]=sim900a_chr2hex(*src++)*16;
buf[1]+=sim900a_chr2hex(*src++);
buf[0]=sim900a_chr2hex(*src++)*16;
buf[0]+=sim900a_chr2hex(*src++);
  temp=(u16)ff_convert((WCHAR)*(u16*)buf,0);
if(temp<0X80){*dst=temp;dst++;}
else {*(u16*)dst=swap16(temp);dst+=2;}

}
*dst=0;//添加结束符




这个函数是调用他的 
sim900a_unigbk_exchange(phone,q1,1);
phone是一个二十个字节的数组,q1是指针,
程序执行到printf("9");的时候就死了,
我想问下可能是由于什么原因造成的,谢谢各位了

最佳答案

查看完整内容[请看2#楼]

q1申请 了内存么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-15 17:42:45 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-2-27
在线时间
81 小时
 楼主| 发表于 2015-6-15 17:55:03 | 显示全部楼层
是转换成unicode字符串
回复

使用道具 举报

10

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2015-2-27
在线时间
81 小时
 楼主| 发表于 2015-6-18 22:27:37 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
怪不得,,,多谢原子哥哈。懂了
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-1-15
在线时间
4 小时
发表于 2018-1-15 10:48:20 | 显示全部楼层
你好,你这个问题后来是怎么解决的呀 ,最近我也遇到这样的问题啦。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 15:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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