Files
Frame-rate-optimization/app_cail/demo_main.c
2026-04-09 10:14:20 +08:00

84 lines
2.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "app_calibration.h"
#include "mx_log.h"
/* 最简移植模板*/
// 接收上位机下发的数据处理函数
void process_rx(void)
{
uint8_t rx_chunk[64];
uint16_t recv_len = 0;
//如果是串口通信则在串口接收到数据的地方调用mozen_protocol_receive_byte 喂入字节流
//recv_len = usart_rx_recv(USART_3_TR, rx_chunk, sizeof(rx_chunk));
//如果是usb cdc 通信则在usb cdc 接收到数据的地方调用mozen_protocol_receive_byte 喂入字节流
//recv_len = usbcdc_rx_recv(rx_chunk, sizeof(rx_chunk));
for(uint16_t i = 0; i < recv_len; i++) {
mozen_protocol_receive_byte(rx_chunk[i]);
}
}
//新协议需要调用的发送函数,需要外部自己实现一下函数定义
static int mozen_tx(const uint8_t *frame, uint16_t len)
{
if ((frame == NULL) || (len == 0U)) {
return -1;
}
//这里替换具体项目平台的发送函数,例如:
// usart_dma_send_data(USART_0_TR, (uint8_t *)frame, len);
return 0;
}
typedef struct
{
uint16_t adc_channel_cache[AX_BUF_NUM];
uint16_t g_sensor_raw_value[AX_NUM];
uint16_t g_sensor_ref_value[AX_NUM];
uint16_t sensor1_resi_output[AX_NUM];
uint16_t sensor1_display_output[AX_NUM];
uint16_t sensor1_voltage[AX_NUM][AY_NUM];
} Hc4051AdcValue;
Hc4051AdcValue temp_adc_value;
int main(void)
{
//项目中的外设初始化
//...
/*Step 1 */
//把这三个函数放在外设初始化之后,然后设置一下发送回调,
mozen_protocol_set_tx(mozen_tx);
mozen_protocol_init();
app_calibration_reset_init();
uint16_t count_ay = 0;
while(1)
{
/*Step 2 处理上位机下发的数据内部调用mozen_protocol_receive_byte会解析协议 */
process_rx();
scan_y(&temp_adc_value, count_ay); // scan_y 就是熟悉的正扫反扫的函数
count_ay++;
if (count_ay >= AY_NUM) { //扫完一帧
count_ay = 0;
/*Step 3 将原始帧数据传入,返回标定后二维结果。 */
uint16_t (*cailed_sensor_data)[MT_AY_NUM];
cailed_sensor_data = process_calibration_frame(temp_adc_value.sensor1_voltage);
// 预留给外部算法扩展: 可在此处继续处理 cailed_sensor_data 比如拿到cailed_sensor_data 做抗蠕变等其他算法
//...
//发走
send_sensor_frame(cailed_sensor_data);
}
}
}