设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2448|回复: 1
打印 上一主题 下一主题

52832 SPI 驱动LCD NRF_FAULT_ID_SD_ASSERT报错

[复制链接]

1

主题

2

帖子

19

积分

新手上路

Rank: 1

积分
19
跳转到指定楼层
楼主
yanxiao1227 发表于 2022-10-10 21:49:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用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高频协议栈出错的情况吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

1

主题

2

帖子

19

积分

新手上路

Rank: 1

积分
19
沙发
 楼主| yanxiao1227 发表于 2022-10-10 21:51:47 | 只看该作者
测试也发现,和软件定时器是无关的,直接在while主循环里显示一个字符,一样会出现以上错误
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-11-22 19:39 , Processed in 0.167249 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表