新唐M051 CONFIG 程序

新唐M051 CONFIG 程序

新唐M051单片机config配置程序如下: #include "Config.h" #define DEBUGMSG printf #define CONFIG_START_ADDR 0x00300000 #define PAGE_SIZE 512 /**************************************** *函数名称:ISPEnable *输 入:无 *输 出:无 *功 能:ISP使能 ******************************************/ VOID ISPEnable(VOID) { Un_Lock_Reg(); ISPCON |= ISPEN; } /**************************************** *函数名称:ISPDisable *输 入:无 *输 出:无 *功 能:ISP禁能 ******************************************/ VOID ISPDisable(VOID) { Un_Lock_Reg(); ISPCON &= ~ISPEN; } /**************************************** *函数名称:ISPTriger *输 入:无 *输 出:无 *功 能:ISP触发 ******************************************/ VOID ISPTriger(VOID) { ISPTRG |= ISPGO; while((ISPTRG&ISPGO) == ISPGO); } /**************************************** *函数名称:ConfigEnable *输 入:无 *输 出:无 *功 能:Config使能 ******************************************/ VOID ConfigEnable(VOID) { Un_Lock_Reg(); ISPCON |= CFGUEN; } /**************************************** *函数名称:ConfigErase *输 入:无 *输 出:无 *功 能:Config区 擦除 ******************************************/ VOID ConfigErase(VOID) { ISPEnable(); ConfigEnable(); ISPCMD = PAGE_ERASE; ISPADR = CONFIG_START_ADDR; ISPTriger(); ISPDisable(); } /**************************************** *函数名称:Config0Write *输 入:无 *输 出:无 *功 能:Config0区 写 ******************************************/ VOID Config0Write(UINT32 unData) { ISPEnable(); ConfigEnable(); ISPCMD = PROGRAM; ISPADR = CONFIG_START_ADDR+0x00; ISPDAT = unData; ISPTriger(); ISPDisable(); } /**************************************** *函数名称:Config1Write *输 入:无 *输 出:无 *功 能:Config1区 写 ******************************************/ VOID Config1Write(UINT32 unData) { ISPEnable(); ConfigEnable(); ISPCMD = PROGRAM; ISPADR = CONFIG_START_ADDR+0x04; ISPDAT = unData; ISPTriger(); ISPDisable(); } /**************************************** *函数名称:Config0Read *输 入:无 *输 出:无 *功 能:Config0区 读 ******************************************/ UINT32 Config0Read(VOID) { UINT32 unData; ISPEnable(); ISPCMD = READ; ISPADR = CONFIG_START_ADDR+0x00; ISPTriger(); unData = ISPDAT; ISPDisable(); return unData; } /**************************************** *函数名称:Config1Read *输 入:无 *输 出:无 *功 能:Config1区 读 ******************************************/ UINT32 Config1Read(VOID) { UINT32 unData; ISPEnable(); ISPCMD = READ; ISPADR = CONFIG_START_ADDR+0x04; ISPTriger(); unData = ISPDAT; ISPDisable(); return unData; } #include "Config.h" /**************************************** *函数名称:main *输 入:无 *输 出:无 *功 能:函数主体 ******************************************/ INT32 main(VOID) { UINT32 unConfig0Read,unConfig1Read; PROTECT_REG ( PWRCON |= XTL12M_EN; //默认时钟源为外部晶振 while((CLKSTATUS & XTL12M_STB) == 0); //等待12MHz时钟稳定 CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //设置外部晶振为系统时钟 ) UartInit(12000000UL,9600); while(1) { DEBUGMSG("Config wirte and read test\r\n"); ConfigErase(); //配置区擦除 Config0Write(0xF8FFFF7F); //配置区写 Config1Write(0xEFFFFFFF); DEBUGMSG("Config0 wirte 0xF8FFFF7F\r\n"); DEBUGMSG("Config1 wirte 0xEFFFFFFF\r\n"); unConfig0Read=Config0Read(); //配置区读 unConfig1Read=Config1Read(); DEBUGMSG("Config0 read %X\r\n",unConfig0Read); DEBUGMSG("Config1 read %X\r\n",unConfig1Read); DEBUGMSG("\r\n\r\n"); Delayms(1000); } }
唯样商城-电子元器件采购网(www.oneyac.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。唯样自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
本文由网络整理转载自单片机教程网,原文标题为:新唐M051 CONFIG 程序,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

上一篇:新唐M051 WDT看门狗使用程序

下一篇:自动驾驶时代即将来临 加州许可Waymo接载乘客

唯样头条公众号
最新最热
行业资讯
领先元件
技术方案
订阅栏目
效率阅读
品牌专区
相关文章
最新入库
编号 分类 库存
TPS65287RHAR
TI
DC-DC转换器 0
VZT151M1VTR-0607
LELON
未分类 0
VZT101M1ETR-0605
LELON
未分类 0
LBZT52MB24T1G
LRC
通用二极管 0
AF0201FR-0769K8L
Yageo
未分类 0
AB08000001
TXC
未分类 0