OpenEdv-开源电子网

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

C语言函数,指针,数组问题

[复制链接]

3

主题

4

帖子

0

精华

新手入门

积分
36
金钱
36
注册时间
2014-11-19
在线时间
0 小时
发表于 2014-11-26 10:53:13 | 显示全部楼层 |阅读模式
5金钱
u8 USART1_TX_BUF[USART2_MAX_RECV_LEN];

GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF);//分析字符串

void GPS_Analysis(nmea_msg *gpsx,u8 *buf)
NMEA_GPGSV_Analysis(gpsx,buf);

void NMEA_GPGSV_Analysis(nmea_msg *gpsx,u8 *buf)
u8 *p,*p1;
p=buf;
p1=(u8*)strstr((const char *)p,"$GPGSV");
len=p1[7]-'0'; //得到GPGSV的条数

原子哥,求助:GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF)函数调用中的(u8*)USART1_TX_BUF是值呢?还是地址?
p1=(u8*)strstr((const char *)p,"$GPGSV");我认为应该是p1=(char*)strstr((const char *)p,"$GPGSV"),即p1是字符指针,这样的话len=p1[7]-'0',才是字符相减。不知道对不对呢?

p1=(u8*)strstr((const char *)p,"$GPGSV");p1是不是u8类型的指针呢?若是的话,if(posx!=0XFF)gpsx->svnum=NMEA_Str2num(p1+posx,&dx);就不需要把字符类型转化成数据类型。

谢谢

最佳答案

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

GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF)函数调用中的(u8*)USART1_TX_BUF是值呢?还是地址?   这个入口参数是地址 p1=(u8*)strstr((const char *)p,"$GPGSV");我认为应该是p1=(char*)strstr((const char *)p,"$GPGSV"),即p1是字符指针,这样的话len=p1[7]-'0',才是字符相减。不知道对不对呢? 不对,u8相当于 unsigned char 范围囊括所有ASCII,包括扩展的,char  ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-11-26 10:53:14 | 显示全部楼层
GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF)函数调用中的(u8*)USART1_TX_BUF是值呢?还是地址?
  这个入口参数是地址

p1=(u8*)strstr((const char *)p,"$GPGSV");我认为应该是p1=(char*)strstr((const char *)p,"$GPGSV"),即p1是字符指针,这样的话len=p1[7]-'0',才是字符相减。不知道对不对呢?
不对,u8相当于 unsigned char 范围囊括所有ASCII,包括扩展的,char 的ASCII范围只到了127,只包括标准ASCII

p1=(u8*)strstr((const char *)p,"$GPGSV");p1是不是u8类型的指针呢?若是的话,if(posx!=0XFF)gpsx->svnum=NMEA_Str2num(p1+posx,&dx);就不需要把字符类型转化成数据类型。
谢谢
对于指针,char * 和 u8* 都一样的均是长度是8位的,但地址本身长度是32位的(对于STM32),后面那个函数貌似是把字符串类型的数转换成数字
回复

使用道具 举报

3

主题

4

帖子

0

精华

新手入门

积分
36
金钱
36
注册时间
2014-11-19
在线时间
0 小时
 楼主| 发表于 2014-11-26 15:00:58 | 显示全部楼层
很感谢啊,果然是大牛啊,C语言功底深厚
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-28 20:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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