完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
芯片是STM32f103vbt6.
通过上位机计算了3组参数,通过modbus将数据发送到单片机定义的三个数据paraa[7],error[7],resRefValue[7]; 同时将这三个数组写入到内部flash里; 再次上电时,先读内部flash里的数据放到这三个数组里; 然后再通过modbus读取这三个数组的数据。 modbus文件是网上搜到的(忘了是不是本论坛),感觉挺好用的。为了配合同事编写的上位机软件,自己加了个f6(写参数到板子),f8(读板子的参数)这两个功能码,后边地址是瞎编的。 现在是写参数到板子后,如果不断电,再读取(参数没有重新从flash里读取)是正常的。 如果是上电后读取,parra[]数组正常,error[]和resRefValue[]数组的后三位都是0. stm32内部flash编程,参考的是正点原子和野火的历程。 |
|
相关推荐
5个回答
|
|
楼上正解,看看有无加解锁操作。还有你说的不掉电数据读取正常,先测试测试写完之后,修改一下数据缓冲区的内容,再读,看看有无相同。如果读不成功,缓冲区的内容也是没有修改的。
|
|
|
|
写FLASH不用解锁加锁吗?
|
|
|
|
调用用到的这个函数, void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite){}; 里面是有flash的解锁加锁的。 这部分是参考整点原子/野火例程的,就没有贴出来。 |
|
|
|
tyewybvwe 发表于 2018-11-9 20:23 缓冲区数据读取是正常的。 问题应该是在将缓冲区数据写入到内部flash里或从内部flash里读出数据到缓冲区,出的问题。 现在也不知道是写入出的问题还是读出时出的问题。 |
|
|
|
void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite){};
这个函数引用错了,第三个参数应该是字节数。 我的三个数组,分别寸的是32位浮点数,16位符号数,16位无符号数。 7组数据,所以第三个参数,应对应为28,14,14; |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
621 浏览 1 评论
1962 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1068 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1487 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1924 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 19:26 , Processed in 0.628888 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号