完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在KEIL下调试ADuCM360的SPI接口,自检测试。为什么SPITX寄存器里写不进去任何东西啊??代码如下:
[size=10.5000pt]#include [size=10.5000pt]#include [size=10.5000pt]#include [size=10.5000pt]#include <..commonAdcLib.h> [size=10.5000pt]#include <..commonIexcLib.h> [size=10.5000pt]#include <..commonUrtLib.h> [size=10.5000pt]#include <..commonClkLib.h> [size=10.5000pt]#include <..commonWdtLib.h> [size=10.5000pt]#include <..commonIntLib.h> [size=10.5000pt]#include <..commonDioLib.h> [size=10.5000pt]#include <..commonSpiLib.h> [size=10.5000pt]void SPI1INIT(void); [size=10.5000pt]unsigned char uxSPI1WrData[]={0x1,0x2,0x3,0x4,0x5,0x6,0x7, [size=10.5000pt] 0x8,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18}; [size=10.5000pt]unsigned char uxSPI1RdData[]=""; [size=10.5000pt]int main (void) [size=10.5000pt]{ [size=10.5000pt] WdtCfg(T3CON_PRE_DIV1,T3CON_IRQ_EN,T3CON_PD_DIS); [size=10.5000pt] ClkDis(CLKDIS_DISI2CCLK|CLKDIS_DISPWMCLK|CLKDIS_DIST0CLK|CLKDIS_DIST1CLK|CLKDIS_DISDACCLK); [size=10.5000pt] ClkCfg(CLK_CD0,CLK_HF,CLKSYSDIV_DIV2EN_DIS,CLK_UCLKCG); [size=10.5000pt] ClkSel(CLK_CD0,CLK_CD0,CLK_CD0,CLK_CD7); [size=10.5000pt] SPI1INIT(); [size=10.5000pt] SpiCfg(pADI_SPI1,SPICON_MOD_TX1RX1,SPICON_MASEN_EN ,SPI1CON_TFLUSH_DIS| SPI1CON_RFLUSH_EN| SPI1CON_CON_EN| SPI1CON_LOOPBACK_EN| SPI1CON_SOEN_DIS| SPI1CON_RXOF_EN [size=10.5000pt] | SPI1CON_ZEN_DIS| SPI1CON_tiM_TXWR| SPI1CON_LSB_DIS| SPI1CON_WOM_DIS| SPI1CON_CPOL_HIGH| SPI1CON_CPHA_SAMPLETRAILING| SPI1CON_ENABLE_EN); [size=10.5000pt] pADI_GP0->GPCLR = GP0CLR_CLR3_CLR; [size=10.5000pt]while (1) [size=10.5000pt] { [size=10.5000pt] int i=0; [size=10.5000pt] for(i=0;i<15;i++) [size=10.5000pt] {pADI_SPI1->SPITX= uxSPI1WrData; [size=10.5000pt]pADI_SPI1->SPIRX=pADI_SPI1->SPITX; [size=10.5000pt]uxSPI1RdData=pADI_SPI1->SPIRX; [size=10.5000pt] } [size=10.5000pt] } [size=10.5000pt]} [size=10.5000pt]void SPI1INIT(void) [size=10.5000pt]{ [size=10.5000pt] DioCfgPin(pADI_GP0, PIN0, 1); [size=10.5000pt] DioCfgPin(pADI_GP0, PIN1, 1); [size=10.5000pt] DioCfgPin(pADI_GP0, PIN2, 1); [size=10.5000pt] DioCfgPin(pADI_GP0, PIN3, 1); [size=10.5000pt] SpiBaud(pADI_SPI1,0x3F,SPIDIV_BCRST_DIS); [size=10.5000pt]} [size=10.5000pt]我认为即使SPI不配置,SPITX寄存器也能写进去东西啊,只是不能传输而已。现在SPITX里面的数一直是0。望朋友们解答! |
|
相关推荐
1个回答
|
|
1. SPI接口未正确初始化:在使用SPI之前,需要对SPI接口进行正确的初始化。确定已经正确配置了SPI控制寄存器和通信时序参数。
2. SPI模块未使能:确保已经使能了SPI模块。可以通过SPI控制寄存器中的相应位来使能SPI模块。 3. 发送缓冲区满:如果发送缓冲区已经满了,新的数据就无法写入SPITX寄存器。可以通过查询SPI状态寄存器的发送缓冲区寄存器满位来判断。 4. 中断使能问题:如果使用中断方式进行数据传输,确保已经使能了相关中断,并编写了中断服务函数。 5. SPI时钟配置问题:SPI的时钟频率和通信时序需要正确配置。如果SPI时钟过快或者通信时序参数不正确,通信可能无法正常进行。 请检查以上可能导致无法向SPITX寄存器写入数据的问题, |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
298 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
309 浏览 0 评论
826 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1911 浏览 2 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1427 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12031 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 01:49 , Processed in 0.730166 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号