修改AD滤波器速率,提高采集速度
This commit is contained in:
parent
9c24285100
commit
98459dd31a
|
@ -37,28 +37,29 @@ extern "C"
|
||||||
#include "tcpserverc.h"
|
#include "tcpserverc.h"
|
||||||
#include "leds.h"
|
#include "leds.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Exported types ------------------------------------------------------------*/
|
/* Exported types ------------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN ET */
|
/* USER CODE BEGIN ET */
|
||||||
extern uint8_t tcp_echo_flags_hart1;
|
extern uint8_t tcp_echo_flags_hart1;
|
||||||
extern uint8_t tcp_echo_flags_hart2;
|
extern uint8_t tcp_echo_flags_hart2;
|
||||||
extern uint8_t tcp_echo_flags_ble1;
|
extern uint8_t tcp_echo_flags_ble1;
|
||||||
extern uint8_t tcp_echo_flags_ble2;
|
extern uint8_t tcp_echo_flags_ble2;
|
||||||
|
extern uint8_t tcp_echo_flags_control;
|
||||||
#define ARRAY_LEN(arr) (sizeof(arr)) / (sizeof(arr[0]))
|
#define ARRAY_LEN(arr) (sizeof(arr)) / (sizeof(arr[0]))
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
uint16_t rx_num;
|
uint16_t rx_num;
|
||||||
uint8_t rx_data[512];
|
uint8_t rx_data[512];
|
||||||
uint8_t rx_data_temp[512];
|
uint8_t rx_data_temp[512];
|
||||||
uint8_t tx_data[512];
|
uint8_t tx_data[512];
|
||||||
} uart_t;
|
} uart_t;
|
||||||
|
|
||||||
extern uart_t lcd_uart4;
|
extern uart_t lcd_uart4;
|
||||||
extern uart_t ble2_uart3;
|
extern uart_t ble2_uart3;
|
||||||
extern uart_t ble1_uart6;
|
extern uart_t ble1_uart6;
|
||||||
extern uart_t hart1_uart5;
|
extern uart_t hart1_uart5;
|
||||||
extern uart_t hart2_uart2;
|
extern uart_t hart2_uart2;
|
||||||
#define DEST_IP_ADDR0 192
|
#define DEST_IP_ADDR0 192
|
||||||
#define DEST_IP_ADDR1 168
|
#define DEST_IP_ADDR1 168
|
||||||
#define DEST_IP_ADDR2 1
|
#define DEST_IP_ADDR2 1
|
||||||
|
|
|
@ -179,7 +179,7 @@ void start_led_toggle_task(void const *argument)
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
HAL_GPIO_TogglePin(LED2_G_GPIO_Port, LED2_G_Pin);
|
// HAL_GPIO_TogglePin(LED2_G_GPIO_Port, LED2_G_Pin);
|
||||||
vTaskDelay(500);
|
vTaskDelay(500);
|
||||||
}
|
}
|
||||||
/* USER CODE END start_led_toggle_task */
|
/* USER CODE END start_led_toggle_task */
|
||||||
|
@ -220,7 +220,12 @@ void start_adc_task(void const *argument)
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
ad7124_get_analog(STOP_NC_ADC);
|
uint8_t ch = 0;
|
||||||
|
for (ch = STOP_NC_ADC; ch < AD7124_CHANNEL_EN_MAX; ch++)
|
||||||
|
{
|
||||||
|
ad7124_get_analog(ch);
|
||||||
|
}
|
||||||
|
HAL_GPIO_TogglePin(LED2_G_GPIO_Port, LED2_G_Pin);
|
||||||
if (huart5.RxState == HAL_UART_STATE_READY)
|
if (huart5.RxState == HAL_UART_STATE_READY)
|
||||||
{
|
{
|
||||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
|
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
|
||||||
|
@ -229,7 +234,6 @@ void start_adc_task(void const *argument)
|
||||||
{
|
{
|
||||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));
|
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));
|
||||||
}
|
}
|
||||||
vTaskDelay(1000);
|
|
||||||
}
|
}
|
||||||
/* USER CODE END start_adc_task */
|
/* USER CODE END start_adc_task */
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ uint8_t tcp_echo_flags_hart1 = 0;
|
||||||
uint8_t tcp_echo_flags_hart2 = 0;
|
uint8_t tcp_echo_flags_hart2 = 0;
|
||||||
uint8_t tcp_echo_flags_ble1 = 0;
|
uint8_t tcp_echo_flags_ble1 = 0;
|
||||||
uint8_t tcp_echo_flags_ble2 = 0;
|
uint8_t tcp_echo_flags_ble2 = 0;
|
||||||
|
uint8_t tcp_echo_flags_control = 0;
|
||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -213,7 +213,7 @@
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>12</count>
|
<count>12</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>ad7124_analog</ItemText>
|
<ItemText>ad7124_analog,0x10</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>13</count>
|
<count>13</count>
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#define TCP_PORT_HART2 5002
|
#define TCP_PORT_HART2 5002
|
||||||
#define TCP_PORT_BLE1 5003
|
#define TCP_PORT_BLE1 5003
|
||||||
#define TCP_PORT_BLE2 5004
|
#define TCP_PORT_BLE2 5004
|
||||||
|
#define TCP_PORT_CONTROL 5005
|
||||||
|
|
||||||
extern void tcp_echo_init(void);
|
extern void tcp_echo_init(void);
|
||||||
extern void user_send_data_hart1(uint8_t *data, uint16_t len);
|
extern void user_send_data_hart1(uint8_t *data, uint16_t len);
|
||||||
|
|
|
@ -15,10 +15,12 @@ struct tcp_pcb *server_pcb_hart1 = NULL;
|
||||||
struct tcp_pcb *server_pcb_hart2 = NULL;
|
struct tcp_pcb *server_pcb_hart2 = NULL;
|
||||||
struct tcp_pcb *server_pcb_ble1 = NULL;
|
struct tcp_pcb *server_pcb_ble1 = NULL;
|
||||||
struct tcp_pcb *server_pcb_ble2 = NULL;
|
struct tcp_pcb *server_pcb_ble2 = NULL;
|
||||||
|
struct tcp_pcb *server_pcb_control = NULL;
|
||||||
extern uint8_t tcp_echo_flags_hart1;
|
extern uint8_t tcp_echo_flags_hart1;
|
||||||
extern uint8_t tcp_echo_flags_hart2;
|
extern uint8_t tcp_echo_flags_hart2;
|
||||||
extern uint8_t tcp_echo_flags_ble1;
|
extern uint8_t tcp_echo_flags_ble1;
|
||||||
extern uint8_t tcp_echo_flags_ble2;
|
extern uint8_t tcp_echo_flags_ble2;
|
||||||
|
extern uint8_t tcp_echo_flags_control;
|
||||||
|
|
||||||
/*接收回调函数*/
|
/*接收回调函数*/
|
||||||
static err_t tcpecho_recv_hart1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
|
static err_t tcpecho_recv_hart1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
|
||||||
|
@ -113,6 +115,29 @@ static err_t tcpecho_recv_ble2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
|
||||||
}
|
}
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static err_t tcpecho_recv_control(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
|
||||||
|
{
|
||||||
|
uint8_t tcp_rx_data[128] = {0}; // 接受数据缓存区
|
||||||
|
if (p != NULL)
|
||||||
|
{
|
||||||
|
/* 更新窗口*/
|
||||||
|
tcp_echo_flags_control = 1;
|
||||||
|
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
||||||
|
server_pcb_control = tpcb; // 直接赋值
|
||||||
|
memcpy(tcp_rx_data, (int *)p->payload, p->tot_len);
|
||||||
|
/*1. 对接收的数据做异或校验、帧头帧尾判断,校验失败返回信息,校验通过继续下一步、校验数据从帧头后面到校验位结束*/
|
||||||
|
/*2. 判断所要执行的操作 读或写指令*/
|
||||||
|
/*3. 对要发送的数据进行校验,组包,返回数据*/
|
||||||
|
|
||||||
|
pbuf_free(p);
|
||||||
|
}
|
||||||
|
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
||||||
|
{
|
||||||
|
return tcp_close(tpcb);
|
||||||
|
}
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
static err_t tcpecho_accept_hart1(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的
|
static err_t tcpecho_accept_hart1(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的
|
||||||
// 形参的数量和类型必须一致
|
// 形参的数量和类型必须一致
|
||||||
{
|
{
|
||||||
|
@ -140,14 +165,21 @@ static err_t tcpecho_accept_ble2(void *arg, struct tcp_pcb *newpcb, err_t err) /
|
||||||
|
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
static err_t tcpecho_accept_control(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的
|
||||||
|
{
|
||||||
|
tcp_recv(newpcb, tcpecho_recv_control); // 当收到数据时,回调用户自己写的tcpecho_recv
|
||||||
|
|
||||||
|
return ERR_OK;
|
||||||
|
}
|
||||||
void tcp_echo_init(void)
|
void tcp_echo_init(void)
|
||||||
{
|
{
|
||||||
struct tcp_pcb *server_hart1 = NULL;
|
struct tcp_pcb *server_hart1 = NULL;
|
||||||
struct tcp_pcb *server_hart2 = NULL;
|
struct tcp_pcb *server_hart2 = NULL;
|
||||||
struct tcp_pcb *server_ble1 = NULL;
|
struct tcp_pcb *server_ble1 = NULL;
|
||||||
struct tcp_pcb *server_ble2 = NULL;
|
struct tcp_pcb *server_ble2 = NULL;
|
||||||
|
struct tcp_pcb *server_control = NULL;
|
||||||
|
|
||||||
/* 创建一个TCP控制块 */
|
/* 创建一路HART */
|
||||||
server_hart1 = tcp_new();
|
server_hart1 = tcp_new();
|
||||||
|
|
||||||
/* 绑定TCP控制块 */
|
/* 绑定TCP控制块 */
|
||||||
|
@ -159,7 +191,7 @@ void tcp_echo_init(void)
|
||||||
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
||||||
tcp_accept(server_hart1, tcpecho_accept_hart1); // 侦听到连接后,回调用户编写的tcpecho_accept
|
tcp_accept(server_hart1, tcpecho_accept_hart1); // 侦听到连接后,回调用户编写的tcpecho_accept
|
||||||
|
|
||||||
/* 创建一个TCP控制块 */
|
/* 创建二路HART */
|
||||||
server_hart2 = tcp_new();
|
server_hart2 = tcp_new();
|
||||||
|
|
||||||
/* 绑定TCP控制块 */
|
/* 绑定TCP控制块 */
|
||||||
|
@ -171,7 +203,7 @@ void tcp_echo_init(void)
|
||||||
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
||||||
tcp_accept(server_hart2, tcpecho_accept_hart2); // 侦听到连接后,回调用户编写的tcpecho_accept
|
tcp_accept(server_hart2, tcpecho_accept_hart2); // 侦听到连接后,回调用户编写的tcpecho_accept
|
||||||
|
|
||||||
/* 创建一个TCP控制块 */
|
/* 创建一路蓝牙 */
|
||||||
server_ble1 = tcp_new();
|
server_ble1 = tcp_new();
|
||||||
|
|
||||||
/* 绑定TCP控制块 */
|
/* 绑定TCP控制块 */
|
||||||
|
@ -183,7 +215,7 @@ void tcp_echo_init(void)
|
||||||
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
||||||
tcp_accept(server_ble1, tcpecho_accept_ble1); // 侦听到连接后,回调用户编写的tcpecho_accept
|
tcp_accept(server_ble1, tcpecho_accept_ble1); // 侦听到连接后,回调用户编写的tcpecho_accept
|
||||||
|
|
||||||
/* 创建一个TCP控制块 */
|
/* 创建二路蓝牙 */
|
||||||
server_ble2 = tcp_new();
|
server_ble2 = tcp_new();
|
||||||
|
|
||||||
/* 绑定TCP控制块 */
|
/* 绑定TCP控制块 */
|
||||||
|
@ -194,6 +226,18 @@ void tcp_echo_init(void)
|
||||||
|
|
||||||
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
||||||
tcp_accept(server_ble2, tcpecho_accept_ble2); // 侦听到连接后,回调用户编写的tcpecho_accept
|
tcp_accept(server_ble2, tcpecho_accept_ble2); // 侦听到连接后,回调用户编写的tcpecho_accept
|
||||||
|
|
||||||
|
/* 创建控制块 */
|
||||||
|
server_control = tcp_new();
|
||||||
|
|
||||||
|
/* 绑定TCP控制块 */
|
||||||
|
tcp_bind(server_control, IP_ADDR_ANY, TCP_PORT_CONTROL);
|
||||||
|
|
||||||
|
/* 进入监听状态 */
|
||||||
|
server_control = tcp_listen(server_control);
|
||||||
|
|
||||||
|
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
|
||||||
|
tcp_accept(server_control, tcpecho_accept_control); // 侦听到连接后,回调用户编写的tcpecho_accept
|
||||||
}
|
}
|
||||||
|
|
||||||
void user_send_data_hart1(uint8_t *data, uint16_t len)
|
void user_send_data_hart1(uint8_t *data, uint16_t len)
|
||||||
|
|
|
@ -39,7 +39,7 @@ static ad7124_st_reg_t ad7124_regs[AD7124_REG_NO] = {
|
||||||
{AD7124_CONFIG_5, 0x0860, AD7124_SIZE_2, AD7124_RW}, /* AD7124_Config_5 */
|
{AD7124_CONFIG_5, 0x0860, AD7124_SIZE_2, AD7124_RW}, /* AD7124_Config_5 */
|
||||||
{AD7124_CONFIG_6, 0x0860, AD7124_SIZE_2, AD7124_RW}, /* AD7124_Config_6 */
|
{AD7124_CONFIG_6, 0x0860, AD7124_SIZE_2, AD7124_RW}, /* AD7124_Config_6 */
|
||||||
{AD7124_CONFIG_7, 0x0860, AD7124_SIZE_2, AD7124_RW}, /* AD7124_Config_7 */
|
{AD7124_CONFIG_7, 0x0860, AD7124_SIZE_2, AD7124_RW}, /* AD7124_Config_7 */
|
||||||
{AD7124_FILTER_0, 0x060180, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_0 */
|
{AD7124_FILTER_0, 0x060000, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_0 */
|
||||||
{AD7124_FILTER_1, 0x060180, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_1 */
|
{AD7124_FILTER_1, 0x060180, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_1 */
|
||||||
{AD7124_FILTER_2, 0x060180, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_2 */
|
{AD7124_FILTER_2, 0x060180, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_2 */
|
||||||
{AD7124_FILTER_3, 0x060180, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_3 */
|
{AD7124_FILTER_3, 0x060180, AD7124_SIZE_3, AD7124_RW}, /* AD7124_Filter_3 */
|
||||||
|
|
Loading…
Reference in New Issue