【雷达灯控】迟来的RD03-E+STM32点灯

[复制链接]
查看693 | 回复11 | 2024-4-13 20:00:29 | 显示全部楼层 |阅读模式
本帖最后由 Carry_Yang 于 2024-4-13 20:13 编辑

想跟社区的各位道个歉,收到这个雷达模块后很长一段时间都没有关注社区,甚至忘记了还有这个模块,深感抱歉!

最近一段时间过的浑浑噩噩
模块出厂似乎是手势识别模块,不只是我姿势不对还是什么原因,始终无法在第二位接收到01数据,所以就把它当作测距用了
效果很差 花了半个多小时撸出来的代码,后续研究下怎么把模块刷成精准测距的

贴下主代码
  1. #include "main.h"

  2. UART_HandleTypeDef huart1;
  3. void SystemClock_Config(void);
  4. static void MX_GPIO_Init(void);
  5. static void MX_USART1_UART_Init(void);
  6. #define BUFFER_SIZE 5

  7. uint8_t rx_buffer[BUFFER_SIZE];

  8. int main(void)
  9. {
  10.   HAL_Init();
  11.   SystemClock_Config();
  12.   MX_GPIO_Init();
  13.   MX_USART1_UART_Init();

  14.   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_SET);

  15.   uint8_t start_flag = 0;
  16.   uint8_t rx_buffer[5];
  17.   int rx_index;

  18.   while (1)
  19.   {
  20.             if (rx_buffer[0] != 0xAA) {
  21.               memset(rx_buffer, 0, BUFFER_SIZE);
  22.               rx_index = 0;
  23.             }

  24.             // Receive data
  25.             if (HAL_UART_Receive(&huart1, &rx_buffer[rx_index], 1, 100) == HAL_OK) {
  26.               rx_index++;
  27.               // Check for start and stop flag
  28.               if (rx_index == BUFFER_SIZE) {
  29.                 if (rx_buffer[0] == 0xAA && rx_buffer[4] == 0x55) {
  30.                   // Check condition for PC5
  31.                   if (rx_buffer[1] < 0x50) {
  32.                     HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_RESET); // Pull PC5 low
  33.                   }
  34.                   HAL_Delay(2000);
  35.                   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_SET); // Pull PC5 high
  36.                 }
  37.                 rx_index = 0; // Reset index
  38.               }
  39.             }
  40.   }
  41. }

  42. /**
  43.   * @brief System Clock Configuration
  44.   * @retval None
  45.   */
  46. void SystemClock_Config(void)
  47. {
  48.   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  49.   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  50.   /** Configure the main internal regulator output voltage
  51.   */
  52.   __HAL_RCC_PWR_CLK_ENABLE();
  53.   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  54.   /** Initializes the RCC Oscillators according to the specified parameters
  55.   * in the RCC_OscInitTypeDef structure.
  56.   */
  57.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  58.   RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  59.   RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  60.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  61.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  62.   RCC_OscInitStruct.PLL.PLLM = 8;
  63.   RCC_OscInitStruct.PLL.PLLN = 168;
  64.   RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  65.   RCC_OscInitStruct.PLL.PLLQ = 4;
  66.   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  67.   {
  68.     Error_Handler();
  69.   }
  70.   /** Initializes the CPU, AHB and APB buses clocks
  71.   */
  72.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  73.                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  74.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  75.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  76.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  77.   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

  78.   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  79.   {
  80.     Error_Handler();
  81.   }
  82. }

  83. /**
  84.   * @brief USART1 Initialization Function
  85.   * @param None
  86.   * @retval None
  87.   */
  88. static void MX_USART1_UART_Init(void)
  89. {

  90.   huart1.Instance = USART1;
  91.   huart1.Init.BaudRate = 256000;
  92.   huart1.Init.WordLength = UART_WORDLENGTH_8B;
  93.   huart1.Init.StopBits = UART_STOPBITS_1;
  94.   huart1.Init.Parity = UART_PARITY_NONE;
  95.   huart1.Init.Mode = UART_MODE_TX_RX;
  96.   huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  97.   huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  98.   if (HAL_UART_Init(&huart1) != HAL_OK)
  99.   {
  100.     Error_Handler();
  101.   }

  102. }


  103. static void MX_GPIO_Init(void)
  104. {
  105.   GPIO_InitTypeDef GPIO_InitStruct = {0};

  106.   /* GPIO Ports Clock Enable */
  107.   __HAL_RCC_GPIOC_CLK_ENABLE();
  108.   __HAL_RCC_GPIOH_CLK_ENABLE();
  109.   __HAL_RCC_GPIOA_CLK_ENABLE();

  110.   /*Configure GPIO pin Output Level */
  111.   HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_RESET);

  112.   /*Configure GPIO pin : PC5 */
  113.   GPIO_InitStruct.Pin = GPIO_PIN_5;
  114.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  115.   GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  116.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  117.   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

  118. }

  119.   * @brief  This function is executed in case of error occurrence.
  120.   * @retval None
  121.   */
  122. void Error_Handler(void)
  123. {
  124.   __disable_irq();
  125.   while (1)
  126.   {
  127.   }
  128. }

  129. void assert_failed(uint8_t *file, uint32_t line)
  130. {
  131. }
  132. #endif /* USE_FULL_ASSERT */
复制代码
228136289 00_00_07- 00_00_00-00_00_30~3.gif
回复

使用道具 举报

Carry_Yang | 2024-4-13 20:03:20 | 显示全部楼层
为什么帖子里面看不到图片
228136289 00_00_07- 00_00_00-00_00_30~3.gif
回复 支持 反对

使用道具 举报

1084504793 | 2024-4-13 22:26:38 | 显示全部楼层
回复

使用道具 举报

干簧管 | 2024-4-14 09:47:51 | 显示全部楼层
回复

使用道具 举报

lsrly | 2024-4-14 10:54:01 | 显示全部楼层
好好学习,努力挣钱,专心
回复

使用道具 举报

lazy | 2024-4-14 15:15:21 | 显示全部楼层
回复

使用道具 举报

1055173307 | 2024-4-15 08:26:14 | 显示全部楼层
回复

使用道具 举报

18350766600@139 | 2024-4-15 08:31:50 | 显示全部楼层
点赞学习
回复

使用道具 举报

爱笑 | 2024-4-15 09:05:10 | 显示全部楼层
可以看到动图
用心做好保姆工作
回复 支持 反对

使用道具 举报

lazy | 2024-4-15 10:51:13 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则