查看: 1603|回复: 2

[交流讨论] 关于LPC55S69的SDK中SPI库使用的一些问题和SPI驱动的问题

[复制链接]

该用户从未签到

2

主题

3

帖子

0

注册会员

Rank: 2

积分
136
最后登录
2023-12-29
发表于 2019-11-26 15:40:00 | 显示全部楼层 |阅读模式
一、SPI驱动使用中的一些问题
     首先,我使用flexcom4和HSPI都成功驱动了SPILCD(半双工),在配置xfer结构体时,只发不收,这都没有问题。
3.PNG
     后来在使用SPI驱动另一款SPI器件时问题来了,还是半双工,不过这个是只收不发,问题是不配置发送数组的话收到的数据全是0,就是想要收到16字节的数据必须得同时发16个字节(也就是全双工),但是器件是半双工器件,我需要从里面读取3万字节,如果使用全双工的话就太浪费RAM了。SPI驱动的半双工接收数据有点问题,望解惑。

二、SPI驱动库的问题
   先说SPI驱动库中的一个函数SPI_MasterTransferBlocking(SPI_Type *base, spi_transfer_t *xfer),这个函数在开头有一个断言,判断rxdata和txdata是否为空,见下图
1.PNG
这本没有问题,那咱们来看下一个函数SPI_MasterHalfDuplexTransferBlocking(SPI_Type *base, spi_half_duplex_transfer_t *xfer),这是一个SPI的半双工收发的函数,见下图
2.PNG
这个函数会先给rxdata或者txdata赋值一个空指针(NULL),然后再使用上一个函数SPI_MasterTransferBlocking,而这个函数会断言收发数组是否为空,这不是自相矛盾吗?望解惑
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 15:34
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    4

    主题

    115

    帖子

    1

    高级会员

    Rank: 4

    积分
    724
    最后登录
    2024-4-25
    发表于 2019-11-26 18:15:40 | 显示全部楼层
    本帖最后由 _sa 于 2019-11-26 18:45 编辑

    LPC的 SPI_MasterTransferBlocking  函数很奇怪
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-25 08:42
  • 签到天数: 391 天

    [LV.9]以坛为家II

    45

    主题

    1337

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3156
    最后登录
    2024-2-19
    发表于 2019-12-30 13:12:16 | 显示全部楼层
    这个SPI很奇怪,我最好直接模拟了,没有用硬件SPI
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-5 02:42 , Processed in 0.117963 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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