打印
[PIC®/AVR®/dsPIC®产品]

pic18F26k22 bootloader EEPROM 编程失败

[复制链接]
405|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 pzsh 于 2022-7-21 11:45 编辑

bootloader 和项目程序都正常,就是EEPROM不能编程

使用特权

评论回复
沙发
dengdc| | 2022-7-10 12:19 | 只看该作者

然后呢?你是怎么应对这个的呢        

使用特权

评论回复
板凳
huangchui|  楼主 | 2022-7-10 12:22 | 只看该作者
EEPROM的OFFSET 已更改是多少?

使用特权

评论回复
地板
jlyuan| | 2022-7-10 12:31 | 只看该作者
0x00不对?

使用特权

评论回复
5
huangchui|  楼主 | 2022-7-10 12:34 | 只看该作者
不对,默认也不对

使用特权

评论回复
6
xxmmi| | 2022-7-10 12:37 | 只看该作者
Flash烧录正常吗?

使用特权

评论回复
7
stly| | 2022-7-10 12:59 | 只看该作者
嗯,程序运行正常

使用特权

评论回复
8
pengf| | 2022-7-10 13:03 | 只看该作者
就是eeprom的数据不能写入?

使用特权

评论回复
9
huangchui|  楼主 | 2022-7-10 13:06 | 只看该作者

使用特权

评论回复
10
huangchui|  楼主 | 2022-7-10 13:08 | 只看该作者

使用特权

评论回复
11
yszong| | 2022-7-10 13:12 | 只看该作者
用这些操作,在应用程序里能否对EEPROM操作

使用特权

评论回复
12
dingy| | 2022-7-10 13:14 | 只看该作者

发完整的数据包帮你看一下

使用特权

评论回复
13
xxrs| | 2022-7-10 13:17 | 只看该作者
跟踪调试一下。

使用特权

评论回复
14
huangchui|  楼主 | 2022-7-10 13:20 | 只看该作者
回过来看了手册,又仔细检查程序发现为MCC产生的Bootloader 的代码的问题。

使用特权

评论回复
15
heweibig| | 2022-7-10 13:23 | 只看该作者
EEADR自动产生为为 EEADRL,实际没有此地址,当时就 改为uint8_t EEADRL,导致写入地址错误。
以下为更改正确的代码。

uint8_t  Write_EE_Data()
{
    EEADR = frame.address_L;
    EEADRH = frame.address_H;
        EECON1 = 0x04;  //   b'00000100';     // Setup for EEData
    for (uint8_t i = 0; i < frame.data_length; i++)
    {
        while (EECON1bits.WR == 1);  // wait until previous write complete
        EEADR = frame.address_L + i;
        if (EEADR == 0x00)
        {
            ++ EEADRH;
        }
        EEDATA = frame.data;
        StartWrite ();
    }
    frame.data[0] = COMMAND_SUCCESS;
    return 10;
}00';     // Setup for EEData

使用特权

评论回复
16
huangchui|  楼主 | 2022-7-10 13:26 | 只看该作者
明白了,多谢大家讨论这么多哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

粉丝