找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3253|回复: 13
打印 上一主题 下一主题
收起左侧

请教一个C语言的问题:函数放在不同文件里引起的问题

  [复制链接]
跳转到指定楼层
楼主
ID:245053 发表于 2021-6-24 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天出现一个奇怪的问题,一个写EEPROM的写函数放在其他文件里调用会导致写数据不成功。放在main函数里调用则可以写进数据。这是什么意思,以前也遇到过类似的问题。。。。
看了一下编译结果,也编译进去,没被优化啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:943394 发表于 2021-6-24 10:49 来自手机 | 只看该作者
可以看看这个,http://www.cnblogs.com/lycstronger/p/4195559.html
回复

使用道具 举报

板凳
ID:592807 发表于 2021-6-24 10:51 | 只看该作者
会不会是中断导致时序错乱,写数据时把所有中断关了。
回复

使用道具 举报

地板
ID:844772 发表于 2021-6-24 11:32 | 只看该作者
你写不成功,是写不了还是写的不对?
写的不对:就注意多个C文件编译时,全局变量要加extern。
写不了:可能是函数声明问题。
如果其他方式解决的,别忘说一下咋解决的啊。
回复

使用道具 举报

5#
ID:410516 发表于 2021-6-24 11:47 | 只看该作者
定义过的函数在其他文件使用要先引用声明,就像使用memset()库函数时 先用引用头文件string.h
回复

使用道具 举报

6#
ID:410516 发表于 2021-6-24 11:48 | 只看该作者
另外单片机内部的EEPROM,写入前必须先擦除扇区才能写入成功
回复

使用道具 举报

7#
ID:160500 发表于 2021-6-24 14:19 | 只看该作者
函数声明原型是不是匹配,同一个名字被多个函数使用
回复

使用道具 举报

8#
ID:245053 发表于 2021-6-24 17:40 | 只看该作者
本帖最后由 pcf2000 于 2021-6-24 17:43 编辑
glinfei 发表于 2021-6-24 11:32
你写不成功,是写不了还是写的不对?
写的不对:就注意多个C文件编译时,全局变量要加extern。
写不了: ...

查找了一下原因,目前发现是,执行了读数据操作,紧接着后面写数据操作就不能写进数据了;前面不执行读数据操作,则后面可以写进数据;但没找到问题在哪里!
回复

使用道具 举报

9#
ID:245053 发表于 2021-6-24 17:41 | 只看该作者
查找了一下原因,目前暂时发现是,执行了读数据,紧接着后面写数据就不能写进数据,但没找到问题在哪里!,有点奇怪
回复

使用道具 举报

10#
ID:245053 发表于 2021-6-24 17:41 | 只看该作者
ShadowOfNothing 发表于 2021-6-24 11:48
另外单片机内部的EEPROM,写入前必须先擦除扇区才能写入成功

外部的EEPROM  IC
回复

使用道具 举报

11#
ID:943857 发表于 2021-6-24 18:03 来自手机 | 只看该作者
那个调用的时候可以会因为你变量的设置原因,部分变量不能被用
回复

使用道具 举报

12#
ID:245053 发表于 2021-6-25 10:11 | 只看该作者
菇凉犹在 发表于 2021-6-24 18:03
那个调用的时候可以会因为你变量的设置原因,部分变量不能被用

前面执行了一次读数据操作,后面的写数据操作就不成功,调试跟踪了一下,发现是在写数据操作过程,写地址应答出错退出了
做了一个这样的测试,前面的读数据操作执行2次,则后面写数据就成功了,没搞懂怎么回事,难道是时序有问题?!
回复

使用道具 举报

13#
ID:123289 发表于 2021-6-25 14:24 | 只看该作者
先读通EEPROM的操作原理。
回复

使用道具 举报

14#
ID:449396 发表于 2021-6-25 16:26 | 只看该作者
函数掉用子函数要放在同一个根目录下,不然就会出现掉用错误
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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