查看: 4551|回复: 6

[MQX] k64+MQX高手有没有?SPI同时读写的问题

[复制链接]
  • TA的每日心情

    2019-9-17 13:22
  • 签到天数: 238 天

    连续签到: 1 天

    [LV.7]常住居民III

    30

    主题

    905

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    2251
    最后登录
    2024-10-8
    发表于 2016-7-15 16:17:31 | 显示全部楼层 |阅读模式
    uint16_t SPIRead2Bytes(uint16_t address)
    {
            _mqx_int result;
            int readout;
             unsigned char szTxData[2];
            uint16_t TxData=0x0000;
             unsigned char spireadbuf[2];
             lwgpio_set_pin_output(SPI_SS1,LWGPIO_VALUE_LOW);
            TxData=((address&0x003f)<<9);
            szTxData[0] = (TxData>>8);
            szTxData[1] = (TxData);
            fwrite (szTxData, 1, 2, spi_fd1);
            fflush(spi_fd1);
            result=fread (spireadbuf, 1, 2, spi_fd1);
            readout = (spireadbuf[0]<<8)+spireadbuf[1];
           lwgpio_set_pin_output(SPI_SS1,LWGPIO_VALUE_HIGH);       
            return(readout);
    这是我根据MQX的fread和fwrite函数编写的SPI读函数,
    读函数2.jpg
    下面是读取0x0021地址  读出的数据是11,发现使用MQX的fread和fwrite函数始终不能同时读写。
    比如我遇到了下面的情况
    SPI读函数.png
    上图在一个CS周期内,MOSI应该是输入一个16字节的格式组包,同时MISO输出给MCU一个16字节DATA,
    需要同时读写SPI,这样怎么解决呢?开发环境K64+MQX。
    file:///C:\Users\POSEIDON\AppData\Roaming\Tencent\Users\675126203\QQ\WinTemp\RichOle\1U$U8GU{`HQ6OO~BMF)T9ET.png

    最佳答案

    very333 发表于 2016-7-18 09:29 图A                                      &nb ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-7-16 21:52:33 | 显示全部楼层
    解决了吗
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24885
    最后登录
    2025-7-20
    发表于 2016-7-18 08:40:25 | 显示全部楼层
    从你的表述可以看出,MOSI发送数据的同时MISO接收的数据却不是你想要的,对吧?
    我想知道你有做过更多实验,得出MISO接收的数据是否有呈现某种规律呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-9-17 13:22
  • 签到天数: 238 天

    连续签到: 1 天

    [LV.7]常住居民III

    30

    主题

    905

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    2251
    最后登录
    2024-10-8
     楼主| 发表于 2016-7-18 09:29:44 | 显示全部楼层
    小恩GG 发表于 2016-7-18 08:40
    从你的表述可以看出,MOSI发送数据的同时MISO接收的数据却不是你想要的,对吧?
    我想知道你有做过更多实验 ...

    图A.png 图B.png
                                        图A                                                         图B
    对于读0x21寄存器的数值来说,SCLK与MOSI的波形应该是图A模式(16个SCLK中都是拼包组成的格式),
    而不是图B模式(16个SCLK用于写,16个SCLK用于读)。而按照我上面的代码,是图B模式,
    我想知道在MQX情况下,怎样实现同时读写,就是模式A?望指导下
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35

    主题

    356

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3261
    最后登录
    2023-6-23
    发表于 2016-7-18 16:47:08 | 显示全部楼层
    没玩过MQX,不过这是个好问题,帮你顶一下!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24885
    最后登录
    2025-7-20
    发表于 2016-7-21 14:42:42 | 显示全部楼层
    very333 发表于 2016-7-18 09:29
    图A                                                          ...

    跟MQX支持工程师商量后,建议楼主创建一个CASE,会有专门的MQX支持的同事去解决。提交路径:
    http://www.nxp.com/zh-Hans/suppo ... rue&lang_cd=zh-Hans
    2016-07-21_14-41-55.jpg


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-12-31 08:09
  • 签到天数: 438 天

    连续签到: 1 天

    [LV.9]以坛为家II

    9

    主题

    510

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    1673
    最后登录
    2020-12-31
    发表于 2018-11-26 19:26:33 | 显示全部楼层
    MQX支持工程师
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 06:40 , Processed in 0.101471 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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