完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
程序如下:使用STM32 HAL库
uint8_t SPI_ADIS16209_Sendbyte(uint8_t byte) { uint8_t d_read,d_send = byte; if(HAL_SPI_TransmitReceive( hspi1, d_send, d_read,1,1000)!=HAL_OK) d_read = Dummy_Byte; return d_read; } uint8_t Read_ADIS16209_Data(uint8_t Dst,uint8_t *RcvBuf) { uint8_t i = 0; CLR_CS(); __nop();__nop();__nop();__nop(); SPI_ADIS16209_Sendbyte(Dst 0x3f); SPI_ADIS16209_Sendbyte(0X00); SET_CS(); for(i=1;i>0;i--); CLR_CS(); for(i=0;i<2;i++) { RcvBuf[i] = SPI_ADIS16209_Sendbyte(0x00); } SET_CS(); for(i=1;i>0;i--); return 1; } int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_SPI1_Init(); __HAL_SPI_ENABLE( hspi1); while (1) { Read_ADIS16209_Data(XINCL_OUT,XINCL_OUT_DATA); HAL_Delay(10); Read_ADIS16209_Data(YINCL_OUT,YINCL_OUT_DATA); HAL_Delay(10); Read_ADIS16209_Data(ROT_OUT,ROT_OUT_DATA); HAL_Delay(10); } } 以下是模拟SPI通信程序: void WriteToADIS16209ViaSpi(unsigned char RegisterAddress, unsigned char NumberofRegisters, unsigned char *RegisterData) { unsigned char ControlValue = 0; unsigned int ValueToWrite = 0; unsigned char RegisterIndex = 0; unsigned char i = 0; for(RegisterIndex=0; RegisterIndex |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 01:28 , Processed in 0.490307 second(s), Total 39, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2518