2019-03-24 09:41发布
/*******************************************************************************函数名称:Flash_Write_Word功 能:字,写Flash参 数:addr--写地址 buf--要写数据的首地址 len--数据长度返回值 :无调用模块:*******************************************************************************/void Flash_Write_Word(int *addr, int *buf, int len){ unsigned int cnt; while(FCTL3 & BUSY); // 等待空闲 FCTL3 = FWKEY; // 清除 "Lock" FCTL1 = FWKEY + ERASE; // 准备擦除 *addr = 0; // 擦除,写任意数均可 FCTL3 = FWKEY + LOCK; // 置“LOCK” while(FCTL3 & BUSY); // 等待Flash空闲 FCTL3 = FWKEY; // 清除“LOCK”标识 FCTL1 = FWKEY + WRT; // 准备写 for(cnt=0; cnt<len; cnt++) { *(addr + cnt) = *(buf + cnt); // 写数据 } FCTL3 = FWKEY + LOCK; // Lock }
/*******************************************************************************函数名称:Flash_Read_Word功 能:字,读Flash参 数:addr--读地址 wordbuf--存储读取的数据 len--数据长度返回值 :无调用模块:*******************************************************************************/void Flash_Read_Word(int *addr, int *wordbuf, int len){ unsigned int cnt; while(FCTL3 & BUSY); // 等待flash空闲 for(cnt = 0; cnt < len; cnt++) { *(wordbuf + cnt) = *(addr + cnt); // 读数据 } FCTL3 = FWKEY + LOCK; // Lock }
/*******************************************************************************函数名称:Flash_Write_Byte功 能:字节,写Flash参 数:addr--写地址 buf--要写数据的首地址 len--数据长度返回值 :无调用模块:*******************************************************************************/void Flash_Write_Byte(char *addr, char *buf, int len){ unsigned int cnt; while(FCTL3 & BUSY); // 等待空闲 FCTL3 = FWKEY; // 清除 "Lock" FCTL1 = FWKEY + ERASE; // 准备擦除 *addr = 0; // 擦除,写任意数均可 FCTL3 = FWKEY + LOCK; // 置“LOCK” while(FCTL3 & BUSY); // 等待Flash空闲 FCTL3 = FWKEY; // 清除“LOCK”标识 FCTL1 = FWKEY + WRT; // 准备写 for(cnt=0; cnt<len; cnt++) { *(addr + cnt) = *(buf + cnt); // 写数据 } FCTL3 = FWKEY + LOCK; // Lock }
/*******************************************************************************函数名称:Flash_Read_Byte功 能:字节,读Flash参 数:addr--读地址 wordbuf--存储读取的数据 len--数据长度返回值 :无调用模块:*******************************************************************************/void Flash_Read_Byte(char *addr, char *bytebuf, int len){ unsigned int cnt; while(FCTL3 & BUSY); // 等待flash空闲 for(cnt=0; cnt<len; cnt++) { *(bytebuf+ cnt) = *(addr + cnt); // 读数据 } FCTL3 = FWKEY + LOCK; // Lock }
每个函数都有说明的,看不懂的话再回复就是了。
最多设置5个标签!
那就使用指针咯。呵呵。
/*******************************************************************************
函数名称:Flash_Write_Word
功 能:字,写Flash
参 数:addr--写地址
buf--要写数据的首地址
len--数据长度
返回值 :无
调用模块:
*******************************************************************************/
void Flash_Write_Word(int *addr, int *buf, int len)
{
unsigned int cnt;
while(FCTL3 & BUSY); // 等待空闲
FCTL3 = FWKEY; // 清除 "Lock"
FCTL1 = FWKEY + ERASE; // 准备擦除
*addr = 0; // 擦除,写任意数均可
FCTL3 = FWKEY + LOCK; // 置“LOCK”
while(FCTL3 & BUSY); // 等待Flash空闲
FCTL3 = FWKEY; // 清除“LOCK”标识
FCTL1 = FWKEY + WRT; // 准备写
for(cnt=0; cnt<len; cnt++)
{
*(addr + cnt) = *(buf + cnt); // 写数据
}
FCTL3 = FWKEY + LOCK; // Lock
}
/*******************************************************************************
函数名称:Flash_Read_Word
功 能:字,读Flash
参 数:addr--读地址
wordbuf--存储读取的数据
len--数据长度
返回值 :无
调用模块:
*******************************************************************************/
void Flash_Read_Word(int *addr, int *wordbuf, int len)
{
unsigned int cnt;
while(FCTL3 & BUSY); // 等待flash空闲
for(cnt = 0; cnt < len; cnt++)
{
*(wordbuf + cnt) = *(addr + cnt); // 读数据
}
FCTL3 = FWKEY + LOCK; // Lock
}
/*******************************************************************************
函数名称:Flash_Write_Byte
功 能:字节,写Flash
参 数:addr--写地址
buf--要写数据的首地址
len--数据长度
返回值 :无
调用模块:
*******************************************************************************/
void Flash_Write_Byte(char *addr, char *buf, int len)
{
unsigned int cnt;
while(FCTL3 & BUSY); // 等待空闲
FCTL3 = FWKEY; // 清除 "Lock"
FCTL1 = FWKEY + ERASE; // 准备擦除
*addr = 0; // 擦除,写任意数均可
FCTL3 = FWKEY + LOCK; // 置“LOCK”
while(FCTL3 & BUSY); // 等待Flash空闲
FCTL3 = FWKEY; // 清除“LOCK”标识
FCTL1 = FWKEY + WRT; // 准备写
for(cnt=0; cnt<len; cnt++)
{
*(addr + cnt) = *(buf + cnt); // 写数据
}
FCTL3 = FWKEY + LOCK; // Lock
}
/*******************************************************************************
函数名称:Flash_Read_Byte
功 能:字节,读Flash
参 数:addr--读地址
wordbuf--存储读取的数据
len--数据长度
返回值 :无
调用模块:
*******************************************************************************/
void Flash_Read_Byte(char *addr, char *bytebuf, int len)
{
unsigned int cnt;
while(FCTL3 & BUSY); // 等待flash空闲
for(cnt=0; cnt<len; cnt++)
{
*(bytebuf+ cnt) = *(addr + cnt); // 读数据
}
FCTL3 = FWKEY + LOCK; // Lock
}
一周热门 更多>