msp430 FLASH 字节读写程序

发布者:心若水仙最新更新时间:2016-08-15 来源: eefocus关键字:FLASH  字节读写 手机看文章 扫描二维码
随时随地手机看文章
/*****     430 FLASH  字节读写程序              *************************/


430的数据RAM 与FLASH的读写

 

#define FLASH_ADDRESS 0x1000          //定义FLASH信息区地址B段
void flash_erase(unsigned char*);

void read_flash(unsigned char *pc_byte, unsigned char *array,unsigned char amount);

void write_flash(unsigned char *pc_byte,unsigned char *array,unsigned char amount);

//******************************************************************************

//FLASH段擦除

void flash_erase(unsigned char *pc_word)

{

while(FCTL3 & BUSY);                       //如果处于忙状态,则等待

FCTL3 = FWKEY ;                          //清出LOCK标志,解锁

FCTL1 = FWKEY + ERASE ;                 //允许段擦除

*pc_word = 0;                         //擦除..擦除..

while(FCTL3 & BUSY);

FCTL3 = FWKEY + LOCK ;             //加锁

}

//******************************************************************************

//向FLASH信息区读出指定数量的字节数据

//unsigned int*pc_word :信息区数据指针

//unsigned char *array :读出数据存放数据数组,8位长

//unsigned char amount :读操的数量,范围0-127

void read_flash(unsigned char *pc_byte, unsigned char *array,unsigned char amount)

