问题描述
我很努力地理解,当从flash传输时,如何在比较区中从flash中写入变量类型时,不同类型的变量会相互影响。
typedef struct
{
uint8_t possition;
uint8_t frequency;
uint32_t frequency_resolution;
uint32_t seconds;
uint32_t minutes;
uint32_t hours;
}Scanoptions_struct;
我填充用于写入闪存位置的结构和缓冲区Im。
//no data was written yet
scanoptions_buffer[0].possition=0x02;
scanoptions_buffer[0].frequency=0x01;
scanoptions_buffer[0].frequency_resolution = DAYLY_FREQUENCY;
scanoptions_buffer[0].hours=0x0C;
scanoptions_buffer[0].minutes=0x00;
scanoptions_buffer[0].seconds=0x00;
//io |= scanoptions_buffer[0].secondsseconds | scanoptions_buffer[0].minutes | scanoptions_buffer[0].hours;
buffer[0]=*(uint8_t*)(&scanoptions_buffer[0].possition);
buffer[1]=*(uint8_t*)(&scanoptions_buffer[0].frequency);
*(uint32_t*)(&buffer[2])=scanoptions_buffer[0].frequency_resolution;
*(uint32_t*)(&buffer[6])=scanoptions_buffer[0].hours;
*(uint32_t*)(&buffer[10])=scanoptions_buffer[0].minutes;
*(uint32_t*)(&buffer[14])=scanoptions_buffer[0].seconds;
status = nvm_write_buffer(TEST_PAGE_ADDR,buffer,sizeof(scanoptions_buffer[0]));
一旦填充,重置后,我要检查数据并将其读回缓冲区。
scanoptions_buffer[1] = *(Scanoptions_struct*)buffer;
my code example strong文本 但是,由于我错过了结构的32位部分,所以Scanoptions_struct指针与Scanoptions_struct变量不匹配。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)