流行科技 发表于 2022-8-8 20:54

【N32L43x评测】移植墨水屏出现了问题

<p>有一种程序卡在BKPT上的情况,然后我搜索了下是仿真可以运行但是不调试就死机。</p>

<p style="">这是别人的回答。</p>

<p style="">这种卡在BKPT上的情况,如果是硬件仿真,多点几次运行,是可以跑起来的,很奇怪。我点三次运行程序就可以跑起来了,但是离线是跑不起来的。</p>

<p style="">出现这样的情况主要是堆栈分配,我看之前的STM32的墨水瓶代码堆栈分配了超级大。</p>

<p style=""> &nbsp;</p>

<p style="">搞这么大主要是其用了malloc分配一些数组空间。</p>

<p style=""> &nbsp;</p>

<p style="">这不是重点,我们可以不采用这种方法。主要是我移植了之后,屏幕完全没反应,这个就比较奇怪了。</p>

<p style=""> &nbsp;</p>

<p style="">主要我在设置io口为输入模式时这里一种不过,电平一直为高的。不像我在STM32运行时,会变低。</p>

<pre>
<code>void sEPD_IO_DeInit(void)  

{

       GPIO_InitType GPIO_InitStructure;

       SPI_InitType SPI_InitStructure;

      

    GPIO_InitStruct(&amp;GPIO_InitStructure);



    /*!&lt; sFLASH_SPI_CS_GPIO, sFLASH_SPI_MOSI_GPIO, sFLASH_SPI_MISO_GPIO

         and sFLASH_SPI_SCK_GPIO Periph clock enable */

    RCC_EnableAPB2PeriphClk(

        RCC_APB2_PERIPH_GPIOA|RCC_APB2_PERIPH_GPIOB, ENABLE);



    /*!&lt; sFLASH_SPI Periph clock enable */

    RCC_EnableAPB2PeriphClk(sEPD_SPI_CLK|RCC_APB2_PERIPH_AFIO, ENABLE);



      

       /*!&lt; Configure sFLASH_CS_PIN pin: sFLASH Card CS pin */

    GPIO_InitStructure.Pin       = sEPD_CS_PIN;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_InitPeripheral(sEPD_CS_GPIO_PORT, &amp;GPIO_InitStructure);

      

       GPIO_InitStructure.Pin       = RST_Pin;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_InitPeripheral(GPIOA, &amp;GPIO_InitStructure);



    GPIO_InitStructure.Pin       = DC_Pin;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_InitPeripheral(GPIOB, &amp;GPIO_InitStructure);

      

       GPIO_InitStructure.Pin       = GPIO_PIN_5;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_InitPeripheral(GPIOB, &amp;GPIO_InitStructure);

      

    GPIO_InitStructure.Pin       = BUSY_Pin;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Input;

    GPIO_InitPeripheral(GPIOB, &amp;GPIO_InitStructure);

      

    /*!&lt; Configure sFLASH_SPI pins: SCK */

    GPIO_InitStructure.Pin        = sEPD_SPI_SCK_PIN;

    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;

    GPIO_InitStructure.GPIO_Alternate = GPIO_AF0_SPI1;

    GPIO_InitPeripheral(sEPD_SPI_SCK_GPIO_PORT, &amp;GPIO_InitStructure);



    /*!&lt; Configure sFLASH_SPI pins: MOSI */

    GPIO_InitStructure.Pin = sEPD_SPI_MOSI_PIN;

       GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;

    GPIO_InitStructure.GPIO_Alternate = GPIO_AF0_SPI1;

    GPIO_InitPeripheral(sEPD_SPI_MOSI_GPIO_PORT, &amp;GPIO_InitStructure);



    /*!&lt; Configure sFLASH_SPI pins: MISO */

    GPIO_InitStructure.Pin       = sEPD_SPI_MISO_PIN;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Input;

    GPIO_InitPeripheral(sEPD_SPI_MISO_GPIO_PORT, &amp;GPIO_InitStructure);





      

      

       SPI_InitStructure.DataDirection = SPI_DIR_DOUBLELINE_FULLDUPLEX;

    SPI_InitStructure.SpiMode       = SPI_MODE_MASTER;

    SPI_InitStructure.DataLen       = SPI_DATA_SIZE_8BITS;

    SPI_InitStructure.CLKPOL        = SPI_CLKPOL_LOW;

    SPI_InitStructure.CLKPHA        = SPI_CLKPHA_FIRST_EDGE;

    SPI_InitStructure.NSS           = SPI_NSS_SOFT;

    SPI_InitStructure.BaudRatePres = SPI_BR_PRESCALER_32;

    SPI_InitStructure.FirstBit = SPI_FB_MSB;

    SPI_InitStructure.CRCPoly  = 7;

    SPI_Init(sEPD_SPI, &amp;SPI_InitStructure);



    /*!&lt; Enable the sFLASH_SPI  */

    SPI_Enable(sEPD_SPI, ENABLE);

      

}

      </code></pre>

<p style="">这是我的配置函数,SPI这边没问题,只要那个读取忙过去,这边发送我用逻辑分析仪看了全部是正确的。所以不知道是不是上面的IO配置出了问题。目前墨水屏暂时没有搞定。</p>

<div id="qb-sougou-search" style="display: none; opacity: 0;">
<p>搜索</p>

<p class="last-btn">复制</p>
<iframe src=""></iframe></div>

lugl4313820 发表于 2022-8-8 23:28

先试一下不用读取忙先,刷新太快可能出问题。

秦天qintian0303 发表于 2022-8-9 08:53

<p>出现问题最好还是先用模拟试一下通信是否正常,再改成硬件当时读一下是否正常,读个最简单的ID,然后再看驱动程序</p>

秦天qintian0303 发表于 2022-8-9 08:54

<p>每次移植都有可能遇到各种问题,得一步一步排除定位,从硬件到软件一点一点来</p>

wangerxian 发表于 2022-8-9 10:17

<p>墨水屏刷新一次时间挺久的,趋近1秒了。你5秒让墨水屏显示一次,然后不检测忙试试。</p>

freebsder 发表于 2022-8-10 19:13

<p>BKPT是啥?</p>

eew_DPB3w3 发表于 2022-8-16 17:58

BUSY_PIN是不是要设置上下拉啊
页: [1]
查看完整版本: 【N32L43x评测】移植墨水屏出现了问题