请教一下
我用4块开发板跟主机进行can通信
然后在设置阀值的时候会影响到另外块板子里flash储存的值,但我两块板子的id都设置都不一样,
按理说都是独立工作的 不会接收彼此的数据
只不过挂在同一条can总线上 怎么就会影响到了呐
[mw_shl_code=c,true] u32 id;
u8 ide,rtr,len;
Reset_flag=0;
Can_Rx_Msg(0,&id,&ide,&rtr,&len,rcv_data);
if((rcv_data[0]==0xaa)&&(rcv_data[1]==iIDNum))
{
itemperatureUp_Value = rcv_data[2]*16+rcv_data[3]; // 获取温度上限值
iCurrentUp_Value =rcv_data[4]*100+rcv_data[5]; // 获取过流上限值
//电流输出倍数
// 将上限阈值和下限阈值写入Flash
iCurrentUp_Flash[0] = iCurrentUp_Value;
STMFLASH_Write(0X08010010,(u16*)iCurrentUp_Flash,4);
itemperatureUp_Flash[0] = itemperatureUp_Value;
STMFLASH_Write(0X08010020,(u16*)itemperatureUp_Flash,4);
// Can接收标志位置1
TX_flag = 1;
}[/mw_shl_code]
这是can接收部分
[mw_shl_code=c,true]iIDNum1[0] = iIDNum0;
iSize = sizeof(iIDNum1);
STMFLASH_Write(0X08010000(u16*)iIDNum1,iSize);
itemperature1[0] = itemperature0; //温度阀值写入flash itemperature0
iSize = sizeof(itemperature1);
STMFLASH_Write(0X08010020,(u16*)itemperature1,iSize); // sizeof(TEXT_Buffer)
iCurrent1[0] = iCurrent0; //电流阀值写入 iCurrent0
iSize = sizeof(iCurrent1);
STMFLASH_Write(0X08010010,(u16*)iCurrent1,iSize);
iCurrentUp_Flash[0] = iCurrentUp_Value;
STMFLASH_Write(0X08010010,(u16*)iCurrentUp_Flash,4);
itemperatureUp_Flash[0] = itemperatureUp_Value;
STMFLASH_Write(0X08010020,(u16*)itemperatureUp_Flash,4);
[/mw_shl_code]
这是储存时用用到的flash地址 存储的值在1到2000之间不会很大啊 怎么就影响到了
|