完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在 SPI 数据传输期间面临控制器挂起的情况,通过 uart 打印我能够看到函数正在进入我们构建的 SPi 包装器函数,但它没有退出或从函数中返回,请在下面找到 SPI 函数,它将从包装器中为必须写入的数据的每个字节调用该函数
/* SPI read / write for programmer application. */CyU3PReturnStatus_tCyFxSpiTransfer ( uint16_t byteAddress, uint16_t byteCount, uint8_t *buffer,uint8_t *readBuffer, CyBool_t isRead){ CyU3PReturnStatus_t status = CY_U3P_SUCCESS; if (byteCount == 0) { return CY_U3P_SUCCESS; } if (isRead) /*Read*/ { CyU3PSpiSetSsnLine (CyFalse); status = CyU3PSpiReceiveWords ( readBuffer[0], byteCount); if (status != CY_U3P_SUCCESS) { CyU3PSpiSetSsnLine (CyTrue); return status; } CyU3PSpiSetSsnLine (CyTrue); } else /*Write*/ {// CyU3PDebugPrint (2, "STFEn"); CyU3PSpiSetSsnLine (CyFalse); status = CyU3PSpiTransmitWords (buffer, byteCount);// status = SendSpiWords(buffer, byteCount); CyU3PDebugPrint (2, "STF-%xn",status); if (status != CY_U3P_SUCCESS) {// spi_deint(); CyU3PSpiSetSsnLine (CyTrue); return status; } CyU3PSpiSetSsnLine (CyTrue); } return CY_U3P_SUCCESS;} 请查找 UART 版画截图 |
|
相关推荐
1个回答
|
|
可能的原因包括以下几点:
1. 传输超时:如果SPI传输超时时间设置不合适,或者SPI设备没有正确响应传输请求,可能会导致控制器挂起。您可以确认SPI设备是否正常工作,以及传输超时时间是否适当。 2. 中断冲突:如果SPI传输期间发生中断冲突,可能会导致控制器挂起。您可以检查其他中断或优先级是否干扰了SPI传输。 3. 缓冲区溢出:如果SPI传输期间的缓冲区大小不足以容纳全部数据,可能会导致控制器挂起。您可以确保使用的缓冲区大小足够大以容纳传输数据。 4. SPI配置错误:可能是SPI配置不正确导致控制器挂起。您可以检查SPI配置是否符合设备要求,并确保时钟、模式、数据位数等设置正确。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:28 , Processed in 0.671494 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号