实习记录(三):学习测试雷达同步板 & 完成外部硬件触发装置

本文记录了实习生学习测试雷达同步板的精度,使用STM32通过串口接收并发送高电平信号,以及在Ubuntu上使用boost库进行串口通信的过程。遇到的问题包括硬件定义不清、示波器精度不足、串口权限设置等,强调了需求明确、方案交流和硬件检查的重要性。
摘要由CSDN通过智能技术生成

学习测试雷达同步板 & 完成外部硬件触发装置

2020.07.27~2020.07.31、2020.08.03

1.任务

1)学习现有雷达同步板,测试现有雷达同步板精度
2)STM32实现用串口接收四位数,接收到瞬间一发出高电平,并且根据数字大小设置高电平持续时间
3)使用boost::asio库在ubuntu系统上写一个周期性向串口发送信息的类

2.环境 & 工具

STM32F103RCT6
串口USB转接线
上面两个东西要看原理图,硬件连接和代码管脚选择需要它们

1) 同步板
STM32F103RCT6 和 扩展板
示波器RIGOL-DS2072A

2)windows
STM32CubeMX
Keil5
XCOM
FlyMCU

3)ubuntu16.04
ROS kinetic
cutecom

3.准备工作
3.1 同步板部分

读已有代码,了解大致功能
提供的说明与测试不符,所以先用万用表将每个管脚的定义分清楚

3.2 STM32部分

STM32CubeMX新建项目,进行配置:

  • 一个输出管脚
  • 一组串口USART
  • 时钟相关配置

生成代码,用keil5打开项目

3.3 ubuntu部分

创建工作空间,创建包
vscode配置
以上实习记录(一)中有记录

4.代码
4.1 同步板部分

4.2 STM32部分
//第一处代码
/* USER CODE BEGIN 2 */
 //测试提示用
  //HAL_UART_Transmit(&huart1, (uint8_t *)"初始化成功", 12, 0xFFFF);
/* USER CODE END 2 */

//第二处代码
/* USER CODE END WHILE */
    char rx_message[RXSIZE] = {
   0};
    uint16_t rx_int = 0;

    /* USER CODE END 2 */

    HAL_UART_Receive(&huart1, (uint8_t *)&rx_message, RXSIZE, 0xffff);
    //HAL_UART_Transmit(&huart1, (uint8_t *)&rx_message, RXSIZE, 0xffff);
    while (HAL_UART_GetState(&huart1) == HAL_UART_STATE_BUSY_TX);

    for (int i = 0; i < RXSIZE; i++) {
   
      rx_int = rx_int + ((int)rx_message[i] - 48) * pow(10, RXSIZE - i - 1);
    }
    
    //HAL_UART_Transmit(&huart1, (uint8_t *)&rx_int, RXSIZE, 0xffff);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
    HAL_Delay(rx_int);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);

    /* USER CODE BEGIN 3 */

4.3 ubuntu部分
//main.cpp
#include "writer_handler.h"
#include <boost/thread/thread.hpp>

int main(int argc, char* argv[])
{
   
  std::cout << "Program Start ..." << std::endl;
  xxxx::SerialPortWriter my_sp("/dev/ttyUSB0", 115200);
  while (1)
  {
   
    try
    {
   
      my_sp.serialWrite("0010");
    }
    catch (std::exception& err)
    {
   
      std::cout << err.what() << std::endl;
    }
    boost::this_thread::sleep
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值