请选择 进入手机版 | 继续访问电脑版
搜索
热搜: XMC1000 XMC4000
查看: 137|回复: 4

新人疑惑 关于使用dave3实现spi通讯的疑问

[复制链接]

1

主题

6

帖子

35

积分

新手上路

Rank: 1

积分
35
发表于 6 天前 | 显示全部楼层 |阅读模式
新人小白,第一次编程,第一次使用dave3,想通过spi实现xmc4400和两个传感器之间的读写操作,翻了好几遍的协议没怎么看懂,能不能请各位大佬指点一二,感激不尽!

贴一下自个码的渣渣代码:
       typedef enum SPI001_ModeType
        {SPI001_STANDARD_FULLDUPLEX}SPI001_ModeType;
        typedef enum SPI001_HBModeType
        {SPI001_MSB}SPI001_HBModeType;
        typedef enum SPI001_TransmitMode
        { SPI001_STANDARD = 0}SPI001_TransmitMode;
        typedef enum SPI001_CSLineType
        {CE_A}SPI001_CSLineType;
         SPI001_ConfigType SPIConfig;
        SPIConfig.CESelected =  CE_A;
       SPIConfig.ClkPol = SPI001_CLK_POL1;
       SPIConfig.ClkPh = SPI001_CLK_PHASE1;
       SPIConfig.LeadTrailDelay = SPI001_ONE_SCLK_PERIOD;
       SPIConfig.NextFrameDelay = SPI001_ONE_SCLK_PERIOD;
       SPI001_Configure(&SPI001_Handle0,&SPIConfig);

        uint8_t pBuffer;
        uint8_t WriteAddr;
        pBuffer=0x27;//‭00100111‬
        WriteAddr=0x20;//‭00100000‬
        uint16_t SendData1 = WriteAddr;
        SendData1 = (SendData1<<8);//
        SendData1=SendData1|pBuffer;
        SPI001_WriteData(&SPI001_Handle0,&SendData1,SPI001_STANDARD);

        uint8_t        ReadAddr=0x0F;//00001111
        ReadAddr = ReadAddr|(uint8_t)READWRITE_CMD;//
        uint16_t ReadData = ReadAddr;//
        ReadData = ReadData<<8; //
        SPI001_WriteData(&SPI001_Handle0,&ReadData,SPI001_STANDARD);
        while((SPI001_GetFlagStatus(&SPI001_Handle0,SPI001_FIFO_STD_RECV_BUF_FLAG))!=SPI001_SET)
                {}
        SPI001_ClearFlag(&SPI001_Handle0,SPI001_FIFO_STD_RECV_BUF_FLAG);
        SPI001_ReadData(&SPI001_Handle0,&ReadData);//读出来的数据在低八位??疑惑脸



有几个疑问:
1、使用 dave3,第一段的一些spi设置在ui里没找到,就写在函数里了,不知道对不对
2、第二段和第三段分别是写、读操作,请问是这样操作么?运行起来就卡在while循环里了,代码力太弱具体原因也没看懂(哭)
3、关于spi的ui中的一些设置也不是很懂,请问有哪几个设置是必须要做的?哪些设置是必须参考传感器参数来设置的?哦对了,两个传感器分别是LIS331DLH和L3GD20TR,分别是加速度和陀螺仪。
希望大佬指点迷津!!!
回复

使用道具 举报

1

主题

6

帖子

35

积分

新手上路

Rank: 1

积分
35
 楼主| 发表于 6 天前 来自手机 | 显示全部楼层
哇,盼大佬指点这个!
回复 支持 反对

使用道具 举报

1

主题

6

帖子

35

积分

新手上路

Rank: 1

积分
35
 楼主| 发表于 6 天前 来自手机 | 显示全部楼层
哪位大佬看到了抽几分钟瞟一眼,解决一下困扰我多时的问题⊙∀⊙!
回复 支持 反对

使用道具 举报

1

主题

6

帖子

35

积分

新手上路

Rank: 1

积分
35
 楼主| 发表于 5 天前 | 显示全部楼层
或者说这个问题实在是太简单了大佬们都在笑话我咯,但是小白确实不懂乌拉。。。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

35

积分

新手上路

Rank: 1

积分
35
 楼主| 发表于 3 天前 | 显示全部楼层
拿示波器测了一波,感觉是片选cs引脚的问题,选一个的话两个引脚都出现低电平波形,而且波形只持续了一个相当短的时间就结束了。应该是我片选函数没有用对的原因么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|英飞凌技术社区

GMT+8, 2018-4-22 11:03 , Processed in 0.106215 second(s), 10 queries , APC On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表