![]() |
為什么仿真打不開 |
是程序的問題還是小車的問題 |
aweiweiwei1 發表于 2020-5-28 17:24 這樣串口只能執行一次,我串口是用來控制小車前進后退的,你這樣執行一次之后就只會測距了,沒用的 ![]() |
f556 發表于 2020-5-28 16:58 就是執行藍牙串口通信的時候會被定時器打斷,我是小白的 ![]() 我已經吧問題解決了,麻煩了 |
void main() { UART_INIT(); while(1) { csb_int(); if(distance<50) { back(); delay1s(); left(); } } }這個絕對沒錯 |
中斷沖突?還沒聽說過這種描述,中斷會根據優先級進行處理 |
f556 發表于 2020-5-27 14:52 void main() { UART_INIT(); while(1) { csb_int(); if(distance<50) { back(); delay1s(); left(); } } } 我改完之后可以測距了,但是現在藍牙的串口中斷和超聲波的定時器中斷沖突咋辦,調試的都是只能實現一個功能。。 |
在while(1)內要反復啟動測距,看你只初始化,distance只有一個值 |
f556 發表于 2020-5-26 22:30 驅動我調過了,可以轉,但就是我的小車對超聲波完全沒反應,我在主程序里就寫了個前進,然后如果距離小于10cm就后退然后停下,但就是完全實現不了。。 |
f556 發表于 2020-5-26 22:30 驅動我調過了,可以轉,但就是實現不了避障,我主程序里就寫了一個前進然后如果距離小于某個值時就停下來都實現不了,不知道是哪的問題 |
完全沒反應?是輪子都不會轉? |
主程序主要就驅動小車避障 void main() { //send_wave(); // UART_INIT(); csb_int(); forward(); while(1) { if(distance<10) { back(); delay1(20); stop(); } } } |