找回密码
 立即注册

QQ登录

只需一步,快速开始

开启左侧

[M23] fmc read

[复制链接]
匿名  发表于 2020-10-20 17:27:29 |阅读模式
FMC_Read函数读出来全部是65或65‘A',是咋回事?求大虾相助!
回复

使用道具

匿名  发表于 2020-10-21 11:04:29
请您把相关代码贴一下
回复 支持 反对

使用道具

匿名  发表于 2020-10-22 11:16:14
FMC_Write((uint32_t)&TVTHAVED,0);//TVTHAVED = 0;


FMC_Open();
                SYS_UnlockReg();
                int16_t tmp;
    uint8_t i=0;
    int8_t j=0;
    TVT_Haved =FMC_Read( (uint32_t)&TVTHAVED);

读出来都是255 ' ',没加FMC_Open();时读出来都是65.
回复 支持 反对

使用道具

nes6502 发表于 2020-10-22 14:17:29 | 显示全部楼层
游客 117.25.106.x 发表于 2020-10-22 11:16
FMC_Write((uint32_t)&TVTHAVED,0);//TVTHAVED = 0;
  1. SYS_UnlockReg(); //1. 要先解锁保护寄存器
  2. FMC_Open();      //2. 打开FMC功能, 后面再进行读写操作

  3. FMC_Write((uint32_t)&TVTHAVED, 0);//TVTHAVED = 0;


  4.     int16_t tmp;
  5.     uint8_t i=0;
  6.     int8_t j=0;
  7.        
  8.     TVT_Haved =FMC_Read( (uint32_t)&TVTHAVED);
复制代码
回复 支持 反对

使用道具 举报

匿名  发表于 2020-10-22 17:23:21
SYS_UnlockReg();
                FMC_Open();
                FMC_ENABLE_AP_UPDATE();
都试过了,FMC_Write之后flash对应地址里的值是对的(KEIL DEBUG里FMC),只是FMC_Read取出来不对。
回复 支持 反对

使用道具

匿名  发表于 2020-10-23 10:12:29
我的以下CLK为啥不行?:
/* Unlock protected registers */
    //SYS_UnlockReg();

    /* Enable clock source */
    CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk);

    /* Waiting for clock source ready */
    CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk);

    /* If the defines do not exist in your project, please refer to the related clk.h in the Header folder appended to the tool package. */
    /* Set HCLK clock */
    CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HXT, CLK_CLKDIV0_HCLK(1));

    /* Set PCLK-related clock */
    CLK->PCLKDIV = (CLK_PCLKDIV_APB0DIV_DIV1 | CLK_PCLKDIV_APB1DIV_DIV1);

    /* Enable IP clock */

    /* Update System Core Clock */
    /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
    //SystemCoreClockUpdate();
                /* Enable RTC module clock */
    CLK_EnableModuleClock(RTC_MODULE);
               
                CLK_EnableModuleClock(EADC_MODULE);
    CLK_SetModuleClock(EADC_MODULE, 0, CLK_CLKDIV0_EADC(0));
                 /* Enable PDMA clock source */
    CLK_EnableModuleClock(PDMA0_MODULE);
                /* Enable TIMER module clock */
    CLK_EnableModuleClock(TMR0_MODULE);
    CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, 0);
                /* Enable TIMER module clock */
    CLK_EnableModuleClock(TMR1_MODULE);
    CLK_SetModuleClock(TMR1_MODULE, CLK_CLKSEL1_TMR1SEL_HXT, 0);//ssp
                /* Enable TIMER module clock */
    CLK_EnableModuleClock(TMR2_MODULE);
    CLK_SetModuleClock(TMR2_MODULE, CLK_CLKSEL1_TMR2SEL_HXT, 0);
                /* Enable UART module clock */
    CLK_EnableModuleClock(UART0_MODULE);
                /* Select UART module clock source as HXT and UART module clock divider as 1 */
    CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HXT, CLK_CLKDIV0_UART0(1));
                /* Enable WDT module clock */
    CLK_EnableModuleClock(WDT_MODULE);
    CLK_SetModuleClock(WDT_MODULE, CLK_CLKSEL1_WDTSEL_LIRC, 0);
    /* Lock protected registers */
    //SYS_LockReg();

debug后出现CLK寄存器错误:
AGDI-WARNING:failed to read memory at 0x40000230一直到0x400002B4
回复 支持 反对

使用道具

匿名  发表于 2020-10-23 15:24:17
游客 117.25.106.x 发表于 2020-10-22 17:23
SYS_UnlockReg();
                FMC_Open();
                FMC_ENABLE_AP_UPDATE();

请参照下列代码写试试看
微信截图_20201023152327.png
回复 支持 反对

使用道具

匿名  发表于 2020-10-23 15:56:51
FMC的目前看似是可以,SYS_UnlockReg(); FMC_Open();FMC_ENABLE_AP_UPDATE();要紧挨再FMC段前。但是,读到几条数据之后就跳出楼上的CLK寄存器读取错误,不知道是不是CLK初始化有问题?请大侠帮忙看看。

               
回复 支持 反对

使用道具

匿名  发表于 2020-10-27 11:28:15
ICE COMMAND ERROR SET REGISTER DATA ERROR.
这个要怎么处理?
回复 支持 反对

使用道具

匿名  发表于 2020-10-27 13:21:19
游客 125.77.85.x 发表于 2020-10-27 11:28
ICE COMMAND ERROR SET REGISTER DATA ERROR.
这个要怎么处理?

没连上仿真器,检查一下仿真器硬件连接是否正确
回复 支持 反对

使用道具

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU