论坛元老
 
- 积分
- 5486
- 金钱
- 5486
- 注册时间
- 2018-3-25
- 在线时间
- 16 小时
|

楼主 |
发表于 2018-3-28 15:00:34
|
显示全部楼层
unsigned int x=7999999;
unsigned int a=0;
unsigned char data[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10};
FLASH_Unlock(); //解锁
FLASH_ErasePage(0x0801fc00); //要擦除页的首地址
FLASH_ProgramHalfWord(0x0801fc00,(unsigned short)data[0]); //写入半字数据16位
FLASH_ProgramHalfWord(0x0801fc00+2,(unsigned short)data[1]); //写入半字数据16位 但是地址要便宜2个字节
FLASH_Lock(); //上锁
while(1)
{
a=(*(unsigned int*)0x0801fc00); //读出写入单元的数据
tese_data[0]=((unsigned char)(a>>0));
tese_data[1]=((unsigned char)(a>>8));
tese_data[2]=((unsigned char)(a>>16));
tese_data[3]=((unsigned char)(a>>24));
usart1_send_data(tese_data,4);
x=7999999;
while(x--);
}
这样后输出的是 01 00 02 00 这是为什么?
|
|