
各位大佬好。 刚接触单片机,现在需要实现以下逻辑: 1.发送12个周期为500ns的脉冲(高电平200ns,低电平300ns),每隔4us发送一次,共计三次(36个脉冲,每12个脉冲之间间隔4us) 2.在第一步每段12个脉冲发送的上升沿时,读取GPIO口数据,共计12个bit,三次共计36个bit。 时序图如下: 我现在处理方式如下: 开发环境:STM32F407RC,CubeMx,IAR 使用Tim1的ch1用来发送PWM(周期为500ns),同时使用Tim1来驱动DMA来读取Dout的数据,然后使用从定时器Tim3来计12次数,12次到达后进入中断,停止发送PWM和DMA,等候4us后继续,以此做三次。 问题: 周期为500ns的情况下,无法保证每次都是12次停止,9次,10次,14次等,会乱掉,周期调到us级没有问题。 如果关掉DMA,只发送PWM的话,是可以按照12次计数停止。 小弟第一次做单片机,怀疑是使用库HAL库函数对定时器有一定的影响?还是整个开发方向都是错误的。以上,希望各位大佬解惑~ |
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
STM32F407的flash读写问题
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
怎么在CubeIDE里面显示出导入的官方例程的全部文件?
询问STM32F407两种USB可以实现的功能
TOF传感器(VL53L5),无法得到data ready
stm32编码器模式计数问题
在CUBEMX生成的STM32F407VET6的I2S主机接收模式与I2S主机发送模式能正常运行,如何进行动态调整或者如何实现主机全双工?
开发逆变器进行STM32学习,路径如何规划?
通过寄存器配置主从time完美解决这个问题。
)这个思路不错,有时间的话可以分享一下具体思路就更好了
最初一直都是用CubeMx来配置主从定时器,主定时器Tim1用来发送PWM和读取DMA,从Tim3用来控制脉冲次数。手册上关于主从定时器是没有指明谁是主从,所以通过修改寄存器的方式,把Tim3改为主,Tim1改为从,同时要启用Tim3的PWM方式,这样就得到想要的结果了。(也是在公司领导的帮助下改成功的,小弟第一次接触单片机~)