donatello1996 发表于 2017-3-17 20:26:36

STM32F429Disco HCSR04 PWM输入捕获实验

    最近在做F429探索者与HCSR04通信的实验,涉及外设为PWM输入捕获,这个实验对于我来说是一个全新的挑战,因为我之前从来没有自己理解PWM输入捕获的功能(包括51和AVR也是),51没有硬件捕获,而AVR的硬件捕获是直接操作定时器的寄存器的
,想要看懂用熟也需要一点时间。而STM32F4的PWM输入捕获外设和函数已经非常成熟,配置好各项参数之后,基本属于傻瓜式操作了。
    对于HCSR04超声波测距模块,单片机需要将Trig触发引脚拉高10微秒,然后模块内部就能循环发出8个40KHz的脉冲,紧接着Echo回声引脚就会发出与检测距离成比例的高电平,单片机采集Echo引脚发出高电平的时间就需要用到PWM输入捕获,即使用高
精度定时器来准确求得Echo引脚电平拉高的时间,再通过公式换算得到障碍物遮挡距离。

    对于PWM输入捕获的配置,我是参照Cube进行的HAL库配置。

    对于LCD1602的驱动配置,则是跟之前使用Nucleo F412的配置一样,使用74HC595来接收串行数据并转化为并行数据,74HC595需要RCLK、SER、SRCK三个引脚,而LCD1602需要RS、EN两个引脚,合起来就是五个引脚。

    在移植性方面,我也跟以往一样做了一些人性化的设置,可以在宏定义里面进行引脚的配置。

    老规矩,上传一份工程文件+头文件。

蓝兰 发表于 2019-11-7 10:22:43

代码不全,下载用不了。
页: [1]
查看完整版本: STM32F429Disco HCSR04 PWM输入捕获实验