专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
430数据读取问题
2019-07-18 14:16
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
2824
13
1291
MSP430如何将一个内存单元中的数据读取至数组中?
比如我想将内存单元0300-0310中的数据取出,将每一个数据对应赋值给RAM数组,如果用C语言来操作,如何实现?
如果将取出的数据进行相应的操作,将操作后的数据如何赋给0300-0310地址中?
请高手帮忙写一下
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
lwsn
1楼-- · 2019-07-18 17:08
那就使用指针咯
加载中...
豆腐块
2楼-- · 2019-07-18 18:58
/*******************************************************************************
文件名称:Flash.c
功能描述:
*******************************************************************************/
#include <msp430x14x.h>
int wordbuf[];
char bytebuf[];
/*******************************************************************************
函数名称:Flash_Init
功 能:初始化Flash
参 数:无
返回值 :无
调用模块:main
*******************************************************************************/
void Flash_Init()
{
FCTL2 = FWKEY + FSSEL0 + FN0; // MCLK/2 for Flash Timing Generator
}
/*******************************************************************************
函数名称:Flash_Erase
功 能:段擦除Flash
参 数:无
返回值 :无
调用模块:
*******************************************************************************/
void Flash_Erase(int *addr)
{
while(FCTL3 & BUSY); // 等待空闲
FCTL3 = FWKEY; // 清除 "Lock"
FCTL1 = FWKEY + ERASE; // 准备擦除
*addr = 0; // 擦除,写任意数均可
FCTL3 = FWKEY + LOCK; // 置“LOCK”
}
/*******************************************************************************
函数名称: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
}
加载中...
可可球
3楼-- · 2019-07-18 23:02
每个函数都有说明的
加载中...
Levenburg
4楼-- · 2019-07-19 04:31
精彩回答 2 元偷偷看……
加载中...
xiaoyaodz
5楼-- · 2019-07-19 09:34
设置二维数组,一个保存地址,一个保存数据
加载中...
xiaoyaodz
6楼-- · 2019-07-19 11:11
楼主RAM数据使用地址和数据对应就可以。
加载中...
1
2
3
下一页
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
携手ADI,踏上电子工程师之巅—车辆电气化视频,答题领奖!
1 个回答
如何提升论坛质量,看你了!
20 个回答
【最终名单】二姨家喊你来拿100份新年大礼啦~
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
文件名称:Flash.c
功能描述:
*******************************************************************************/
#include <msp430x14x.h>
int wordbuf[];
char bytebuf[];
/*******************************************************************************
函数名称:Flash_Init
功 能:初始化Flash
参 数:无
返回值 :无
调用模块:main
*******************************************************************************/
void Flash_Init()
{
FCTL2 = FWKEY + FSSEL0 + FN0; // MCLK/2 for Flash Timing Generator
}
/*******************************************************************************
函数名称:Flash_Erase
功 能:段擦除Flash
参 数:无
返回值 :无
调用模块:
*******************************************************************************/
void Flash_Erase(int *addr)
{
while(FCTL3 & BUSY); // 等待空闲
FCTL3 = FWKEY; // 清除 "Lock"
FCTL1 = FWKEY + ERASE; // 准备擦除
*addr = 0; // 擦除,写任意数均可
FCTL3 = FWKEY + LOCK; // 置“LOCK”
}
/*******************************************************************************
函数名称: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
}
一周热门 更多>