12
返回列表 发新帖
楼主: 物我两相忘

[已解决] 求一个KEA64操作EEPROM的例子

[复制链接]

该用户从未签到

4

主题

24

帖子

0

注册会员

Rank: 2

积分
154
最后登录
1970-1-1
 楼主| 发表于 2016-8-7 15:16:52 | 显示全部楼层
对EEPORM操作失败的原因找到了,原来是对FLASH和EEPROM操作的时候是不可以执行FLASH里的程序,所以必须将相应函数复制到RAM中去执行。相应的驱动程序可以在官方里Standard Software Driver v1.0.0里看到。
回复 支持 反对

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20125
最后登录
2024-5-3
发表于 2016-8-8 09:47:28 | 显示全部楼层
物我两相忘 发表于 2016-8-7 15:16
对EEPORM操作失败的原因找到了,原来是对FLASH和EEPROM操作的时候是不可以执行FLASH里的程序,所以必须将相 ...

是的,一个执行命令要放到RAM中,二个执行的时候要关闭总中断。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-12-18 14:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    2

    主题

    10

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    2018-12-18
    发表于 2018-12-17 14:01:07 | 显示全部楼层

    请问一下,大神您有EEPROM数据读取的程序吗?
    开心每一天
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20125
    最后登录
    2024-5-3
    发表于 2018-12-18 09:40:44 | 显示全部楼层
    别拿青春赌明天@ 发表于 2018-12-17 14:01
    请问一下,大神您有EEPROM数据读取的程序吗?

    读取很简单,直接读地址取数据就行了。
    我给你的例程里面就有,比如:
    *((uint8_t *)(i*16+ch+EEPROM_START_ADDRESS))
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    23

    帖子

    0

    注册会员

    Rank: 2

    积分
    164
    最后登录
    2021-10-7
    发表于 2021-9-9 09:59:58 | 显示全部楼层

    uint16_t FLASH_Init(uint32_t u32BusClock)
    {
            uint16_t u16Err = FLASH_ERR_SUCCESS;
            uint8_t clkDIV = u32BusClock/1000000L - 1;
           
            if(!(FTMRH->FSTAT & FTMRH_FSTAT_CCIF_MASK))
            {
                    u16Err |= FLASH_ERR_INIT_CCIF;
                    return u16Err;
            }
            .
            .
            .
    }

    #define FLASH_ERR_BASE        0x3000        /*!< FTMRH error base */   这里的0x3000  我可以理解成
    只是一个错误标志吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    23

    帖子

    0

    注册会员

    Rank: 2

    积分
    164
    最后登录
    2021-10-7
    发表于 2021-9-10 09:39:07 | 显示全部楼层

    您好。KEAZN64  EEPROM  能写、能读了。   现在遇到一个新问题。  操作完EEPROM, 串口发送2个字节后,进入HardFault .

    int main(void)
    {
              uint8_t eBuf[EEPROM_SIZE];
           
              Bsp_Init();
           
              GetChipUniqueID();
           
              memset(eBuf,0x5A,sizeof(eBuf));
              mFLASH_Init(16000000);
              mEEPROM_EraseOneSector(EEPROM_SIZE);
              mEEPROM_Program(EEPROM_START_ADDRESS,&eBuf[0],EEPROM_SIZE);
              memset(eBuf,0x00,sizeof(eBuf));
              mEEPROM_Read(0,&eBuf[0],EEPROM_SIZE);
           
              printf("Usart0 Send Hello kea ! \r\n");
           
              while(1)
    }

    到 “ printf("Usart0 Send Hello kea ! \r\n");”  程序就死了。   串口调试助手 能接到 Us
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    10

    帖子

    0

    新手上路

    Rank: 1

    积分
    33
    最后登录
    2024-4-1
    发表于 2023-3-25 19:09:23 | 显示全部楼层

    对于这个我会操作,有一点我一直没弄明白,官方模拟EEPROM(KEA128)中,对字节的读与写,是驱动包完成的,还是外设本身有字节写功能,
    普通flash只能按片区或块来写,望科普
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    10

    帖子

    0

    新手上路

    Rank: 1

    积分
    33
    最后登录
    2024-4-1
    发表于 2023-3-25 19:15:15 | 显示全部楼层
    功夫崽崽 发表于 2021-9-10 09:39
    您好。KEAZN64  EEPROM  能写、能读了。   现在遇到一个新问题。  操作完EEPROM, 串口发送2个字节后,进 ...

    参照官方例子做,你这个我没试过,我参照官方例子,操作没问题
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-4 13:55 , Processed in 0.140758 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表