新手求助,我在配置spi的时候发现不管我向从芯片发出什么信号回读出来的信号都是a800,想问一下大家这是怎么回事
Susan Yang:
请问能给出详细信息?由于我现在没有tms570ls0914的板子,所以无法上手测试
请您将相关的代码贴一下
user6005420:
回复 Susan Yang:
/* USER CODE BEGIN (2) */
uint16 WR_SAFETY_CHECK_CTRL[1]={0X9317};
uint16 RD_SAFETY_CHECK_CTRL[1]={0X4400};
uint16 WR_SAFETY_FUNC_CFG[1]={0X35E4};
uint16 RD_SAFETY_FUNC_CFG[1]={0X3A00};
uint16 WR_DIAG_CFG_CTRL[1]={0XCCA0};
uint16 RD_DIAG_CFG_CTRL[1]={0XDD00};
int i;
/* USER CODE END */int main(void)
{
/* USER CODE BEGIN (3) */mibspiInit();mibspiSetData(mibspiREG1,0,WR_SAFETY_CHECK_CTRL);
mibspiSetData(mibspiREG1,1,WR_SAFETY_FUNC_CFG);mibspiSetData(mibspiREG1,2,WR_DIAG_CFG_CTRL);while(1){mibspiTransfer(mibspiREG1,0);mibspiTransfer(mibspiREG1,1);mibspiTransfer(mibspiREG1,2);if( mibspiIsTransferComplete (mibspiREG1,0)==1){mibspiGetData(mibspiREG1,0,RD_SAFETY_CHECK_CTRL);}if( mibspiIsTransferComplete (mibspiREG1,1)==1){mibspiGetData(mibspiREG1,1,RD_SAFETY_FUNC_CFG);}if( mibspiIsTransferComplete (mibspiREG1,2)==1){mibspiGetData(mibspiREG1,2,RD_DIAG_CFG_CTRL);}}就是想完成简单的从寄存器设置,但是测得的somi的波形也一样一直是ac00
user6121941:
回复 user6005420:
您好,麻烦问您一下,您的这个调通了么?我现在也遇到这个问题了,想请教您一下。
user6005420:
回复 user6121941:
我记得之前是我把引脚复用选错了,是在HAL里的pinmux选项里面的,你去看看是不是同样的问题
user6121941:
回复 user6005420:
我用的是SPI,没用MIBSPI,谢谢您了。
user6005420:
回复 user6121941:
不需要的
user6121941:
感谢您的回答,再向您请教两个问题,第一:WR是写命令,通过写进去的数据控制芯片,RD是读命令,把芯片运行的状态读取出来,我这样的理解对吗? 第二:我用的是不带奇偶校验的命令,发送命令之后返回的数据和datasheet上的不一样,比如说版本号,datasheet上是0,我的读取回来的是10011000,还有好几个命令是根本没有返回值的,您那的情况跟datasheet上的一样吗? 谢谢了
user6005420:
回复 user6121941:
你好,你的第一个问题的理解是对的,第二个的话我也不是很了解,因为我也是才学这一块的东西,实在不好意思未能解答你的疑惑