stm32f103循迹
时间: 2023-09-01 11:12:39 浏览: 72
对于STM32F103的循迹问题,根据提供的引用内容,可以看出以下几个步骤和方法:
1. 修改串口1中断函数:
根据引用,在STM32F103中,需要修改串口1的中断函数。在该中断函数中,使用USART_GetITStatus函数判断是否有接收到数据,如果有则调用protocol_data_recv函数进行处理,并使用USART_ClearITPendingBit函数清除中断标志位。
2. 添加Usart_SendArray函数:
同样根据引用,可以看到添加了一个Usart_SendArray函数,该函数用于发送8位数据的数组。该函数使用Usart_SendByte函数将数组中的每一个元素发送出去,并使用USART_GetFlagStatus函数等待发送完成。
3. 使用M法计算速度:
根据引用,可以看到使用了M法来计算左右轮的速度。通过左右轮的计数值除以转一圈的计数值,并乘以时间系数,就可以得到左右轮的速度。单位为圈/秒。
4. 编写中断函数处理计数值:
根据引用,可以看到编写了TIM3_IRQHandler和TIM4_IRQHandler两个中断函数来处理计数值。在这两个中断函数中,通过TIM_GetITStatus函数判断是否为更新中断或捕获中断,并使用TIM_ClearFlag函数清除相应的中断标志位。同时,将TIM3的计数值赋值给left_count,将TIM4的计数值赋值给right_count,并再次清除相应的中断标志位。
综上所述,使用STM32F103进行循迹的方法包括修改串口1中断函数,添加Usart_SendArray函数,使用M法计算速度,并编写中断函数处理计数值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [stm32f103基于pid的蓝牙循迹小车](https://blog.csdn.net/qq_51643989/article/details/130282315)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文