本人搞的利用外部中斷進行超聲波測距,請大家參考
stm32單片機源程序如下:
- #include "SysTick.h"
- #include "led.h"
- #include "usart.h"
- #include "timer.h"
- #include "ultrasound.h"
- int main()
- {
- u8 i = 0;
- //float range;
- /*u16 data=1234;
- float fdata=12.34;
- char str[]="Hello World!";*/
- SysTick_Init(168);
- led_init();
- USART1_Init();
- TIM4_Init(5000-1,420-1);
- ultrasound1_init();
- while(1)
- {
- ultrasound1_Start();
- //range = get_range();
- //printf("%f cm\r\n",range);
- while(range > 0)
- {
- if(range > 20)
- {
- led1 = 1;
- led2 = 1;
- break;
- }
- led1 = 0;
- led2 = 0;
- //DAC_SetChannel1Data(DAC_Align_12b_R,(u16)(((float)4095)*0.57f*0.98f)); //12位右對齊數據格式設置DAC值
- //DAC_SetChannel2Data(DAC_Align_12b_R,(u16)(((float)4095)*0.57f));
- }
- //if(i%20==0)
- //{
- //led1=!led1;
- /*delay_ms(1000);
- printf("data=%d\r\n",data);
- delay_ms(1000);
- printf("fdata=%0.2f\r\n",fdata);
- delay_ms(1000);
- printf("data=%X\r\n",data);
- delay_ms(1000);
- printf("data=%o\r\n",data);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
Keil代碼下載:
ultrasonic.7z
(322.35 KB, 下載次數: 60)
2022-10-17 20:53 上傳
點擊文件名下載附件
|