OpenEdv-开源电子网

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

用全局数组存串口数据成功,但是用全局指针存就错了,这是为什么?

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2018-8-13
在线时间
2 小时
发表于 2018-8-16 19:42:19 | 显示全部楼层 |阅读模式
STM32F407通过串口1读数据,在uart.c中定义全局数组接收串口数据如{1,2,3,4,5},再在main函数中输出该数组没有问题,输出的数组是{1,2,3,4,5},但是如果把全局数组换成指针来接收,那么接收来的值就无法赋值给指针数组,指针数组的值就会是{0,0,0,0,0},请问大佬们怎么解决。(不能用数组接收,因为串口通讯的模块是买来的,不开源,他就是一下子发50000个字节,如果一下定义50000字节的数组,他会报错,所以没办法只能开辟外部SRAM的办法存,只能用指针)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6549
金钱
6549
注册时间
2015-8-25
在线时间
1024 小时
发表于 2018-8-17 15:12:47 | 显示全部楼层

回帖奖励 +1 金钱

你的指针绝对的没有指向具体的地址,是个野指针,先给指针赋值(指向数组也好,动态分配也罢),才能开始用,整这么多还不如用数组呢
回复 支持 1 反对 0

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2018-8-16 19:59:02 来自手机 | 显示全部楼层

回帖奖励 +1 金钱

关键你怎么用指针的?
回复 支持 反对

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3860
金钱
3860
注册时间
2016-6-11
在线时间
709 小时
发表于 2018-8-16 21:43:23 | 显示全部楼层

回帖奖励 +1 金钱

unsigned char *buff;  *(buff++)=uart_rec_data;
回复 支持 反对

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-8-17 10:52:48 | 显示全部楼层

回帖奖励 +1 金钱

jxcrgt35 发表于 2018-8-16 21:43
unsigned char *buff;  *(buff++)=uart_rec_data;

指针没有开辟存储空间,相当于当前的指针没有指向任何地方,是一个空指针。
回复 支持 反对

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17666
金钱
17666
注册时间
2018-3-3
在线时间
523 小时
发表于 2018-8-17 11:07:48 | 显示全部楼层

回帖奖励 +1 金钱

只要保证有这么大的空间就能用3楼的方法
/*
*
*
*
*
*
*/
回复 支持 反对

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2018-8-17 12:04:06 | 显示全部楼层

回帖奖励 +1 金钱

本帖最后由 ISO14882 于 2018-8-17 12:08 编辑

使用scatter file重定位该全局符号至SRAM首地址,另外在elf格式文件中全局变量会放入bss段,默认以0初始化,我不知道axf是怎样的,据说结构差不多
回复 支持 反对

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2022-1-10 12:36:28 | 显示全部楼层

回帖奖励 +1 金钱

帮顶   
回复 支持 反对

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2022-1-10 12:36:49 | 显示全部楼层

回帖奖励 +1 金钱

帮顶               
回复 支持 反对

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2070
金钱
2070
注册时间
2021-7-17
在线时间
647 小时
发表于 2022-1-10 16:09:09 | 显示全部楼层

回帖奖励 +1 金钱

帮顶   
回复 支持 反对

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2022-1-10 16:46:14 | 显示全部楼层

回帖奖励 +1 金钱

指针只是个指向存储位置的工具,本身不能存储  
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 06:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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