现在发现先对两个不同的地址写入数据,再把数据读出时就会出错了,读出的都是最后写入的那一个数,如下面程序
#define Bank1_SRAM3_ADDR ((uint32_t)0x68000000)
#define temp1 (*(vu8 *)(Bank1_SRAM3_ADDR+0x1000))
#define temp2 (*(vu8 *)(Bank1_SRAM3_ADDR+0x2000))
temp1=0x12; //对偏移地址1000写入0x12
temp2=0x34;; //对偏移地址2000写入0x34
USART1_Transmit(temp1); //串口读出0x1000地址
USART1_Transmit(temp2); //串口读出0x2000地址
读出的都是0x34
如果换成以下程序
temp1=0x12; //对偏移地址1000写入0x12
USART1_Transmit(temp1 ); //串口读出0x1000地址
temp2=0x34;; //对偏移地址2000写入0x34
USART1_Transmit(temp2); //串口读出0x2000地址
这样的话,输出又正确了,不明白那里出问题了
现在发现先对两个不同的地址写入数据,再把数据读出时就会出错了,读出的都是最后写入的那一个数,如下面程序
#define Bank1_SRAM3_ADDR ((uint32_t)0x68000000)
#define temp1 (*(vu8 *)(Bank1_SRAM3_ADDR+0x1000))
#define temp2 (*(vu8 *)(Bank1_SRAM3_ADDR+0x2000))
temp1=0x12; //对偏移地址1000写入0x12
temp2=0x34;; //对偏移地址2000写入0x34
USART1_Transmit(temp1); //串口读出0x1000地址
USART1_Transmit(temp2); //串口读出0x2000地址
读出的都是0x34
如果换成以下程序
temp1=0x12; //对偏移地址1000写入0x12
USART1_Transmit(temp1 ); //串口读出0x1000地址
temp2=0x34;; //对偏移地址2000写入0x34
USART1_Transmit(temp2); //串口读出0x2000地址
这样的话,输出又正确了,不明白那里出问题了
举报