芯片是
STM32f103vbt6.
通过上位机计算了3组参数,通过modbus将数据发送到
单片机定义的三个数据paraa[7],error[7],resRefValue[7];
同时将这三个数组写入到内部flash里;
再次上电时,先读内部flash里的数据放到这三个数组里;
然后再通过modbus读取这三个数组的数据。
modbus文件是网上搜到的(忘了是不是本
论坛),感觉挺好用的。为了配合同事编写的上位机软件,自己加了个f6(写参数到板子),f8(读板子的参数)这两个功能码,后边地址是瞎编的。
现在是写参数到板子后,如果不断电,再读取(参数没有重新从flash里读取)是正常的。
如果是上电后读取,parra[]数组正常,error[]和resRefValue[]数组的后三位都是0.
stm32内部flash编程,参考的是正点原子和野火的历程。
调用用到的这个函数,
void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite){};
里面是有flash的解锁加锁的。
这部分是参考整点原子/野火例程的,就没有贴出来。
一周热门 更多>