添加485获取特定命令的代码

This commit is contained in:
yelvlab 2024-11-29 18:21:23 +08:00
parent 70e3e162ae
commit 699a8218f7
4 changed files with 43 additions and 1 deletions

View File

@ -29,6 +29,7 @@ set(TARGET_C_SRC
${CMAKE_SOURCE_DIR}/src/systick.c ${CMAKE_SOURCE_DIR}/src/systick.c
${CMAKE_SOURCE_DIR}/src/ultrasonic_driver.c ${CMAKE_SOURCE_DIR}/src/ultrasonic_driver.c
${CMAKE_SOURCE_DIR}/src/mlx90614.c ${CMAKE_SOURCE_DIR}/src/mlx90614.c
${CMAKE_SOURCE_DIR}/src/RS485.c
) )
add_executable(xlsw_3dp_ultrasonic_300K ${TARGET_C_SRC}) add_executable(xlsw_3dp_ultrasonic_300K ${TARGET_C_SRC})

11
inc/RS485.h Normal file
View File

@ -0,0 +1,11 @@
//
// Created by dell on 24-11-29.
//
#ifndef RS485_H
#define RS485_H
#include <stdbool.h>
#include <string.h>
#endif //RS485_H

29
src/RS485.c Normal file
View File

@ -0,0 +1,29 @@
//
// Created by dell on 24-11-29.
//
#include "RS485.h"
#include "gd32e23x.h"
#include "systick.h"
#include <stdio.h>
#include <stdlib.h>
#define MAX_CMD_SIZE 16
#define BUFSIZE 8
static char cmdbuffer[BUFSIZE][MAX_CMD_SIZE];
static char *strchr_pointer = NULL;
static int bufindr = 0;
static int bufindw = 0;
static int buflen = 0;
bool code_seen(char code)
{
strchr_pointer = strchr(cmdbuffer[bufindr], code);
return (strchr_pointer != NULL); //Return True if a character was found
}
float code_value(void)
{
return (strtod(&cmdbuffer[bufindr][strchr_pointer - cmdbuffer[bufindr] + 1], NULL));
}

View File

@ -46,8 +46,9 @@ void usart_config(void)
gpio_output_options_set(USART_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, USART_TX_PIN | USART_RX_PIN); gpio_output_options_set(USART_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, USART_TX_PIN | USART_RX_PIN);
/* configure RS485 EN Pin */ /* configure RS485 EN Pin */
gpio_mode_set(USART_GPIO_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, USART_EN_PIN); gpio_mode_set(USART_GPIO_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, USART_EN_PIN);
gpio_output_options_set(USART_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, USART_EN_PIN); gpio_output_options_set(USART_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, USART_EN_PIN);
gpio_bit_write(USART_GPIO_PORT, USART_EN_PIN, SET);
/* USART configure */ /* USART configure */
usart_deinit(USART0_PHY); usart_deinit(USART0_PHY);