main.c
来自「试验仪自检程序」· C语言 代码 · 共 75 行
C
75 行
//======================================================
// The information contained herein is the exclusive property of
// Sunnnorth Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
// (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies.
//========================================================
//============================================================
// 文件名称:main.c
// 实现功能: Flash 存储的擦除和读写
// A口低8位接8个LED,当读写擦除全部成功时,点亮所有的LED
// 擦除失败时点亮第一个LED
// 写单字失败时点亮第二个LED
// 写页失败时点亮第三个LED
//============================================================
#include "hardware.h"
#define C_Fail_Led4 0x0008
#define C_Fail_Led3 0x0004
#define C_Fail_Led2 0x0002
#define C_Fail_Led 0x0001
#define C_Success_Led 0x00ff
//=============================================================
// 函数名称: int main()
// 功能描述: Flash 存储的擦除和读写
// A口低8位接8个LED,当读写擦除全部成功时,点亮所有的LED
// 擦除失败时点亮第一个LED
// 写单字失败时点亮第二个LED
// 写页失败时点亮第三个LED。
// 语法格式: int main()
// 注意事项: 仅为用户模型
//=================================================================
int main()
{
unsigned int *sector, *addr,*P_Watchdog_Clear = 0x7012;
int i;
const int num[]={
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100,101,102,103,104,105,106,107,108,109,110,111,112,
113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128};
SP_Init_IOA(0xffff,0xffff,0xffff); //设置A口为输出端
SP_Init_IOB(0x0040,0x0040,0x0040);
sector = 0xA000;
F_FlashErase(sector); //擦除256字节/128字
for (i=0;i<0x100;i++) //擦除成功否
{
if (*(sector+i)!=0xffff)
{
SP_Export(Port_IOA_Buffer, C_Fail_Led); //否,点亮第一个LED
return(1);
}
}
addr = 0xA000;
F_FlashWrite1Word(addr,0x5555); //在A000地址处写0x5555
if( * addr!=0x5555) //写成功否
{
SP_Export(Port_IOA_Buffer, C_Fail_Led2); //否,点亮第二个LED
return(1);
}
addr = 0xA001;
F_FlashWrite1Word(addr,0xAAAA); //在A001地址处写0xaaaa
if (* addr!=0xAAAA) //写成功否
{
SP_Export(Port_IOA_Buffer, C_Fail_Led3); //否,点亮第三
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?