[PIC®/AVR®/dsPIC®产品] DIA数据读出错误问题!

[复制链接]
504|2
 楼主| tanzhb 发表于 2022-12-5 12:26 | 显示全部楼层 |阅读模式
芯片型号:PIC16F15345
使用MCC产生的函数读出的数据不对,和用PICkit3读出的数据差很多。求大神指教,怎么解?
MCC读函数如下,读程序存储区都是正常的,读DIA不对:
uint16_t FLASH_ReadWord(uint16_t flashAddr)
{
    uint8_t GIEBitValue = INTCONbits.GIE;   // Save interrupt enable
   
    INTCONbits.GIE = 0;     // Disable interrupts
    NVMADRL = (flashAddr & 0x00FF);
    NVMADRH = ((flashAddr & 0xFF00) >> 8);

    NVMCON1bits.NVMREGS = 0;    // Deselect Configuration space
    NVMCON1bits.RD = 1;      // Initiate Read
    NOP();
    NOP();
    INTCONbits.GIE = GIEBitValue; // Restore interrupt enable

    return ((uint16_t)((NVMDATH << 8) | NVMDATL));
}
ynwa 发表于 2022-12-5 15:06 | 显示全部楼层
读DIA和读Flash的NVMREGS位设置是不一样的。
NVMREGS: Configuration Select bit
1 = Access DIA, DCI, Configuration, User ID and Device ID Registers
0 = Access Program Flash Memory
wutaosamuel 发表于 2022-12-5 16:46 | 显示全部楼层
楼上应该是正解, 修改NVMREGS

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部