RT-Thread Studio之超声波测距(SR04)调试

文章目录

  • 前言
    • 这篇文章主要是对rtthread studio 软件进行SR04软件包移植,调试总结。
  • 一、RT-Thread Settings配置
    • 1.添加软件包
    • 2.打硬件定时器与传感器组件
  • 二、CubeMX配置
  • 三、添加查看宏定义
    • 1.在board.h重新定义
    • 2.在 stm32f1xx_hal_conf.h添加宏定义
    • 3.在 board.c添加定时器代码
    • 4.在 packages修改定时器名字
  • 四、测试实验结果
  • 五、注意事项


前言

这篇文章主要是对rtthread studio 软件进行SR04软件包移植,调试总结。

一、RT-Thread Settings配置

1.添加软件包

将sr04软件包添加到系统。
RT-Thread Studio之超声波测距(SR04)调试_第1张图片
RT-Thread Studio之超声波测距(SR04)调试_第2张图片

2.打硬件定时器与传感器组件

打开组件–>设备驱动程序–>使用HWTIMER设备驱动程序;使用SENSOR驱动程序。最后保存设置。

RT-Thread Studio之超声波测距(SR04)调试_第3张图片

二、CubeMX配置

打开CubeMX配置,配置定时器4(有些定时器(例如TIM1)的配置需要仿写,这里为了方便直接利用有的,例如TIM4),在配置输出台(串口1)。
RT-Thread Studio之超声波测距(SR04)调试_第4张图片
RT-Thread Studio之超声波测距(SR04)调试_第5张图片

三、添加查看宏定义

1.在board.h重新定义

#define BSP_USING_TIM
#define BSP_USING_TIM4
RT-Thread Studio之超声波测距(SR04)调试_第6张图片

2.在 stm32f1xx_hal_conf.h添加宏定义

#define HAL_TIM_MODULE_ENABLED
RT-Thread Studio之超声波测距(SR04)调试_第7张图片

3.在 board.c添加定时器代码

1)复制cubemx生成的代码
将stm32f1xx_hal_msp.c里面的
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
代码复制。
RT-Thread Studio之超声波测距(SR04)调试_第8张图片
2)粘贴并修改至board.c
修改函数名就好。
RT-Thread Studio之超声波测距(SR04)调试_第9张图片

4.在 packages修改定时器名字

打开packages包里面的sor04_sample.c 的int rt_hw_sr04_port(void)函数修改timer(本例程用的timer4,将其修改成timer4)

RT-Thread Studio之超声波测距(SR04)调试_第10张图片

四、测试实验结果

屏蔽主函数里面的打印函数。打开打印台得到传感器测得的距离值。
RT-Thread Studio之超声波测距(SR04)调试_第11张图片

五、注意事项

1)硬件定时器配置,一般得不到距离值都是定时器配置有问题。
2)硬件定时器有些地方代码没有,需要进行仿写(例如TIM1_CONFIG)。
3)CubeMX配置后的代码一定要复制到项目里面来。
4)无法出现结果,硬件定时器配置可以参考PWM篇文章。

你可能感兴趣的:(rt-thread,studio系列教程,单片机,嵌入式硬件,stm32,c语言)