想做DDS,往FLSAH中写入波形数据
程序如下:
void write_Triangle (uint32_t address)
{
uint32_t *Flash_ptr; // Flash pointer
unsigned int i;
Flash_ptr = (uint32_t *) address; // Initialize Flash pointer
FCTL1 = FWKEY + ERASE; // Set Erase bit
FCTL3 = FWKEY; // Clear Lock bit
*Flash_ptr = 0; // Dummy write to erase Flash segment
FCTL1 = FWKEY + WRT; // Set WRT bit for write operation
for (i = 0; i < 4096; i++)
{
if(i < 2048)
*Flash_ptr++ = i; // Write value to flash
else
*Flash_ptr++ = 4095 - i; // Write value to flash
}
FCTL1 = FWKEY; // Clear WRT bit
FCTL3 = FWKEY + LOCK; // Set LOCK bit
}
函数传入0x14400,传入函数后只剩下0x4400,取16位
uint32_t *p;
p = 0x14400;
此时p也只剩下16位,这个是不是跟16位MCU有关,那F5529有地址高于16位的FLASH,如何写呢?
谢谢!
