杰发科技AC7840——SPI通信简介(1)_跑通Demo

0. 简介

一些配置项:

CPHA:相序

CPLO:极性

看着demo需要按键,于是去掉按键,去掉打印,直接输出波形看逻辑分析仪的信号。

其实现在做这些demo测试应该都有逻辑分析仪,直接看波形更直观一点。

发现没有波形,而且时钟跟奇怪。看着只有几个信号

原来是采样速率设置太小了,只有500K,于是直接拉到最高50Mhz。

时钟OK,但是数据还是不对

仔细核对代码和配置项之后OK

1. 两个板子互相通信

其中经历了两三个小时的各种问题,包括但不限于线焊错了(PB3焊到旁边的PC14),动来动去PB2松了,MOSI和MISO接反了(我们的代码里面MOSI和MISO不需要互相换,因为使能了从机模式,做从机就是输入主机就是输出Master out slave in)。。。

主机代码修改如下

都是把其他代码屏蔽直接每隔100ms发送数据

ret = SPI_DRV_MasterTransferBlocking(SPI_INSTANCE, g_spiTxBuff1, g_spiRxBuff1, DATA_SIZE, SPI_TIMEOUT); /*! SPI通信 */
OSIF_TimeDelay(100);

从机代码修改如下

        ret = SPI_DRV_SlaveTransferBlocking(SPI_INSTANCE, g_spiTxBuff1, g_spiRxBuff1, DATA_SIZE, SPI_TIMEOUT); /*! SPI通信 */
        OSIF_TimeDelay(100);

主机从机的数组修改了下方便观察

至此SPI0已经跑起来了

2. 修改波特率

如下,测试,时钟源120M,波特率16M没问题,但是实际的时钟频率大概是10M。

波特率设置到到20以上,接收数据就乱了

3. 注意事项

超过2M需要设置为DMA模式:不用中断的原因是,需要频繁进入中断,CPU负载高的时候,SPI会出问题

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-30 11:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-30 11:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-30 11:52:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-30 11:52:02       20 阅读

热门阅读

  1. 【wu-framework-parent】 1.2.5-JDK7 发布

    2024-04-30 11:52:02       10 阅读
  2. Django orm高级用法以及查询优化

    2024-04-30 11:52:02       13 阅读
  3. node服务器——处理原始的请求流

    2024-04-30 11:52:02       13 阅读
  4. UNIXRTC

    2024-04-30 11:52:02       11 阅读
  5. 基于SpringBoot的企业客户管理系统源码数据库

    2024-04-30 11:52:02       12 阅读
  6. 4- 29

    4- 29

    2024-04-30 11:52:02      12 阅读
  7. Python 连接 Oracle 数据库加入超时处理机制

    2024-04-30 11:52:02       8 阅读
  8. 字符串分割成List的几种方式

    2024-04-30 11:52:02       13 阅读
  9. Managing Digital Design and Web Development MANG6531

    2024-04-30 11:52:02       11 阅读
  10. 前端调用WebSocket协议接口获取数据

    2024-04-30 11:52:02       14 阅读
  11. 使用 Ant Design Vue踩过的那些坑

    2024-04-30 11:52:02       16 阅读
  12. 20240427-线程基础-结束线程

    2024-04-30 11:52:02       12 阅读