MSP430F149内部的memory结构,60K Flash+2K RAM。Flash分为主存储区和信息存储区,操作都一样,只是主存储区每个段512字节,而信息存储区为128字节,方便擦写。
当我们有数据要保存到Flash存储器时,要先对目标段进行整段擦除操作,擦除操作使的对应段FLASH存储器变成全“1”。应当注意的是,此flash的操作频率为257 kHz 到 476 kHz,时钟源可选择,因此我们做时钟分频时应当保证频率在这之间,以下为我编写的参考程序。
void Flash_erase(uint addr)
{//段擦除,512bytes一段
uchar s;
s=__get_interrupt_state();//保存当前中断状态
__disable_interrupt();
while(FCTL3&BUSY);
FCTL3=FWKEY;
FCTL1=FWKEY+ERASE;
*(uchar*)addr=0;
while(FCTL3&BUSY);
FCTL3=FWKEY+LOCK;
__set_interrupt_state(s);//恢复中断状态
}
void Flash_write(uint addr,uchar dat)
{//单字节写入
uchar s;
s=__get_interrupt_state();
__disable_interrupt();
while(FCTL3&BUSY);
FCTL3=FWKEY;
FCTL1=FWKEY+WRT;
*(uchar*)addr=dat;
while(FCTL3&BUSY);
FCTL1=FWKEY;
FCTL3=FWKEY+LOCK;
__set_interrupt_state(s);
}
void Flash_read(uint addr,uint len)
{//读取到数组,此处堆栈应改大
uint i;
for(i=0;i
*(R+i)=*(uchar*)(addr+i);
}
关键字:MSP430F149 内部Flash
引用地址:
MSP430F149的内部Flash
推荐阅读最新更新时间:2024-03-16 14:40
关于STM32像EPROM一样可以单字节写内部Flash的理解
都有说STM32的内部Flash可以像EPROM一样操作,单个字节单个字节的写入。根据本人的拙见,其实也就仅仅是“像”而已。原因有以下几点: 1.首先Flash这种东西,其写入数据的原理是便是将1变成0,所以你的某地址Flash一旦已经写过数据而且不为0,则当你再次需要向该地址写数据时,必须要先擦除,即把该地址先全部变成1,否则你将数据写入该地址后,基本上该地址里面的值已经不是你写入的值了。 2.STM32对内部Flash有页(1k或者2K)擦除指令,也就是STM32不能单独对某一个或者某几个字节进行擦除。而擦除操作并不需要大量内存。 3.如果要像EPROM一样操作Flash,其原理是先把该一页里面的数据全部读到一个b
[单片机]
MSP430F149单片机实现uart数据接收中断
/***************************************************** 程序功能:MCU不停向PC机发送数据,在屏幕上显示0~127对应 的ASCII字符 ------------------------------------------------------ 通信格式:N.8.1, 9600 ------------------------------------------------------ 测试说明:打开串口调试精灵,正确设置通信格式,观察屏幕 ******************************************************/ #incl
[单片机]
MSP430F149在电力测控保护产品中的应用
摘要:介绍使用MSP430F149在电力测控保护产品研制中实现基本参数测量的软硬件设计方法,及该芯片在使用中应用注意的问题和相应的处理措施。
关键词:MSP430F149 电力测控 抗干扰
MSP430F149(以下简称“F149”)是德州仪器(TI)公司推出超低功耗Flash型16位RISC指令集单片机。F149有丰富的内部硬件资源,是一款性价比极高的工业级芯片。在应用中,F149不需做过多的扩展,适合要求快速处理的实时系统,故可在电力系统微机测量和保护方面得以应用。详细的F149资料可参阅有关文献,本文主要对电力系统中基本参数测量的实现方法和开发中一些应注意的问题进行论述。
1 F149外围模拟信号调理
在电力系统微机
[应用]
STM32开发笔记38: 单片机内部Flash的读写
单片机型号:STM32F070F6P6 本文介绍应用C语言进行单片机内部Flash的读写技巧,将从查看文档开始,到最终完成完整的程序。 单片机型号:STM32F070F6P6 步骤如下: 1、查看文档《STM32F030x4/x6/x8/xC and STM32F070x6/xB advanced ARM®-based 32-bit MCUs》确认其Flash的内部结构。 2、查看文档确认STM32F070F6P6内部存储器地址分配。从下表中得到的主要信息是Main Flash memory的起始地址是0x08000000,长度是32KB,到0x08017FFF结束(结束值可不关心)。 3、继续
[单片机]
STM32F103使用内部Flash保存参数
在我们应用开发时,经常会有一些程序运行参数需要保存,如一些修正系数。这些数据的特点是:数量少而且不需要经常修改,但又不能定义为常量,因为每台设备可能不一样而且在以后还有修改的可能。将这类数据存在指定的位置,需要修改时直接修改存储位置的数值,需要使用时则直接读取,会是一种方便的做法。考虑到这些数据量比较少,使用专门的存储单元既不经济,也没有必要,而STM32F103内部的Flash容量较大,而且ST的库函数中还提供了基本的Flash操作函数,实现起来也比较方便。 以大容量产品STM32F103VE为例,其Flash容量达到512K,可以将其中一部分用作数据存储。如下是大容量的Flash组织模式: 根据上面的Fl
[单片机]
MSP430F149流水灯闪烁以及数码管的显示
今天下午写了一个流水灯闪烁的实验,总的来说,不难,因为这块板子集合的电路图没有上一块那么复杂,所以总的来说,还是比较顺手,开始的时候,出现流水灯没有流转的现象,原来是没有加入延时函数,后来经过调整,结果很快就出来了 电路示意图: 示例代码: #include msp430x14x.h #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(do
[单片机]
msp430f149单片机串口C程序
msp430f149单片机简介: MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。 msp430f149是基于闪存或 ROM 的超低功耗 MCU,提供 8MIPS,工作电压为 1.8V - 3.6V,具有高达 60KB 的闪存和各种高性能模拟及智能数字外设。 超低功耗低至: 0.1μA RAM (保持模式) 0.7μA (实时时钟模式) 200μA/MIPS (工作模式) 在 6μs 之内快速从待机模式唤醒 器件参数: 闪存选项:1KB – 60KB ROM 选项:1KB – 16KB RAM 选项
[单片机]
凌阳SPCE061A:见识国产16位MCU有啥好
和8位MCU相比,16位MCU在普及程度上只能望其项背。和32位MCU相比,在性能方面16位MCU也自惭形秽。不过它低于32位MCU成本以及高于8位MCU性能的优势,让它在自动控制、仪表、图像处理、智能家居等市场始终占有一席之地。在这块目前并不是很大的蛋糕旁边却汇聚了众多的MCU芯片厂商。TI、飞思卡尔、英飞凌、富士通等国外巨头在16位MCU上耕耘不辍,不断有新品面市。
上面提及的一些公司都是我们熟悉的、它们的产品也是我们经常使用的。提起它们很多人都会不由自主的想起它们的经典之作。比如TI的MSP430系列、飞思卡尔的S12系列等。但如果问国产的16位通用MCU有哪些?相信能回答上的人不会多。(当然如果问8位MCU的话,大家会
[单片机]