问题
昨天晚上测试了一下超声波模块,然后发现了下面的问题,串口能够打印数据,但是数据一直是一个值,而且明显不正确。
原因
由于我是移植的正点原子按键输入捕获的实验,而且那个实验中是采集PA0(TIM5_CH1)的脉冲,按键输入捕获里面有两个函数
TIM_GetCapture1(TIM5);
TIM_OC1PolarityConfig(TIM5 , TIM_ICPolarity_Rising);
我用超声波模块的时候,用杜邦线把ECho与PA1(TIM5_CH2)连接在一起,但是上面两个函数没有该变。
实际应该是把那两个函数的1变为2!!
要改为
TIM_GetCapture2(TIM5);
TIM_OC2PolarityConfig(TIM5 , TIM_ICPolarity_Rising);
就因为这点问题浪费了4个小时来排查原因,调试半天也调试不出来,能够正常运行,但是打印出来的数据是错误的。所以特此记录一下。
结果
可以看到打印出来的数据正常。
如果有想要stm32控制HC-SR04超声波的源代码,可以在下方评论区留下邮箱。