STM32 HAL库定时器触发DMA并口数据传输

代码目的:

STM32与FPGA通讯,通过8位并口线进行通讯,16byte的数据在10us之内通过8位并口数据线传给FPGA,FPGA读取该数据。

HAL库设置说明:

时钟采用80MHz,由于16byte的数据要在10us之内传完,那么10/(16*2)=0.3125us/次,也就是传输频率得≥3.2MHz。
在这里插入图片描述

定时器设置:为了方便起见,先选用了4MHz的传输频率。80MHz/((1+1) * (9 + 1)) = 4MHz,PWM的占空比为5/10=50%
在这里插入图片描述

  • 关于PWM
    PWM中Pulse与占空比有关,当定时器计数递增模式下,计数值从0开始,当CNT的值小于CCRx(也就是Pulse),则输出CH Polarity的极性,当大于CCRx则输出相反极性,当CNT的值=ARR(counter period),则定时器溢出重新开始计数。

  • 启动PWM有3种方式
    在这里插入图片描述
    顾名思义可以看出来,第一种启动后就开始输出;第二种是带中断方式,能产生中断;第三种就是DMA的方式,这种应用在电机精准步进控制上比较多,我打算通过这章方式应用到数据传输中,因为传输速度比较快,如果人为进行管脚输出我试过,16byte的数据即使在80MHz的时钟下也得50us左右,因为准备用DMA的方式。以上三种方式各有各的应用场景。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值