添加485获取特定命令的代码
This commit is contained in:
parent
70e3e162ae
commit
699a8218f7
@ -29,6 +29,7 @@ set(TARGET_C_SRC
|
||||
${CMAKE_SOURCE_DIR}/src/systick.c
|
||||
${CMAKE_SOURCE_DIR}/src/ultrasonic_driver.c
|
||||
${CMAKE_SOURCE_DIR}/src/mlx90614.c
|
||||
${CMAKE_SOURCE_DIR}/src/RS485.c
|
||||
)
|
||||
|
||||
add_executable(xlsw_3dp_ultrasonic_300K ${TARGET_C_SRC})
|
||||
|
11
inc/RS485.h
Normal file
11
inc/RS485.h
Normal 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
29
src/RS485.c
Normal 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));
|
||||
}
|
@ -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);
|
||||
|
||||
/* 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_bit_write(USART_GPIO_PORT, USART_EN_PIN, SET);
|
||||
|
||||
/* USART configure */
|
||||
usart_deinit(USART0_PHY);
|
||||
|
Loading…
x
Reference in New Issue
Block a user