大家自己看看
单片机源程序如下:
- #include "led.h"
- #include "sys.h"
- #include "LCD1602.h"
- #include "delay.h"
- #include "sys.h"
- #include "key.h"
- #include "usart.h"
- #include "exti.h"
- #include "timer.h"
- #include "UltrasonicWave.h"
- #include "stm32f10x.h"
- #include "turn.h"
- extern float UltrasonicWave_Distance;
- /*
- 1602 rs rw en B3 B4 B5
- DB0-DB7 B8-B15
- TRIG_PIN A8
- ECHO_PIN A7
- */
- int main(void)
- {
- // char DIS[2]={'c','m'};
- // char juli[9]={'d','i','s','t','a','n','c','e'};
- // //char DISTANCE[1]={'c','m'};
- // // SystemInit();
- turn_Init();
- delay_init(72); //延时初始化
- NVIC_Configuration();
- //uart_init(9600); //串口初始化
- LED_Init(); //LED端口初始化
- // KEY_Init(); //按键端口初始化
- Timerx_Init(5000,14399); //10Khz的计数频率,计数到5000为500ms
- UltrasonicWave_Configuration(); //对超声波模块初始化
- // LCD1602_InitPort();
- // lcd1602_init();
- //lcd1602_pos(0x80,0x81);
- //strdis((u8 *)juli);
- //lcd1602_pos(0xcB,0xcC);
- //strdis((u8 *)DIS);
- // turn_zhi();
- while(1)
- {
- //LED0=!LED0;
- // turn_zhi();
- // turn_zuo();
- //
- UltrasonicWave_StartMeasure(); //开始测距,发送一个>10us的脉冲,然后测量返回的高电平时间
- UltrasonicWave_Distance=TIM_GetCounter(TIM2)*5*34/200.0;
- //// turn_zhi();
- delay_ms(1000);
- if(UltrasonicWave_Distance>10)
- {
- turn_zhi();
- }
- if(UltrasonicWave_Distance<10)
- {
- turn_stop();
- }
-
-
- }
- }
复制代码
所有资料51hei提供下载:
STM32超声波壁障小车未完善.7z
(204.1 KB, 下载次数: 7)
|