Discuz! Board

标题: 52832 SPI 驱动LCD NRF_FAULT_ID_SD_ASSERT报错 [打印本页]

作者: yanxiao1227    时间: 2022-10-10 21:49
标题: 52832 SPI 驱动LCD NRF_FAULT_ID_SD_ASSERT报错
我用NRF52832驱动一个240*240的TFT彩屏。
SPI设置如下:

        nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
    spi_config.ss_pin   = SPI_SS_PIN;
    spi_config.miso_pin = NRF_DRV_SPI_PIN_NOT_USED;
    spi_config.mosi_pin = SPI_MOSI_PIN;
    spi_config.sck_pin  = SPI_SCK_PIN;
        spi_config.frequency = NRF_DRV_SPI_FREQ_1M;
        spi_config.mode = NRF_DRV_SPI_MODE_0;
        spi_config.orc          = 0xFF,
        spi_config.irq_priority = USER_SPI_CONFIG_IRQ_PRIORITY_HIGH;                //在定时器中使用,优先级要小于6
    APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, spi_event_handler, NULL));


并使用软件定时器刷新屏幕。
/**@brief Function for initializing the timer. */
static void timer_init(void)
{
    ret_code_t err_code = app_timer_init();
    APP_ERROR_CHECK(err_code);
       
                        //创建一个定时,设置定时器模式
        err_code = app_timer_create(&m_timer_lcd_id,
                                APP_TIMER_MODE_REPEATED,
                                Time_lcd_timeout_handler);
    APP_ERROR_CHECK(err_code);
       
}


其中频率设置到1M以下的时候,屏幕都能正常点亮刷新,蓝牙协议栈也能正常工作,但是当频率设置到2M,4M,8M的时候,程序跑到定时
任务的时候,就出错了,DEBUG后,发现属于NRF_FAULT_ID_SD_ASSERT错误,SOFTDEVICE: ASSERTION FAILED


请问有其他人碰到类似SPI高频协议栈出错的情况吗?

作者: yanxiao1227    时间: 2022-10-10 21:51
测试也发现,和软件定时器是无关的,直接在while主循环里显示一个字符,一样会出现以上错误




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3