This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP432P401R:变量空间存在问题

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/647330/ccs-msp432p401r-problem-with-variables-space

器件型号:MSP432P401R

工具/软件:Code Composer Studio

您好!

我有这个问题、一个包含128个空格的缓冲区(地址为0x20000200)、它会进入位于地址为0x20000280的 inglobe 结构、现在在我的程序中、该结构是必须的、我需要它来运行我的硬件、但当我复位缓冲区时、 它也会重置我的结构体。 我已经尝试优化全局变量、但它不会改变。 你有建议吗?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    安德烈
    您能描述一下"复位缓冲区"时所执行的操作、还是发送代码?
    -Bob L
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    代码非常庞大、但还好、我将我认为至关重要的内容联系起来。

    typedef 结构{
    EPD_SIZE _tSIZE;
    uint8_tCHANNEL SELECT[8];/**<通道选择的 SPI 寄存器数据*/
    union{
    uint8_tvolte_level; /**<电压电平的 SPI 寄存器数据*/
    uint8_tdmum_line_offset; /** "="" etc_g2mb_200_line_data_t="" etc_g2mb_200_line_data;="" 2"="" etc_g2mb_270_line_data_t="" etc_g2mb_270_line_data;="" 2.7"="" etc_g2mb_190_line_data_t="" etc_g2mb_190_line_data;="" 1.9"="" etc_g2mb_260_line_data_t="" etc_g2mb_260_line_data;="" 2.6"="" line_data_by_size;="" specific="" size="" uint8[line_buffer_data_size];="" maximum="" buffer="" as="" length="" line_buffer_data_size="128" etc_g2mb_line_data_t;="" 0x2000200="" etc_g2mb_initialize_driver="" (operationmode_t="" operationmode)="" i;="" empty="" for="" (i="0;" i="" = 0x0FFF)返回 ERROR_BUSY;
    }
    
    //检查 COG ID
    if ((EPD_GX_SPI_RID)& 0x0F)!= 0x02) return ERROR_COG_ID;
    //禁用 OE
    EPD_GX_SPI_SEND_BYTE (0x02、0x40);
    //检查 EPD
    if (EPD_GX_SPI_r (
    
    
    
    0x02) RETURN EP_SP_20_END_BYTE;//设置 EPD EPD (0x02);0x80_SPI_CO_END_BYTE_END_BYTE;// EP_END+20_END+080_END+20_END+++EP_END++++++20_END+EP_END+/0x02
    
    
    
    
    //设置 Vcom 电平
    EPD_GX_SPI_SEND_BYTE (0x09、0xC2);
    //电源设置
    EPD_GX_SPI_SEND_BYTE (0x04、0x03);
    // EPD_GL_SPI_SEND_BYTE 上的驱动器锁存
    器(0x03、0x3、0x01);
    // EPD_EPD_EPD_EPD_EPD_GEL_SEND_GED (
    0x0+
    EPD_GEL_EPD
    
    
    
    
    
    
    
    
    
    
    
    
    、0x40
    (0x0+ EPD_EPD_GEL_EPD)/GEL_EPD_PREPD、0x40ms);// VEP_EP_EP_PREP_GEL_EP_GEL_EP_PREP_NED (0x3、0x0+ 0x0+ EP_GEL_EP_GEL_EP_GEL_PREP_GEL (0x3、0x0+ 0+ 0+ 0+ 0+ 0+ 0+ EP_GEL_EP_GEL_EP_GEL_EP_GEL_EP_GEL_EP_GED、0x40
    (0x3、0+ 0x3、0+ EP_GEL_EP_DEV_EP_GEL_EP_GEL
    
    //检查 DC/DC
    if ((EP_GX_SPI_r (0x0F、0x00)& 0x40)= 0x40)
    {
    //输出启用以禁用
    EPD_GX_SPI_SEND_BYTE (0x02、0x06);
    break;
    }
    }}while ((i++)!= 4);
    
    if (i>=4) return error_PUGEMP
    ;return
    
    

    希望它能帮您、如果您需要其他器件、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Andrea。 这会有所帮助。 我将查看它并返回给您。
    -Bob
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我解决了、我错误地优化了存储器。 现在它起作用了。