完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用ST的开发板与ADXL355用SPI通信,无法读到正确的DEVID_AD值。
现象是: 间隔100ms读一次DEVID_AD(SPI发送一个字节0x00,每次都一样),每次上电前五次的值分别是0x00、0xAD、0x1D、0xED、0x01,这太巧合了从0xAD开始分别为ADXL355前4个寄存器的值,我认为预期结果应该是读出全是DEVID_AD的复位值0xAD。目前不能判断ADXL355有没有正常工作和通信,并且不知道问题出在哪里,希望在这里找到答案。 我用示波器检查过SPI的MOSI、MISO、SCK,波形皆正常。 我使用的硬件如下: 1、MCU:STM32L051C8 2、ADXL355评估板 EVAL-ADXL355-PMDZ 代码如下 GPIO:MOSI、MISO、SCK都为复用推挽输出,复用功能为SPI1;NSS为推挽输出,使用软件控制,此管脚一直拉低。 SPI驱动: void SPI1_Init(void) { LL_SPI_InitTypeDef SPI_InitStruct; LL_SPI_DeInit(SPI1); /* SPI1 parameter configuration*/ SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX; //全双工 SPI_InitStruct.Mode = LL_SPI_MODE_MASTER; //SPI主模式 SPI_InitStruct.DataWidth = LL_SPI_DATAWIDTH_8BIT; //数据宽度为8bit SPI_InitStruct.ClockPolarity = LL_SPI_POLARITY_LOW; //CPOL=0 SPI_InitStruct.ClockPhase = LL_SPI_PHASE_1EDGE; //CPHA=0 SPI_InitStruct.NSS = LL_SPI_NSS_SOFT; //软件片选 SPI_InitStruct.BaudRate = LL_SPI_BAUDRATEPRESCALER_DIV4; //时钟为APB2时钟4分频,APB2时钟为16M SPI_InitStruct.BitOrder = LL_SPI_MSB_FIRST; //先发送最高位 SPI_InitStruct.CRCCalculation = LL_SPI_CRCCALCULATION_DISABLE; //关闭CRC校验 SPI_InitStruct.CRCPoly = 7; LL_SPI_Init(SPI1, SPI_InitStruct); LL_SPI_SetStandard(SPI1, LL_SPI_PROTOCOL_MOTOROLA); //使用motorola协议 //LL_SPI_EnableIT_RXNE(SPI1); LL_SPI_Enable(SPI1); //使能SPI } 读取测试代码: uint8_t ADXL355_SPI_Read(void) { uint8_t txData; uint8_t ui8address = 0x00; uint8_t recieveData = 0; txData = (ui8address << 1)|0x01; LL_SPI_TransmitData8(SPI1, txData); //SPI发送一个字节 while(!LL_SPI_IsActiveFlag_TXE(SPI1)); //等待发送完成 while(!LL_SPI_IsActiveFlag_RXNE(SPI1)); //等待接收完成 recieveData = LL_SPI_ReceiveData8(SPI1); //读一个字节 uint8_t sendStr[20]; memset(sendStr, 0x00, sizeof(sendStr)); sprintf((char*)sendStr, "%drn", recieveData); Lpuart_PutString(sendStr, strlen((char*)sendStr)); Uart_PutString(sendStr, strlen((char*)sendStr)); return 0; } |
|
相关推荐
1 条评论
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2291 浏览 1 评论
4088 浏览 1 评论
8190 浏览 0 评论
1992 浏览 0 评论
VL53L5CX #高达 8x8 多区域测距和 63°对角线宽视场 飞行时间多区域测距传感器
17404 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 16:43 , Processed in 0.636228 second(s), Total 85, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号