关于使用SPI DMA定时自动触发传输多个字节的程序思路

最进项目需求用到了一款SPI通讯方式的传感器,每次在定时器触发比较中断后开始读取3个SPI数据,定时器触发的周期40us,如果在中断中开始读取传感器数据大概需要十几个us,再加上处理其它的事情差不多整个中断要停留二十几个us占用了大量时间,所以想有个办法可以让定时器自动触发3个SPI数据的读取,数据读取完毕后再进入中断开始处理数据。

要实现自动触发首先想到的是要开启SPI的发送和接收DMA,当接收DMA使能后,需要再使能发送DMA才能触发SPI通讯,现在的关键问题就是如何使定时器能够自动触发SPI发送DMA的使能,这时就可以使用定时器的DMA写SPI发送DMA控制寄存器,无论是定时器更新DMA还是比匹配DMA都可以,如将定时器更新DMA的目标外设地址设置为SPI发送DMA的控制寄存器,当定时器更新DMA触发时会写SPI发送DMA控制器,使其使能开启。经实际程序验证此方案可行。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值