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