久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2527|回復(fù): 1
收起左側(cè)

STM32三路超聲波避障程序

[復(fù)制鏈接]
ID:380211 發(fā)表于 2018-12-24 13:52 | 顯示全部樓層 |閱讀模式


單片機(jī)源程序如下:
  1. #include "main.h"
  2. #include "tim1.h"
  3. #include "tim3.h"
  4. #include "uart.h"
  5. #include "share.h"
  6. #include "delayus.h"
  7. #include "direction.h"
  8. #include "us_avoid.h"

  9. __IO uint16_t Uart_Upload_Time;//串口上傳數(shù)據(jù)周期ms
  10. void SystemClock_Config(void);      

  11. int main(void)
  12. {
  13.   HAL_Init();
  14.   SystemClock_Config();
  15.         MX_TIM1_Init();//電機(jī)驅(qū)動PWM
  16.         MX_TIM3_Init();//TIM3輸入捕獲配置
  17.         Init_DirectionGPIO();//電機(jī)驅(qū)動芯片IO口使能
  18.         MX_USART3_Init();//串口3使能
  19.         US_GPIOInit();//超聲波GPIO口配置
  20.        
  21. //        while(1)
  22. //        {
  23. //                TIM1->CCR1=L_PWM;
  24. //                TIM1->CCR2=R_PWM;
  25. //                ForWard1();
  26. //        }

  27.         while (1)
  28.   {       
  29.                 US_Obstacle_Avoid();//超聲波避障
  30.                
  31.                 if(!Uart_Upload_Time)//串口數(shù)據(jù)周期發(fā)送
  32.                 {
  33.                         Uart_Upload_Time=300;//串口數(shù)據(jù)發(fā)送周期ms
  34.                         printf("L=%dcm F=%dcm R=%dcm\r\n",US1_Distance,US2_Distance,US3_Distance);//串口打印數(shù)據(jù)
  35.                 }
  36.   }
  37. }

  38. /**
  39.   * @brief System Clock Configuration
  40.   * @retval None
  41.   */
  42. void SystemClock_Config(void)
  43. {
  44.   RCC_OscInitTypeDef RCC_OscInitStruct;
  45.   RCC_ClkInitTypeDef RCC_ClkInitStruct;
  46.   RCC_PeriphCLKInitTypeDef PeriphClkInit;

  47.     /**Initializes the CPU, AHB and APB busses clocks
  48.     */
  49.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  50.   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  51.   RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
  52.   RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  53.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  54.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  55.   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
  56.   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  57.   {
  58.     _Error_Handler(__FILE__, __LINE__);
  59.   }

  60.     /**Initializes the CPU, AHB and APB busses clocks
  61.     */
  62.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  63.                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  64.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  65.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  66.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  67.   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  68.   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  69.   {
  70.     _Error_Handler(__FILE__, __LINE__);
  71.   }

  72.   PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
  73.   PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV4;
  74.   if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  75.   {
  76.     _Error_Handler(__FILE__, __LINE__);
  77.   }

  78.     /**Configure the Systick interrupt time
  79.     */
  80.   HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

  81.     /**Configure the Systick
  82.     */
  83.   HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  84.   /* SysTick_IRQn interrupt configuration */
  85.   HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
  86. }



  87. /**
  88.   * @brief  This function is executed in case of error occurrence.
  89.   * @param  file: The file name as string.
  90.   * @param  line: The line in file as a number.
  91.   * @retval None
  92.   */
  93. // _Error_Handler(__FILE__, __LINE__);
  94. void _Error_Handler(char *file, int line)
  95. {
  96.   /* USER CODE BEGIN Error_Handler_Debug */
  97.   /* User can add his own implementation to report the HAL error return state */
  98.   while(1)
  99.   {
  100.   }
  101.   /* USER CODE END Error_Handler_Debug */
  102. }

  103. #ifdef  USE_FULL_ASSERT
  104. /**
  105.   * @brief  Reports the name of the source file and the source line number
  106.   *         where the assert_param error has occurred.
  107.   * @param  file: pointer to the source file name
  108.   * @param  line: assert_param error line source number
  109.   * @retval None
  110.   */
  111. void assert_failed(uint8_t* file, uint32_t line)
  112. {
  113.   /* USER CODE BEGIN 6 */
  114.   /* User can add his own implementation to report the file name and line number,
  115.     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  116.   /* USER CODE END 6 */
  117. }
  118. #endif /* USE_FULL_ASSERT */


  119. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
復(fù)制代碼

所有資料51hei提供下載:
Program.7z (2.9 MB, 下載次數(shù): 43)
回復(fù)

使用道具 舉報(bào)

ID:397735 發(fā)表于 2019-12-7 23:03 | 顯示全部樓層
感謝老哥
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 性福视频在线观看 | 欧美成人精品二区三区99精品 | 亚洲人成人网 | 嫩草视频入口 | 欧美在线一区二区三区 | 亚洲成人福利在线观看 | 波波电影院一区二区三区 | 免费一区 | 性一交一乱一伦视频免费观看 | 超碰在线人 | 91在线电影| www在线| 国产综合久久久久久鬼色 | 97caoporn国产免费人人 | h片在线播放 | 欧美 日韩 亚洲91麻豆精品 | 91久久久久久久久久久 | 亚洲精品一区在线 | 三级黄色片在线 | 午夜小视频免费观看 | av一区在线观看 | 欧美久久久久久久 | 精品国产91乱码一区二区三区 | 免费一区| 日韩免费网站 | 91精品国产91久久久久久不卞 | 日韩欧美在线一区 | av天天看| 国产精品7777777 | 综合久久亚洲 | 久草www | 欧美成人性生活 | 精品久久久久久中文字幕 | 亚洲综合久久网 | 一级毛片在线视频 | 97精品久久| 久久久久久免费毛片精品 | 精品在线一区二区三区 | 国产视频1区 | 视频在线日韩 | 成人小视频在线观看 |