完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛
|
本帖最后由 woaidpj0423 于 2017-6-12 16:56 编辑
刚学习SST25VF032B存储器,使用的也是PIC18F4520单片机,在网上幸运地找到鸿哥现成的实战程序,如获至宝,省了很多学习时间,在此感谢鸿哥!!!感谢鸿哥的好东西分享! 不过我在使用遇到一个情况:我的程序需要将两个字符串轮流交替存储起来,如 char buf1[]="1111,2222n"; char buf2[]="3333-4444n"; 通过主程序里的定时器0子程序执行for循环体写入 ... if(num==31) //31ms执行一次 。试过1S定时也不行 { num=0; TMR0ON=0; GIE=0; for(i=0;i write_eeprom(i+wr_cnt1*strlen(buf1)+wr_cnt2*strlen(buf2),buf1); } wr_cnt1++; //buf1计数器,为signed long型 for(j=0;j write_eeprom(j+wr_cnt1*strlen(buf1)+wr_cnt2*strlen(buf2),buf2[j]); } wr_cnt2++; //buf2计数器,为signed long型 TMR0ON=1; GIE=1; } 通过read_eeprom函数读出来到串口调试助手里后显示的顺序为1111,2222 3333-4444 1111,2222 3333-4444 1111,2222 3333-4444 1111,2222 1111,2222 3333-4444 之后是后五行数据重复,最开始四行正常,理论上来说应该一直如下顺序重复才是 1111,2222 3333-4444 1111,2222 3333-4444 之后就这个问题花了10多天什么事也不干通过各种测试只找这个原因,最后怀疑到write_eeprom函数可能有点问题,最直接的原因是我将write_eeprom函数直接换成TXREG=ch输出与理论上的一致,说明程序顺序没问题的. 实在找不到原因了,头也大了,有种绝望想哭的感觉,所以希望鸿哥看到能指点一下,先谢谢了! |
|
|
|
|
|
|
|
|
文中的写函数应该为write_eeprom(i+wr_cnt1*strlen(buf1)+wr_cnt2*strlen(buf2),buf1[i]);抱歉,写错了。
|
|
|
|
|
|
|
|
woaidpj0423 发表于 2017-6-12 16:58 问题已解决,谢谢! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
忘川轮回 发表于 2013-2-21 13:50 这个斜体字 看着很累啊 |
|
|
|
|
|
|
|
忘川轮回 发表于 2013-2-21 13:50 这个斜体字 看着很累啊,,,,,,,,, |
|
|
|
|
|
|
|
Noseven 发表于 2015-10-17 17:53 仿真和实际会有所出入。我用STM32直接移植完成。。而且也要根据硬件的不同也所有所区别的! |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2381 浏览 1 评论
4238 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2617 浏览 2 评论
3113 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4570 浏览 5 评论
有套STM32与西门子200程序需要代写,有兴趣的工程师与有联系!
2484浏览 1评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6796浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 02:52 , Processed in 1.311454 second(s), Total 86, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