{ unsigned char i;

 

    for(i=0;i

    {

      *array = *pc_byte; //读数据,读数据时,flash地址自动加 1

      array++;          //接收缓冲区地址加 1  

    }
}

//******************************************************************************

//向FLASH信息区写入指定数量的字节数据

//unsigned char *pc_byte 信息区数据指针

//unsigned char *array :读出数据存放数据数组,8位长

//unsigned char amount :读操的数量,范围0-127

void write_flash(unsigned char *pc_byte,unsigned char *array, unsigned char amount)

{ unsigned char i;
_DINT();

while(FCTL3 & BUSY);                    //如果处于忙状态,则等待

FCTL3 = FWKEY ;                       //清出LOCK标志

FCTL1 = FWKEY + WRT ;              //写操作,块编程,+ BLKWRT;


    for(i=0;i

    {  

      *pc_byte = *array;

      //*pc_byte = num;

     // num +=1;

      array++;                       //发送缓冲区地址加 1

      pc_byte++;                   //写flash时,地址人为加 1

     while(!(FCTL3 & WAIT));    //如果处于忙状态,则等待 ,若用软件仿真,去掉                 //这语句
 

}

FCTL1 = FWKEY;           //写操作完成,清除编程允许位 WRT,BLKWRT

while(FCTL3 & BUSY);

FCTL3 = FWKEY + LOCK;

}

  
/*

#define RAM_ADDRESS 0x300 
__no_init volatile uchar  XINHAO[3]    @ 0x300;   //型号 默认201
__no_init volatile uchar  BdFlag       @ 0x303;   ////ff表示没有标定,00表示已标定置零01表示已标定1点.02表示已标定2点.03表示已标定3点
__no_init volatile uchar  EDZHI        @ 0x304;     //额定值
__no_init volatile uchar  CYSJ         @ 0x305;     //采样时间
__no_init volatile uchar  GJSJ         @ 0x306;     //自动关机时间
__no_init volatile uchar  YLDW        @ 0x307;   // 压力单位  
__no_init volatile float  Pyz          @ 0x30A;   // 置零后的皮压值                
__no_init volatile float  Bdxs[16]     @ 0x310;   // 标定系数
__no_init volatile float  Bdzhi[16]    @ 0x350;   // 标定值
__no_init volatile float  Bdnm[16]     @ 0x390;   // 标定内码0X0D0


void main(void)
{
  volatile unsigned int i;                  // Use volatile to prevent removal
                                            // by compiler optimization

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
   FLL_CTL0 |= XCAP14PF;                     // Configure load caps
   for (i = 0; i < 10000; i++);              // Delay for 32 kHz crystal to
   unsigned char *pc_flash;                            //定义字节指针变量  为字节读写
 pc_flash = (unsigned char *) FLASH_ADDRESS;         //为指针初始化                                          // stabilize
        unsigned char *pc_ram;                            //定义字节指针变量  为字节读写
 pc_ram = (unsigned char *) RAM_ADDRESS;         //为指针初始化    

   while(1)

{       
      BdFlag = 1;
      Bdxs[0]=3.14;   
      flash_erase(pc_flash);                     //段擦除
      write_flash(pc_flash,pc_ram ,208);               //写入指定字节数量
      read_flash(pc_flash,pc_ram,208);                    //再读出刚才写的字节
      LPM3;                                     // Enter low power mode 3
}  */

关键字:FLASH  字节读写 引用地址:msp430 FLASH 字节读写程序

上一篇:MSP430 FLASH读写
下一篇:MSP430F14-直接IO口按键检处理程序

推荐阅读最新更新时间:2024-03-16 15:05

IAR for MSP430安装教程
准备资源: 安装步骤: 1、双击 稍等一下,出现如下键面, 选择Install IAR Embedded Workbench for MSP430,如下图所示: 进入下面键面,选择next, 选中 I accept the thems of the license agreement后,点击next, 进入到如下键面后,可以选着change,改变安装路径,注意按装路径不要包含中文, 点击Install,等待安装, 出现如下警告,点击是继续按装, 把立即运行软件等项目取消勾选,点击finish退出安装 安装完成后,以管理员身份运行软件,弹出注册窗口 将Keygen.rar注册机解压,得到License Gene
[单片机]
IAR for MSP<font color='red'>430</font>安装教程
MSP430单片机的中断系统(2)
1 .可屏蔽中断 可屏蔽中断由具有中断能力的外围模块产生,包括处于定时器模式的看门狗定时器。每个可屏蔽中断都可以通过单独的中断允许位来使能。所有的可屏蔽中断都可以通过SR中的GIE位来使能。 如果GIE位置位,则打开可屏蔽中断模块,如果复位的话,就是把所有的可屏蔽中断都给屏蔽掉了,那么及时发生中断响应,也不会向CPU发送中断请求。 2 .可屏蔽中断响应时序 对于可屏蔽中断,当INTR引脚变为高电平,并IF=1且有足够的优先权,则在执行完当前指令后,CPU将发出下列中断响应周期时序。 我们来看这里,这里CPU通过引脚INTA 发中断响应信号,通知接口芯片开始准备中断类型号; 然后看这里,这里CPU再发I
[单片机]
MSP<font color='red'>430</font>单片机的中断系统(2)
基于MSP430F449的数据存储和USB串行通信实现
在数据采集和测量仪器尤其是便携式设备中,数据存储和传输是不可避免的问题,近年来TI公司推出的低功耗微控制器MSP430,在仪器设计和制造领域引起巨大变革,新型控制器和大容量串行存储器的应用大大提高产品了的性能。本文主要解决两个问题 1 解决经过MSP430采集后的数据与EEPROM24C256的数据接口问题,也就是数据存储问题; 2 解决EEPROM与上位机(普通微机)的数据通信问题,也就是存储后的数据上传问题。 首先对主要的集成电路做简单介绍 MSP430F449简介 MSP430F449是MSP430系列中的一种,MSP430系列是一种具有集成度高,功能丰富、功耗低等特点的16位单片机。它的集成调试环境Em
[单片机]
基于MSP<font color='red'>430</font>F449的数据存储和USB串行通信实现
基于MSP430单片机的单相正弦波逆变电源设计
本系统实现输入直流电压15V,输出交流电压有效值10V,额定功率10W,交流电压频率在20至100Hz可步进调整。以MSP430单片机为控制核心,产生SPWM波控制全桥电路,然后经过LC滤波电路得到失真度小于0.5%的正弦波。采用PID算法反馈控制使输出交流电压负载调整率低于1%,采用 开关电源 作为辅助电源、合理选用MOSFET等使系统效率达到90%,采用输入电流前馈法来估计输出电流以实现过流保护以及自恢复功能。    引言   要求实现单项正弦波 逆变电源 ,输入直流15V,输出交流电压有效值10V,功率10W,且频率20至100Hz步进可调,要求波形无明显失真,负载调整率小于1%,效率尽可能高,系统要具备过流保护以及
[电源管理]
基于MSP<font color='red'>430</font>单片机的单相正弦波逆变电源设计
MSP430F5529火箭板 ----> 关于核心电压提升实验(含电源管理模块和供电监控系统介绍)
一、电源管理模块和供电监控系统 1、电源管理模块介绍   下图为PMM框图:   根据这些阈值,SVS和SVM的行为最好用图形来描述。图2-4显示了检测器和监控器如何响应各种供应故障条件。   如图2-4所示,监测阈值内存在滞后,因此有效的阈值取决于电压轨是上升还是下降。在监测阈值中没有滞后现象。   SVS 滞后   只有当SVSMHRRL的位设置等于或大于SVSHRVL的位设置时,才会有稳定的迟滞。因此,必须选择一个SVSMHRRL设置,该设置等于或大于SVSHRVL设置。 7、高侧检测器(SVSH)和高侧监控器(SVMH) SVSH和SVMH模块是默认启用的,可以通过分别清除SVSH
[单片机]
MSP<font color='red'>430</font>F5529火箭板 ----> 关于核心电压提升实验(含电源管理模块和供电监控系统介绍)
MSP430单片机之RTC-实时时钟
  RTC-Real Time Clock是430单片机的实时时钟模块,可以配置成实时时钟模式(万年历)或者一般目的的32位计数器模式,其中实时时钟模式提供了年月日、时分秒,可以选择BCD码或者二进制格式,并且具有可编程的闹钟。RTC模块支持中断。相关寄存器请参阅430系列单片机user's guide(我用的是5438A)。   1.计数器模式   实时时钟控制器寄存器1 RTCMODE位被重置时,计数器模式被选择,通过软件设置可以得到一个32位的计数器。从时钟模式切换到计数器模式是通过重置计数值:RTCNT1、RTCNT2、RTCNT3、RTCNT4 和 预换算计数器:RT0PS、RT1PS。   计数器的增量计数器来
[单片机]
基于MSP430F149的电力测控保护产品的应用设计
MSP430F149(以下简称“F149”)是德州仪器(TI)公司推出超低功耗Flash型16位RISC指令集单片机。F149有丰富的内部硬件资源,是一款性价比极高的工业级芯片。在应用中,F149不需做过多的扩展,适合要求快速处理的实时系统,故可在电力系统微机测量和保护方面得以应用。详细的F149资料可参阅有关文献,本文主要对电力系统中基本参数测量的实现方法和开发中一些应注意的问题进行论述。 1 F149外围模拟信号调理 在电力系统微机测量中,通常将一次额定电流和电压通过电流互感器(TA)、电压互感器(TV)分别转换为0~5A的电流信号和0~100V的电压信号,该信号再经一级互感器转换为数百mV~几V的电压信号,具体输出电
[单片机]
基于MSP<font color='red'>430</font>F149的电力测控保护产品的应用设计
PLC在风电控制系统中的应用
一、概述 近年来随着国家对可再生能源扶持政策的进一步出台,可再生能源特别是风力发电呈现蓬勃发展的趋势,国内众多厂家正通过自主研发和技术引进等形式进行风电设备的成套工作。目前,国内生产厂家对高速齿轮箱、电机和叶片等已具有了独立生产能力,但作为风力发电控制系统的大脑——风电控制器,一直以来主要依靠国外技术引进。通过对国内主流风电设备生产厂家的控制系统研究发现,多数厂家的控制系统是和主机一起成套技术引进而来,如MITA和WINDTEC公司的产品。由于风电设备运行环境较为恶劣,安装空间有所限制,并且要求有很强的数据处理能力,因此现有的通用可编程控制器很难达到其技术要求。一是高低温要求,通用PLC运行温度一般为0℃~50℃,但风电设备要
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved