Compare commits

..

1 Commits
main ... no2

Author SHA1 Message Date
承诺 67b85c4e8b 存档 2025-12-06 14:10:21 +08:00
14 changed files with 2645 additions and 4450 deletions

View File

@ -5,18 +5,18 @@
MX配置完成 MX配置完成
*******************/ *******************/
const T_HC595_PIN hc595 = const T_HC595_PIN hc595 =
{ {
.sck_port = HC595_SRCLK_GPIO_Port, .sck_port = HC595_SRCLK_GPIO_Port,
.sck_pin = HC595_SRCLK_Pin, //数据输入时钟线 .sck_pin = HC595_SRCLK_Pin, // 数据输入时钟线
.data_port = HC595_SER_GPIO_Port, .data_port = HC595_SER_GPIO_Port,
.data_pin = HC595_SER_Pin, //数据线 .data_pin = HC595_SER_Pin, // 数据线
.rck_port = HC595_RCLK_GPIO_Port, .rck_port = HC595_RCLK_GPIO_Port,
.rck_pin = HC595_RCLK_Pin, //输出存储器锁存时钟线 .rck_pin = HC595_RCLK_Pin, // 输出存储器锁存时钟线
.en_port = HC595_OE_GPIO_Port, .en_port = HC595_OE_GPIO_Port,
.en_pin = HC595_OE_Pin //芯片使能 .en_pin = HC595_OE_Pin // 芯片使能
}; };
/****************************** /******************************
@ -28,7 +28,7 @@ const T_HC595_PIN hc595 =
*******************************/ *******************************/
void hc595_init(const T_HC595_PIN *pin) void hc595_init(const T_HC595_PIN *pin)
{ {
LL_GPIO_ResetOutputPin(pin->en_port, pin->en_pin); LL_GPIO_ResetOutputPin(pin->en_port, pin->en_pin);
LL_GPIO_SetOutputPin(HC595_SRCLR_GPIO_Port, HC595_SRCLR_Pin); LL_GPIO_SetOutputPin(HC595_SRCLR_GPIO_Port, HC595_SRCLR_Pin);
} }
@ -41,7 +41,7 @@ void hc595_init(const T_HC595_PIN *pin)
*******************************/ *******************************/
void hc595_deInit(const T_HC595_PIN *pin) void hc595_deInit(const T_HC595_PIN *pin)
{ {
LL_GPIO_SetOutputPin(pin->en_port, pin->en_pin); LL_GPIO_SetOutputPin(pin->en_port, pin->en_pin);
} }
/****************************** /******************************
@ -50,147 +50,156 @@ void hc595_deInit(const T_HC595_PIN *pin)
pin-- data-- length-- pin-- data-- length--
1--QH=QGQF 1--QH=QGQF
2CLK-> 2CLK->
RCK-> RCK->
HC595的特性8 HC595的特性8
8 8
9(SQH)HC595引脚14(SI) 9(SQH)HC595引脚14(SI)
*******************************/ *******************************/
void hc595_writeStr(const T_HC595_PIN *pin, uint8_t *data, uint16_t length) void hc595_writeStr(const T_HC595_PIN *pin, uint8_t *data, uint16_t length)
{ {
uint16_t i; uint16_t i;
uint8_t byte; uint8_t byte;
data += length - 1; //等价于data[length - 1] data += length - 1; // 等价于data[length - 1]
while(length--) while (length--)
{ {
byte = *data--;//取数组data[length - 1]赋予byte然后再--data[length - 1]。 byte = *data--; // 取数组data[length - 1]赋予byte然后再--data[length - 1]。
for(i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
LL_GPIO_ResetOutputPin(pin->sck_port, pin->sck_pin); //clk = 0 保持缓存区状态 LL_GPIO_ResetOutputPin(pin->sck_port, pin->sck_pin); // clk = 0 保持缓存区状态
if(byte & 0x80) //从高位开始发送 if (byte & 0x80) // 从高位开始发送
{ {
LL_GPIO_SetOutputPin(pin->data_port, pin->data_pin);//data=1 LL_GPIO_SetOutputPin(pin->data_port, pin->data_pin); // data=1
} }
else else
{ {
LL_GPIO_ResetOutputPin(pin->data_port, pin->data_pin);//data=0 LL_GPIO_ResetOutputPin(pin->data_port, pin->data_pin); // data=0
} }
byte <<= 1; byte <<= 1;
delay_tick(10);//us delay_tick(10); // us
LL_GPIO_SetOutputPin(pin->sck_port, pin->sck_pin); //clk = 1 存储数据至缓存区 LL_GPIO_SetOutputPin(pin->sck_port, pin->sck_pin); // clk = 1 存储数据至缓存区
delay_tick(10);//us delay_tick(10); // us
} }
} }
LL_GPIO_ResetOutputPin(pin->rck_port, pin->rck_pin); LL_GPIO_ResetOutputPin(pin->rck_port, pin->rck_pin);
delay_tick(10); delay_tick(10);
LL_GPIO_SetOutputPin(pin->rck_port, pin->rck_pin);//发送缓存区内容 LL_GPIO_SetOutputPin(pin->rck_port, pin->rck_pin); // 发送缓存区内容
} }
uint8_t iostate[8] = {0}; uint8_t iostate[8] = {0};
void io_output(void) void io_output(void)
{ {
//电磁阀1置0 // 电磁阀1置0
if((CoilState[0] & 0x80)) if ((CoilState[0] & 0x80))
{ {
LL_GPIO_ResetOutputPin(DO1_GPIO_Port,DO1_Pin); LL_GPIO_ResetOutputPin(DO1_GPIO_Port, DO1_Pin);
iostate[7] = 0; iostate[7] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO1_GPIO_Port,DO1_Pin); LL_GPIO_SetOutputPin(DO1_GPIO_Port, DO1_Pin);
iostate[7] = 1; iostate[7] = 1;
} }
//电磁阀2置0 // 电磁阀2置0
if((CoilState[0] & 0x40)) if ((CoilState[0] & 0x40))
{ {
LL_GPIO_ResetOutputPin(DO2_GPIO_Port,DO2_Pin); LL_GPIO_ResetOutputPin(DO2_GPIO_Port, DO2_Pin);
iostate[6] = 0; iostate[6] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO2_GPIO_Port,DO2_Pin); LL_GPIO_SetOutputPin(DO2_GPIO_Port, DO2_Pin);
iostate[6] = 1; iostate[6] = 1;
} }
//电磁阀3置0 // 电磁阀3置0
if((CoilState[0] & 0x20)) if ((CoilState[0] & 0x20))
{ {
LL_GPIO_ResetOutputPin(DO3_GPIO_Port,DO3_Pin); LL_GPIO_ResetOutputPin(DO3_GPIO_Port, DO3_Pin);
iostate[5] = 0; iostate[5] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO3_GPIO_Port,DO3_Pin); LL_GPIO_SetOutputPin(DO3_GPIO_Port, DO3_Pin);
iostate[5] = 1; iostate[5] = 1;
} }
//电磁阀4置0 // 电磁阀4置0
if((CoilState[0] & 0x10)) if ((CoilState[0] & 0x10))
{ {
LL_GPIO_ResetOutputPin(DO4_GPIO_Port,DO4_Pin); LL_GPIO_ResetOutputPin(DO4_GPIO_Port, DO4_Pin);
iostate[4] = 0; iostate[4] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO4_GPIO_Port,DO4_Pin); LL_GPIO_SetOutputPin(DO4_GPIO_Port, DO4_Pin);
iostate[4] = 1; iostate[4] = 1;
} }
//电磁阀5置0 // 电磁阀5置0
if((CoilState[0] & 0x08)) if ((CoilState[0] & 0x08))
{ {
LL_GPIO_ResetOutputPin(DO5_GPIO_Port,DO5_Pin); LL_GPIO_ResetOutputPin(DO5_GPIO_Port, DO5_Pin);
iostate[3] = 0; iostate[3] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO5_GPIO_Port,DO5_Pin); LL_GPIO_SetOutputPin(DO5_GPIO_Port, DO5_Pin);
iostate[3] = 1; iostate[3] = 1;
} }
//指示灯1绿置0 // 指示灯1绿置0
if((CoilState[0] & 0x04)) if ((CoilState[0] & 0x04))
{ {
LL_GPIO_ResetOutputPin(DO6_GPIO_Port,DO6_Pin); LL_GPIO_ResetOutputPin(DO6_GPIO_Port, DO6_Pin);
iostate[2] = 0; iostate[2] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO6_GPIO_Port,DO6_Pin); LL_GPIO_SetOutputPin(DO6_GPIO_Port, DO6_Pin);
iostate[2] = 1; iostate[2] = 1;
} }
//指示灯2置0 // 指示灯2置0
if((CoilState[0] & 0x02)) if ((CoilState[0] & 0x02))
{ {
LL_GPIO_ResetOutputPin(DO7_GPIO_Port,DO7_Pin); LL_GPIO_ResetOutputPin(DO7_GPIO_Port, DO7_Pin);
iostate[1] = 0; iostate[1] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO7_GPIO_Port,DO7_Pin); LL_GPIO_SetOutputPin(DO7_GPIO_Port, DO7_Pin);
iostate[1] = 1; iostate[1] = 1;
} }
//指示灯3声光置0 // 指示灯3声光置0
if((CoilState[0] & 0x01)) if ((CoilState[0] & 0x01))
{ {
LL_GPIO_ResetOutputPin(DO8_GPIO_Port,DO8_Pin); LL_GPIO_ResetOutputPin(DO8_GPIO_Port, DO8_Pin);
iostate[0] = 0; iostate[0] = 0;
} }
else else
{ {
LL_GPIO_SetOutputPin(DO8_GPIO_Port,DO8_Pin); LL_GPIO_SetOutputPin(DO8_GPIO_Port, DO8_Pin);
iostate[0] = 1; iostate[0] = 1;
} }
//流量计调零 // 流量计调零
if(CoilState[1] & 0x01) if (CoilState[1] & 0x01)
{ {
flow_state = 0; flow_state = 0;
CoilState[1] &= 0xFE; CoilState[1] &= 0xFE;
} }
//激光调零 // 激光调零
if(CoilState[1] & 0x02) if (CoilState[1] & 0x02)
{ {
laser_handle.state = LASER_OPEN_STATUS; laser_handle.state = 3;
CoilState[1] &= 0xFD; CoilState[1] &= 0xFD;
} }
// 增量编码器调零
if (CoilState[1] & 0x04)
{
LL_TIM_SetCounter(TIM4, 30000);
CoilState[1] &= 0xFB;
}
// 绝对编码器调零
if (CoilState[1] & 0x08)
{
// laser_handle.state = LASER_OPEN_STATUS;
CoilState[1] &= 0xF7;
}
} }

View File

@ -11,7 +11,7 @@
#include <stdio.h> #include <stdio.h>
#include "laser.h" #include "laser.h"
extern size_t strlen(const char *); extern size_t strlen(const char *);
//extern uart_t *uarts[UART_NUM_MAX]; // extern uart_t *uarts[UART_NUM_MAX];
const char FRAME_HEAD_RSP = '$'; const char FRAME_HEAD_RSP = '$';
const char FRAME_TAIL = '\r'; const char FRAME_TAIL = '\r';
@ -27,7 +27,7 @@ const char REQ_DISTANCE_READ[] = "RMD"; // 测定值读出
const char REQ_ZERO_STATUS[] = "RZS"; // 调零状态查询 const char REQ_ZERO_STATUS[] = "RZS"; // 调零状态查询
const char REQ_ZERO_STATUS_WRITE[] = "WZS"; // 调零状态设置 const char REQ_ZERO_STATUS_WRITE[] = "WZS"; // 调零状态设置
//static uart_t *handle; // static uart_t *handle;
static char request_buf[RS485_REC_LEN]; static char request_buf[RS485_REC_LEN];
static uint8_t uart_buf[RS485_REC_LEN]; static uint8_t uart_buf[RS485_REC_LEN];
static uint8_t *response_ptr; static uint8_t *response_ptr;
@ -36,7 +36,7 @@ laser_t laser_handle;
uint8_t res; uint8_t res;
int rx_count = 0; int rx_count = 0;
//static void laser_rx_cb(uint8_t uart_index, uint8_t *data, uint16_t len); // static void laser_rx_cb(uint8_t uart_index, uint8_t *data, uint16_t len);
static void laser_send(uint8_t *data, uint8_t length) static void laser_send(uint8_t *data, uint8_t length)
{ {
@ -152,8 +152,8 @@ static void command_open_status_rsp(void)
response_ptr_offset++; // 跳过符号 response_ptr_offset++; // 跳过符号
osel_memcpy(status, response_ptr + response_ptr_offset, 5); osel_memcpy(status, response_ptr + response_ptr_offset, 5);
const char *cs = FRAME_TRUE; const char *cs = FRAME_TRUE;
const char *o_status = (char *)status; const char *o_status = (char *)status;
if(!strncmp(o_status, (cs + 1), 5)) if (!strncmp(o_status, (cs + 1), 5))
{ {
laser_handle.open_status = true; laser_handle.open_status = true;
if (laser_handle.state != LASER_READY) if (laser_handle.state != LASER_READY)
@ -186,7 +186,7 @@ static void command_open_status_write_rsp(void)
static float to_float(uint8_t *arr) static float to_float(uint8_t *arr)
{ {
int num = arr[0] * 1000000 + arr[1] * 100000 + arr[2] * 10000 + arr[3] * 1000 + arr[4] * 100 + arr[5] * 10 + arr[6]; // 数字部分的值 int num = arr[0] * 1000000 + arr[1] * 100000 + arr[2] * 10000 + arr[3] * 1000 + arr[4] * 100 + arr[5] * 10 + arr[6]; // 数字部分的值
float result = (float)num / PRECISION; // 将数字部分和小数部分合并成浮点数 float result = (float)num / PRECISION; // 将数字部分和小数部分合并成浮点数
return result; return result;
} }
@ -205,7 +205,7 @@ static void command_distance_read_rsp(void)
f = -f; f = -f;
} }
if (laser_handle.state != LASER_READY) if ((laser_handle.state != LASER_READY) && (laser_handle.state != LASER_ZERO_STATUS_CLOSE))
{ {
laser_handle.state = LASER_DISTANCE; laser_handle.state = LASER_DISTANCE;
} }
@ -218,8 +218,8 @@ static void command_zero_status_rsp(void)
response_ptr_offset++; // 跳过符号 response_ptr_offset++; // 跳过符号
osel_memcpy(status, response_ptr + response_ptr_offset, 5); osel_memcpy(status, response_ptr + response_ptr_offset, 5);
const char *cs = FRAME_TRUE; const char *cs = FRAME_TRUE;
const char *z_status = (char *)status; const char *z_status = (char *)status;
if(!strncmp(z_status, (cs + 1), 5)) if (!strncmp(z_status, (cs + 1), 5))
{ {
laser_handle.zero_status = true; laser_handle.zero_status = true;
} }
@ -255,12 +255,12 @@ static void _laser_ready(void)
{ {
laser_handle.state = LASER_READY; laser_handle.state = LASER_READY;
} }
//REGISTER_CMD(WC, command_device_connect_rsp, ""); // REGISTER_CMD(WC, command_device_connect_rsp, "");
//REGISTER_CMD(RLR, command_open_status_rsp, ""); // REGISTER_CMD(RLR, command_open_status_rsp, "");
//REGISTER_CMD(WLR, command_open_status_write_rsp, ""); // REGISTER_CMD(WLR, command_open_status_write_rsp, "");
//REGISTER_CMD(RMD, command_distance_read_rsp, ""); // REGISTER_CMD(RMD, command_distance_read_rsp, "");
//REGISTER_CMD(RZS, command_zero_status_rsp, ""); // REGISTER_CMD(RZS, command_zero_status_rsp, "");
//REGISTER_CMD(WZS, command_zero_status_write_rsp, ""); // REGISTER_CMD(WZS, command_zero_status_write_rsp, "");
laser_event_t laser_event[] = { laser_event_t laser_event[] = {
{LASER_IDEL, command_device_connect_req}, {LASER_IDEL, command_device_connect_req},
@ -274,18 +274,18 @@ laser_event_t laser_event[] = {
void uart2_init(void) void uart2_init(void)
{ {
/*接收配置*/ /*接收配置*/
//使能空闲中断 // 使能空闲中断
LL_USART_EnableIT_IDLE(USART2); LL_USART_EnableIT_IDLE(USART2);
/*发送配置*/ /*发送配置*/
//设置外设地址因为这个是DMA串口发送 // 设置外设地址因为这个是DMA串口发送
LL_DMA_SetPeriphAddress(DMA1,LL_DMA_STREAM_6,(uint32_t)&USART2->DR); LL_DMA_SetPeriphAddress(DMA1, LL_DMA_STREAM_6, (uint32_t)&USART2->DR);
//使能DMA串口发送 // 使能DMA串口发送
LL_USART_EnableDMAReq_TX(USART2); LL_USART_EnableDMAReq_TX(USART2);
//使能DMA2发送完成中断 // 使能DMA2发送完成中断
LL_DMA_EnableIT_TC(DMA1,LL_DMA_STREAM_6); LL_DMA_EnableIT_TC(DMA1, LL_DMA_STREAM_6);
LL_USART_EnableIT_RXNE(USART2); //开启接收中断 LL_USART_EnableIT_RXNE(USART2); // 开启接收中断
} }
void laser_init(send_data_cb_t cb) void laser_init(send_data_cb_t cb)
@ -300,94 +300,90 @@ void laser_init(send_data_cb_t cb)
laser_handle.command_zero_status_write_req = command_zero_status_write_req; laser_handle.command_zero_status_write_req = command_zero_status_write_req;
} }
//串口接收中断回调函数,激光 // 串口接收中断回调函数,激光
void laser_rx_cb(void)//uint8_t uart_index, uint8_t *data, uint16_t len void laser_rx_cb(void) // uint8_t uart_index, uint8_t *data, uint16_t len
{ {
// 空闲中断表明接收到了1帧所有的数据 // 空闲中断表明接收到了1帧所有的数据
if(LL_USART_IsActiveFlag_IDLE(USART2)) if (LL_USART_IsActiveFlag_IDLE(USART2))
{ {
//清除空闲中断 // 清除空闲中断
LL_USART_ClearFlag_IDLE(USART2); LL_USART_ClearFlag_IDLE(USART2);
laser_data_process(uart_buf,rx_count); laser_data_process(uart_buf, rx_count);
rx_count = 0; rx_count = 0;
} }
// Rx非空中断表明接收到了一个字节 // Rx非空中断表明接收到了一个字节
// 读取Rx可自动清除中断标志位 // 读取Rx可自动清除中断标志位
if(LL_USART_IsActiveFlag_RXNE(USART2)) if (LL_USART_IsActiveFlag_RXNE(USART2))
{ {
// 如果数组长度大于设置的data最大长度直接停止接收 // 如果数组长度大于设置的data最大长度直接停止接收
if(rx_count > 50) if (rx_count > 50)
rx_count = 0; // wait for the next data rx_count = 0; // wait for the next data
uart_buf[rx_count] = LL_USART_ReceiveData8(USART2); uart_buf[rx_count] = LL_USART_ReceiveData8(USART2);
rx_count ++; rx_count++;
} }
} }
// 根据cmd指令执行相应程序
//根据cmd指令执行相应程序
void cmd_parsing(char *str) void cmd_parsing(char *str)
{ {
//if(strcmp(str, "WC") == 0) // if(strcmp(str, "WC") == 0)
if(!strncmp(str, REQ_DEVICE_ONLINE,2)) if (!strncmp(str, REQ_DEVICE_ONLINE, 2))
command_device_connect_rsp(); command_device_connect_rsp();
else if(!strncmp(str, REQ_OPEN_STATUS,3)) else if (!strncmp(str, REQ_OPEN_STATUS, 3))
command_open_status_rsp(); command_open_status_rsp();
else if(!strncmp(str, REQ_OPEN_STATUS_WRITE,3)) else if (!strncmp(str, REQ_OPEN_STATUS_WRITE, 3))
command_open_status_write_rsp(); command_open_status_write_rsp();
else if(!strncmp(str, REQ_DISTANCE_READ,3)) else if (!strncmp(str, REQ_DISTANCE_READ, 3))
command_distance_read_rsp(); command_distance_read_rsp();
else if(!strncmp(str, REQ_ZERO_STATUS,3)) else if (!strncmp(str, REQ_ZERO_STATUS, 3))
command_zero_status_rsp(); command_zero_status_rsp();
else if(!strncmp(str, REQ_ZERO_STATUS_WRITE,3)) else if (!strncmp(str, REQ_ZERO_STATUS_WRITE, 3))
command_zero_status_write_rsp(); command_zero_status_write_rsp();
} }
//激光传感器任务流程 // 激光传感器任务流程
void laser_task(void) void laser_task(void)
{ {
//command_zero_status_open_req(); // command_zero_status_open_req();
if (laser_handle.state != LASER_READY) if (laser_handle.state != LASER_READY)
{
if (it_50ms_falg == 1)
{ {
if(it_500ms_falg == 1) if (laser_handle.state == LASER_IDEL)
{ command_device_connect_req();
if(laser_handle.state == LASER_IDEL) else if (laser_handle.state == LASER_CONNECT)
command_device_connect_req(); command_open_status_req();
else if(laser_handle.state == LASER_CONNECT) else if (laser_handle.state == LASER_OPEN_STATUS)
command_open_status_req(); command_zero_status_close_req();
else if(laser_handle.state == LASER_OPEN_STATUS) else if (laser_handle.state == LASER_ZERO_STATUS_CLOSE)
command_zero_status_close_req(); command_zero_status_open_req();
else if(laser_handle.state == LASER_ZERO_STATUS_CLOSE) else if (laser_handle.state == LASER_ZERO_STATUS_OPEN)
command_zero_status_open_req(); command_distance_read_req();
else if(laser_handle.state == LASER_ZERO_STATUS_OPEN) else if (laser_handle.state == LASER_DISTANCE)
command_distance_read_req(); _laser_ready();
else if(laser_handle.state == LASER_DISTANCE) it_50ms_falg = 0;
_laser_ready();
it_500ms_falg = 0;
}
} }
// else }
// { else
// if(it_10ms_falg == 1) {
// { if (it_10ms_falg == 1)
// laser_handle.command_distance_read_req(); {
// if(laser_handle.distance >= 0) laser_handle.command_distance_read_req();
// { if (laser_handle.distance >= 0)
// InputReg[4] = laser_handle.distance; {
// } InputReg[4] = laser_handle.distance;
// else }
// { else
// int laser_num = -laser_handle.distance; {
// int laser_num = -laser_handle.distance;
// InputReg[4] = (uint16_t)((0xFFFF - laser_num) + 1);
// }
// it_10ms_falg = 0;
// //laser_handle.connect = true;
// }
// }
}
InputReg[4] = (uint16_t)((0xFFFF - laser_num) + 1);
}
it_10ms_falg = 0;
// laser_handle.connect = true;
}
}
}

View File

@ -72,7 +72,7 @@ void sys_init()
adc1_start_dma(); adc1_start_dma();
laser_init(usart2_laser_send); laser_init(usart2_laser_send);
io_output(); io_output();
// encode_init(); encode_init();
} }
char step_cnt = 0; char step_cnt = 0;
@ -85,6 +85,8 @@ uint16_t dis_temp = 0;//DI
int flow_state = 0; int flow_state = 0;
int OVER_TIMES = 65535; int OVER_TIMES = 65535;
int encode_cnt = 0;
uint16_t press_array1[10] = {0}; uint16_t press_array1[10] = {0};
uint16_t press_array2[10] = {0}; uint16_t press_array2[10] = {0};
uint16_t press_array3[10] = {0}; uint16_t press_array3[10] = {0};
@ -95,8 +97,10 @@ int a1 = 0,a2 = 0,a3 = 0;
void sys_task(void) void sys_task(void)
{ {
io_output();//实时更新IO输出状态
//ao1_set(8); //ao1_set(8);
//AO(0-25mA)输出,每当寄存器内数值更新时输出电流同步更新 //AO(0-25mA)输出,每当寄存器内数值更新时输出电流同步更新
if(!(AO1_data == (float)(HoldReg[0]) / 1000)) if(!(AO1_data == (float)(HoldReg[0]) / 1000))
{ {
AO1_data = (float)(HoldReg[0]) / 1000; AO1_data = (float)(HoldReg[0]) / 1000;
@ -124,8 +128,6 @@ void sys_task(void)
get_adc_value();//得到温度和AO反馈值 get_adc_value();//得到温度和AO反馈值
io_output();//实时更新IO输出状态
//DI数据存入离散量寄存器气泡检测 //DI数据存入离散量寄存器气泡检测
bub_flag = DisState[0] & 0x04;//获取气泡检测状态 bub_flag = DisState[0] & 0x04;//获取气泡检测状态
dis_temp =_74hc165_read_byte(); dis_temp =_74hc165_read_byte();
@ -138,7 +140,7 @@ void sys_task(void)
HoldReg[2] = 65500; HoldReg[2] = 65500;
} }
InputReg[20] = LL_TIM_GetCounter(TIM4);
} }
/* USER CODE END 0 */ /* USER CODE END 0 */

View File

@ -1,20 +1,20 @@
/* USER CODE BEGIN Header */ /* USER CODE BEGIN Header */
/** /**
****************************************************************************** ******************************************************************************
* @file stm32f4xx_it.c * @file stm32f4xx_it.c
* @brief Interrupt Service Routines. * @brief Interrupt Service Routines.
****************************************************************************** ******************************************************************************
* @attention * @attention
* *
* Copyright (c) 2024 STMicroelectronics. * Copyright (c) 2024 STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This software is licensed under terms that can be found in the LICENSE file * This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component. * in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS. * If no LICENSE file comes with this software, it is provided AS-IS.
* *
****************************************************************************** ******************************************************************************
*/ */
/* USER CODE END Header */ /* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
@ -79,23 +79,23 @@ int it_1000ms_cnt = 0;
/* Cortex-M4 Processor Interruption and Exception Handlers */ /* Cortex-M4 Processor Interruption and Exception Handlers */
/******************************************************************************/ /******************************************************************************/
/** /**
* @brief This function handles Non maskable interrupt. * @brief This function handles Non maskable interrupt.
*/ */
void NMI_Handler(void) void NMI_Handler(void)
{ {
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1) while (1)
{ {
} }
/* USER CODE END NonMaskableInt_IRQn 1 */ /* USER CODE END NonMaskableInt_IRQn 1 */
} }
/** /**
* @brief This function handles Hard fault interrupt. * @brief This function handles Hard fault interrupt.
*/ */
void HardFault_Handler(void) void HardFault_Handler(void)
{ {
/* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE BEGIN HardFault_IRQn 0 */
@ -109,8 +109,8 @@ void HardFault_Handler(void)
} }
/** /**
* @brief This function handles Memory management fault. * @brief This function handles Memory management fault.
*/ */
void MemManage_Handler(void) void MemManage_Handler(void)
{ {
/* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE BEGIN MemoryManagement_IRQn 0 */
@ -124,8 +124,8 @@ void MemManage_Handler(void)
} }
/** /**
* @brief This function handles Pre-fetch fault, memory access fault. * @brief This function handles Pre-fetch fault, memory access fault.
*/ */
void BusFault_Handler(void) void BusFault_Handler(void)
{ {
/* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE BEGIN BusFault_IRQn 0 */
@ -139,8 +139,8 @@ void BusFault_Handler(void)
} }
/** /**
* @brief This function handles Undefined instruction or illegal state. * @brief This function handles Undefined instruction or illegal state.
*/ */
void UsageFault_Handler(void) void UsageFault_Handler(void)
{ {
/* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE BEGIN UsageFault_IRQn 0 */
@ -154,8 +154,8 @@ void UsageFault_Handler(void)
} }
/** /**
* @brief This function handles System service call via SWI instruction. * @brief This function handles System service call via SWI instruction.
*/ */
void SVC_Handler(void) void SVC_Handler(void)
{ {
/* USER CODE BEGIN SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 0 */
@ -167,8 +167,8 @@ void SVC_Handler(void)
} }
/** /**
* @brief This function handles Debug monitor. * @brief This function handles Debug monitor.
*/ */
void DebugMon_Handler(void) void DebugMon_Handler(void)
{ {
/* USER CODE BEGIN DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 0 */
@ -180,8 +180,8 @@ void DebugMon_Handler(void)
} }
/** /**
* @brief This function handles Pendable request for system service. * @brief This function handles Pendable request for system service.
*/ */
void PendSV_Handler(void) void PendSV_Handler(void)
{ {
/* USER CODE BEGIN PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 0 */
@ -193,8 +193,8 @@ void PendSV_Handler(void)
} }
/** /**
* @brief This function handles System tick timer. * @brief This function handles System tick timer.
*/ */
void SysTick_Handler(void) void SysTick_Handler(void)
{ {
/* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE BEGIN SysTick_IRQn 0 */
@ -214,18 +214,18 @@ void SysTick_Handler(void)
/******************************************************************************/ /******************************************************************************/
/** /**
* @brief This function handles DMA1 stream3 global interrupt. * @brief This function handles DMA1 stream3 global interrupt.
*/ */
void DMA1_Stream3_IRQHandler(void) void DMA1_Stream3_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
if(LL_DMA_IsActiveFlag_TC3(DMA1)) if (LL_DMA_IsActiveFlag_TC3(DMA1))
{ {
//清除Stream3 TC中断 // 清除Stream3 TC中断
LL_DMA_ClearFlag_TC3(DMA1); LL_DMA_ClearFlag_TC3(DMA1);
//关闭DMA1 Stream3 // 关闭DMA1 Stream3
LL_DMA_DisableStream(DMA1,LL_DMA_STREAM_3); LL_DMA_DisableStream(DMA1, LL_DMA_STREAM_3);
} }
/* USER CODE END DMA1_Stream3_IRQn 0 */ /* USER CODE END DMA1_Stream3_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
@ -234,16 +234,16 @@ void DMA1_Stream3_IRQHandler(void)
} }
/** /**
* @brief This function handles DMA1 stream6 global interrupt. * @brief This function handles DMA1 stream6 global interrupt.
*/ */
void DMA1_Stream6_IRQHandler(void) void DMA1_Stream6_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA1_Stream6_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream6_IRQn 0 */
if(LL_DMA_IsActiveFlag_TC6(DMA1)) if (LL_DMA_IsActiveFlag_TC6(DMA1))
{ {
LL_DMA_ClearFlag_TC6(DMA1);//清除TC中断 LL_DMA_ClearFlag_TC6(DMA1); // 清除TC中断
LL_DMA_DisableStream(DMA1,LL_DMA_STREAM_6); //关闭DMA LL_DMA_DisableStream(DMA1, LL_DMA_STREAM_6); // 关闭DMA
} }
/* USER CODE END DMA1_Stream6_IRQn 0 */ /* USER CODE END DMA1_Stream6_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream6_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream6_IRQn 1 */
@ -252,85 +252,85 @@ void DMA1_Stream6_IRQHandler(void)
} }
/** /**
* @brief This function handles TIM3 global interrupt. * @brief This function handles TIM3 global interrupt.
*/ */
void TIM3_IRQHandler(void) void TIM3_IRQHandler(void)
{ {
/* USER CODE BEGIN TIM3_IRQn 0 */ /* USER CODE BEGIN TIM3_IRQn 0 */
if(LL_TIM_IsActiveFlag_UPDATE(TIM3) == SET) if (LL_TIM_IsActiveFlag_UPDATE(TIM3) == SET)
{ {
it_5ms_cnt++; it_5ms_cnt++;
if(it_5ms_cnt > 4) if (it_5ms_cnt > 4)
{ {
it_5ms_falg = 1; it_5ms_falg = 1;
it_5ms_cnt = 0; it_5ms_cnt = 0;
} }
it_10ms_cnt++; it_10ms_cnt++;
if(it_10ms_cnt > 9) if (it_10ms_cnt > 9)
{ {
if (laser_handle.state == LASER_READY) // if (laser_handle.state == LASER_READY)
{ //{
laser_handle.command_distance_read_req(); // laser_handle.command_distance_read_req();
if(laser_handle.distance >= 0) // if(laser_handle.distance >= 0)
{ //{
InputReg[4] = laser_handle.distance; // InputReg[4] = laser_handle.distance;
} //}
else // else
{ //{
int laser_num = -laser_handle.distance; // int laser_num = -laser_handle.distance;
InputReg[4] = (uint16_t)((0xFFFF - laser_num) + 1); // InputReg[4] = (uint16_t)((0xFFFF - laser_num) + 1);
} //}
} //}
//it_10ms_falg = 1; it_10ms_falg = 1;
it_10ms_cnt = 0; it_10ms_cnt = 0;
} }
it_25ms_cnt++; it_25ms_cnt++;
if(it_25ms_cnt > 24) if (it_25ms_cnt > 24)
{ {
it_25ms_falg = 1; it_25ms_falg = 1;
it_25ms_cnt = 0; it_25ms_cnt = 0;
} }
it_50ms_cnt++; it_50ms_cnt++;
if(it_50ms_cnt > 49) if (it_50ms_cnt > 49)
{ {
it_50ms_falg = 1; it_50ms_falg = 1;
it_50ms_cnt = 0; it_50ms_cnt = 0;
} }
it_100ms_cnt++; it_100ms_cnt++;
if(it_100ms_cnt > 99) if (it_100ms_cnt > 99)
{ {
it_100ms_cnt = 0; it_100ms_cnt = 0;
if(flow_state == 6) if (flow_state == 6)
{ {
mf_read(); mf_read();
} }
else else
{ {
mf_clear(); mf_clear();
} }
} }
it_300ms_cnt++; it_300ms_cnt++;
if(it_300ms_cnt > 299) if (it_300ms_cnt > 299)
{ {
it_300ms_falg = 1; it_300ms_falg = 1;
it_300ms_cnt = 0; it_300ms_cnt = 0;
} }
it_500ms_cnt++; it_500ms_cnt++;
if(it_500ms_cnt > 499) if (it_500ms_cnt > 499)
{ {
it_500ms_falg = 1; it_500ms_falg = 1;
it_500ms_cnt = 0; it_500ms_cnt = 0;
} }
it_1000ms_cnt++; it_1000ms_cnt++;
if(it_1000ms_cnt > 999) if (it_1000ms_cnt > 999)
{ {
it_1000ms_falg = 1; it_1000ms_falg = 1;
it_1000ms_cnt = 0; it_1000ms_cnt = 0;
} }
LL_TIM_ClearFlag_UPDATE(TIM3); LL_TIM_ClearFlag_UPDATE(TIM3);
} }
/* USER CODE END TIM3_IRQn 0 */ /* USER CODE END TIM3_IRQn 0 */
/* USER CODE BEGIN TIM3_IRQn 1 */ /* USER CODE BEGIN TIM3_IRQn 1 */
@ -339,8 +339,8 @@ void TIM3_IRQHandler(void)
} }
/** /**
* @brief This function handles USART1 global interrupt. * @brief This function handles USART1 global interrupt.
*/ */
void USART1_IRQHandler(void) void USART1_IRQHandler(void)
{ {
/* USER CODE BEGIN USART1_IRQn 0 */ /* USER CODE BEGIN USART1_IRQn 0 */
@ -352,12 +352,12 @@ void USART1_IRQHandler(void)
} }
/** /**
* @brief This function handles USART2 global interrupt. * @brief This function handles USART2 global interrupt.
*/ */
void USART2_IRQHandler(void) void USART2_IRQHandler(void)
{ {
/* USER CODE BEGIN USART2_IRQn 0 */ /* USER CODE BEGIN USART2_IRQn 0 */
laser_rx_cb(); laser_rx_cb();
/* USER CODE END USART2_IRQn 0 */ /* USER CODE END USART2_IRQn 0 */
/* USER CODE BEGIN USART2_IRQn 1 */ /* USER CODE BEGIN USART2_IRQn 1 */
@ -366,12 +366,12 @@ void USART2_IRQHandler(void)
} }
/** /**
* @brief This function handles USART3 global interrupt. * @brief This function handles USART3 global interrupt.
*/ */
void USART3_IRQHandler(void) void USART3_IRQHandler(void)
{ {
/* USER CODE BEGIN USART3_IRQn 0 */ /* USER CODE BEGIN USART3_IRQn 0 */
modbus_callback(); modbus_callback();
/* USER CODE END USART3_IRQn 0 */ /* USER CODE END USART3_IRQn 0 */
/* USER CODE BEGIN USART3_IRQn 1 */ /* USER CODE BEGIN USART3_IRQn 1 */
@ -379,12 +379,12 @@ void USART3_IRQHandler(void)
} }
/** /**
* @brief This function handles TIM7 global interrupt. * @brief This function handles TIM7 global interrupt.
*/ */
void TIM7_IRQHandler(void) void TIM7_IRQHandler(void)
{ {
/* USER CODE BEGIN TIM7_IRQn 0 */ /* USER CODE BEGIN TIM7_IRQn 0 */
modbus_tim_callback(); modbus_tim_callback();
/* USER CODE END TIM7_IRQn 0 */ /* USER CODE END TIM7_IRQn 0 */
/* USER CODE BEGIN TIM7_IRQn 1 */ /* USER CODE BEGIN TIM7_IRQn 1 */
@ -392,29 +392,29 @@ void TIM7_IRQHandler(void)
} }
/** /**
* @brief This function handles DMA2 stream0 global interrupt. * @brief This function handles DMA2 stream0 global interrupt.
*/ */
void DMA2_Stream0_IRQHandler(void) void DMA2_Stream0_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream0_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream0_IRQn 0 */
if(LL_DMA_IsActiveFlag_TC0(DMA2)) if (LL_DMA_IsActiveFlag_TC0(DMA2))
{ {
ADC_TC_Flag = 1; ADC_TC_Flag = 1;
} }
/* USER CODE END DMA2_Stream0_IRQn 0 */ /* USER CODE END DMA2_Stream0_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream0_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream0_IRQn 1 */
LL_DMA_ClearFlag_TC0(DMA2); LL_DMA_ClearFlag_TC0(DMA2);
if (LL_DMA_IsActiveFlag_TE0(DMA2) != 0) if (LL_DMA_IsActiveFlag_TE0(DMA2) != 0)
{ {
LL_DMA_ClearFlag_TE0(DMA2); LL_DMA_ClearFlag_TE0(DMA2);
} }
/* USER CODE END DMA2_Stream0_IRQn 1 */ /* USER CODE END DMA2_Stream0_IRQn 1 */
} }
/** /**
* @brief This function handles DMA2 stream1 global interrupt. * @brief This function handles DMA2 stream1 global interrupt.
*/ */
void DMA2_Stream1_IRQHandler(void) void DMA2_Stream1_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream1_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream1_IRQn 0 */
@ -427,18 +427,18 @@ void DMA2_Stream1_IRQHandler(void)
} }
/** /**
* @brief This function handles DMA2 stream6 global interrupt. * @brief This function handles DMA2 stream6 global interrupt.
*/ */
void DMA2_Stream6_IRQHandler(void) void DMA2_Stream6_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream6_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
if(LL_DMA_IsActiveFlag_TC6(DMA2)) if (LL_DMA_IsActiveFlag_TC6(DMA2))
{ {
//清除Stream3 TC中断 // 清除Stream3 TC中断
LL_DMA_ClearFlag_TC6(DMA2); LL_DMA_ClearFlag_TC6(DMA2);
//关闭DMA1 Stream3 // 关闭DMA1 Stream3
LL_DMA_DisableStream(DMA2,LL_DMA_STREAM_6); LL_DMA_DisableStream(DMA2, LL_DMA_STREAM_6);
} }
/* USER CODE END DMA2_Stream6_IRQn 0 */ /* USER CODE END DMA2_Stream6_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream6_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream6_IRQn 1 */
@ -447,12 +447,12 @@ void DMA2_Stream6_IRQHandler(void)
} }
/** /**
* @brief This function handles USART6 global interrupt. * @brief This function handles USART6 global interrupt.
*/ */
void USART6_IRQHandler(void) void USART6_IRQHandler(void)
{ {
/* USER CODE BEGIN USART6_IRQn 0 */ /* USER CODE BEGIN USART6_IRQn 0 */
mf_rx_cb(); mf_rx_cb();
/* USER CODE END USART6_IRQn 0 */ /* USER CODE END USART6_IRQn 0 */
/* USER CODE BEGIN USART6_IRQn 1 */ /* USER CODE BEGIN USART6_IRQn 1 */

View File

@ -79,18 +79,18 @@ void MX_TIM4_Init(void)
PB7 ------> TIM4_CH2 PB7 ------> TIM4_CH2
PB8 ------> TIM4_CH3 PB8 ------> TIM4_CH3
*/ */
GPIO_InitStruct.Pin = ENCODER_A_Pin|ENCODER_B_Pin|LL_GPIO_PIN_8; GPIO_InitStruct.Pin = ENCODER_A_Pin|ENCODER_B_Pin;//|LL_GPIO_PIN_8;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;//LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_2; GPIO_InitStruct.Alternate = LL_GPIO_AF_2;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct); LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN TIM4_Init 1 */ /* USER CODE BEGIN TIM4_Init 1 */
/* USER CODE END TIM4_Init 1 */ /* USER CODE END TIM4_Init 1 */
TIM_InitStruct.Prescaler = 0; TIM_InitStruct.Prescaler = 1;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 65535; TIM_InitStruct.Autoreload = 65535;
TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
@ -99,18 +99,18 @@ void MX_TIM4_Init(void)
LL_TIM_SetEncoderMode(TIM4, LL_TIM_ENCODERMODE_X4_TI12); LL_TIM_SetEncoderMode(TIM4, LL_TIM_ENCODERMODE_X4_TI12);
LL_TIM_IC_SetActiveInput(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_ACTIVEINPUT_DIRECTTI); LL_TIM_IC_SetActiveInput(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_ACTIVEINPUT_DIRECTTI);
LL_TIM_IC_SetPrescaler(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_ICPSC_DIV1); LL_TIM_IC_SetPrescaler(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_ICPSC_DIV1);
LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1); LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1_N8);
LL_TIM_IC_SetPolarity(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_IC_POLARITY_RISING); LL_TIM_IC_SetPolarity(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_IC_POLARITY_RISING);
LL_TIM_IC_SetActiveInput(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_ACTIVEINPUT_DIRECTTI); LL_TIM_IC_SetActiveInput(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_ACTIVEINPUT_DIRECTTI);
LL_TIM_IC_SetPrescaler(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_ICPSC_DIV1); LL_TIM_IC_SetPrescaler(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_ICPSC_DIV1);
LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_IC_FILTER_FDIV1); LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_IC_FILTER_FDIV1_N8);
LL_TIM_IC_SetPolarity(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_IC_POLARITY_RISING); LL_TIM_IC_SetPolarity(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_IC_POLARITY_RISING);
LL_TIM_SetTriggerOutput(TIM4, LL_TIM_TRGO_RESET); LL_TIM_SetTriggerOutput(TIM4, LL_TIM_TRGO_RESET);
LL_TIM_DisableMasterSlaveMode(TIM4); LL_TIM_DisableMasterSlaveMode(TIM4);
LL_TIM_IC_SetActiveInput(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_ACTIVEINPUT_DIRECTTI); // LL_TIM_IC_SetActiveInput(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_ACTIVEINPUT_DIRECTTI);
LL_TIM_IC_SetPrescaler(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_ICPSC_DIV1); // LL_TIM_IC_SetPrescaler(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_ICPSC_DIV1);
LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_IC_FILTER_FDIV1); // LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_IC_FILTER_FDIV1);
LL_TIM_IC_SetPolarity(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_IC_POLARITY_RISING); // LL_TIM_IC_SetPolarity(TIM4, LL_TIM_CHANNEL_CH3, LL_TIM_IC_POLARITY_RISING);
/* USER CODE BEGIN TIM4_Init 2 */ /* USER CODE BEGIN TIM4_Init 2 */
/* USER CODE END TIM4_Init 2 */ /* USER CODE END TIM4_Init 2 */
@ -138,7 +138,7 @@ void MX_TIM7_Init(void)
/* USER CODE END TIM7_Init 1 */ /* USER CODE END TIM7_Init 1 */
TIM_InitStruct.Prescaler = 16799; TIM_InitStruct.Prescaler = 16799;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 9; TIM_InitStruct.Autoreload = 19;
LL_TIM_Init(TIM7, &TIM_InitStruct); LL_TIM_Init(TIM7, &TIM_InitStruct);
LL_TIM_EnableARRPreload(TIM7); LL_TIM_EnableARRPreload(TIM7);
LL_TIM_SetTriggerOutput(TIM7, LL_TIM_TRGO_RESET); LL_TIM_SetTriggerOutput(TIM7, LL_TIM_TRGO_RESET);
@ -155,8 +155,11 @@ void encode_init(void)
{ {
LL_TIM_CC_EnableChannel(TIM4,LL_TIM_CHANNEL_CH1); LL_TIM_CC_EnableChannel(TIM4,LL_TIM_CHANNEL_CH1);
LL_TIM_CC_EnableChannel(TIM4,LL_TIM_CHANNEL_CH2); LL_TIM_CC_EnableChannel(TIM4,LL_TIM_CHANNEL_CH2);
LL_TIM_EnableCounter(TIM4); LL_TIM_EnableCounter(TIM4);
// LL_TIM_EnableIT_UPDATE(TIM4);//TIM6¸üÐÂʹÄÜ
LL_TIM_SetCounter(TIM4,30000);
} }

View File

@ -389,7 +389,7 @@ void modbus_init(void)
usart3.rx_size = 0; usart3.rx_size = 0;
usart3.rx_flag = 0; usart3.rx_flag = 0;
usart3.tx_buf = usart3_rx_buf; //发送数据变量初始化 usart3.tx_buf = usart3_tx_buf; //发送数据变量初始化
usart3.tx_buf_cnt = USART3_TXSIZE; usart3.tx_buf_cnt = USART3_TXSIZE;
usart3.tx_size = 0; usart3.tx_size = 0;

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="EventRecorderStub" version="1.0.0"/> <!--name and version of the component-->
<events>
</events>
</component_viewer>

View File

@ -10,7 +10,7 @@
<aExt>*.s*; *.src; *.a*</aExt> <aExt>*.s*; *.src; *.a*</aExt>
<oExt>*.obj</oExt> <oExt>*.obj</oExt>
<lExt>*.lib</lExt> <lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc</tExt> <tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt> <pExt>*.plm</pExt>
<CppX>*.cpp</CppX> <CppX>*.cpp</CppX>
<nMigrate>0</nMigrate> <nMigrate>0</nMigrate>
@ -78,68 +78,6 @@
<IsCurrentTarget>1</IsCurrentTarget> <IsCurrentTarget>1</IsCurrentTarget>
</OPTFL> </OPTFL>
<CpuCode>18</CpuCode> <CpuCode>18</CpuCode>
<Books>
<Book>
<Number>0</Number>
<Title>MCBSTM32F400 Quick Start Guide (MCBSTM32F400)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/Keil/MCBSTM32F400/Documentation/MCBSTM32F400_QSG.pdf</Path>
</Book>
<Book>
<Number>1</Number>
<Title>User Manual (MCBSTM32F400)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/Keil/MCBSTM32F400/Documentation/mcbstm32f200.chm</Path>
</Book>
<Book>
<Number>2</Number>
<Title>Schematics V1.1 (MCBSTM32F400)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/Keil/MCBSTM32F400/Documentation/mcbstm32f400-schematics.pdf</Path>
</Book>
<Book>
<Number>3</Number>
<Title>Schematics V1.2 (MCBSTM32F400)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/Keil/MCBSTM32F400/Documentation/mcbstm32f400-schematics_V1.2.pdf</Path>
</Book>
<Book>
<Number>4</Number>
<Title>STM32F4-Discovery Quick Start Guide (STM32F4-Discovery)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/ST/STM32F4-Discovery/Documentation/32F4-DISCOVERY_QSG.pdf</Path>
</Book>
<Book>
<Number>5</Number>
<Title>Getting Started (STM32F4-Discovery)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/ST/STM32F4-Discovery/Documentation/DM00037368.pdf</Path>
</Book>
<Book>
<Number>6</Number>
<Title>User Manual (STM32F4-Discovery)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/ST/STM32F4-Discovery/Documentation/DM00039084.pdf</Path>
</Book>
<Book>
<Number>7</Number>
<Title>Bill of Materials (STM32F4-Discovery)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/ST/STM32F4-Discovery/Documentation/stm32f4discovery_bom.zip</Path>
</Book>
<Book>
<Number>8</Number>
<Title>Gerber Files (STM32F4-Discovery)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/ST/STM32F4-Discovery/Documentation/stm32f4discovery_gerber.zip</Path>
</Book>
<Book>
<Number>9</Number>
<Title>Schematics (STM32F4-Discovery)</Title>
<Path>D:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\MDK/Boards/ST/STM32F4-Discovery/Documentation/stm32f4discovery_sch.zip</Path>
</Book>
<Book>
<Number>10</Number>
<Title>MCBSTM32F400 Evaluation Board Web Page (MCBSTM32F400)</Title>
<Path>http://www.keil.com/mcbstm32f400/</Path>
</Book>
<Book>
<Number>11</Number>
<Title>STM32F4-Discovery Web Page (STM32F4-Discovery)</Title>
<Path>http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1199/PF252419</Path>
</Book>
</Books>
<DebugOpt> <DebugOpt>
<uSim>0</uSim> <uSim>0</uSim>
<uTrg>1</uTrg> <uTrg>1</uTrg>
@ -162,7 +100,10 @@
<tRSysVw>1</tRSysVw> <tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb> <sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime> <sLrtime>0</sLrtime>
<nTsel>6</nTsel> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>4</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@ -199,17 +140,17 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>JL2CM3</Key> <Key>JL2CM3</Key>
<Name>-U59610079 -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS/Flash/STM32F4xx_1024.FLM)</Name> <Name>-U59610079 -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>UL2CM3</Key> <Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS/Flash/STM32F4xx_1024.FLM))</Name> <Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key> <Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VG$CMSIS\Flash\STM32F4xx_1024.FLM)</Name> <Name>-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint/>
@ -354,6 +295,16 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>usart6_rx_buf</ItemText> <ItemText>usart6_rx_buf</ItemText>
</Ww> </Ww>
<Ww>
<count>28</count>
<WinNumber>1</WinNumber>
<ItemText>encode_cnt,0x0A</ItemText>
</Ww>
<Ww>
<count>29</count>
<WinNumber>1</WinNumber>
<ItemText>TIM4</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
@ -386,8 +337,20 @@
</DebugFlag> </DebugFlag>
<LintExecutable></LintExecutable> <LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile> <LintConfigFile></LintConfigFile>
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog> <EnableLog>0</EnableLog>
<Protocol>2</Protocol> <Protocol>2</Protocol>
<DbgClock>10000000</DbgClock> <DbgClock>10000000</DbgClock>
@ -406,7 +369,6 @@
<FileNumber>1</FileNumber> <FileNumber>1</FileNumber>
<FileType>2</FileType> <FileType>2</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>startup_stm32f407xx.s</PathWithFileName> <PathWithFileName>startup_stm32f407xx.s</PathWithFileName>
@ -427,7 +389,6 @@
<FileNumber>2</FileNumber> <FileNumber>2</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/main.c</PathWithFileName> <PathWithFileName>../Core/Src/main.c</PathWithFileName>
@ -440,7 +401,6 @@
<FileNumber>3</FileNumber> <FileNumber>3</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/gpio.c</PathWithFileName> <PathWithFileName>../Core/Src/gpio.c</PathWithFileName>
@ -453,7 +413,6 @@
<FileNumber>4</FileNumber> <FileNumber>4</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/adc.c</PathWithFileName> <PathWithFileName>../Core/Src/adc.c</PathWithFileName>
@ -466,7 +425,6 @@
<FileNumber>5</FileNumber> <FileNumber>5</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/dma.c</PathWithFileName> <PathWithFileName>../Core/Src/dma.c</PathWithFileName>
@ -479,7 +437,6 @@
<FileNumber>6</FileNumber> <FileNumber>6</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/spi.c</PathWithFileName> <PathWithFileName>../Core/Src/spi.c</PathWithFileName>
@ -492,7 +449,6 @@
<FileNumber>7</FileNumber> <FileNumber>7</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/tim.c</PathWithFileName> <PathWithFileName>../Core/Src/tim.c</PathWithFileName>
@ -505,7 +461,6 @@
<FileNumber>8</FileNumber> <FileNumber>8</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/stm32f4xx_it.c</PathWithFileName> <PathWithFileName>../Core/Src/stm32f4xx_it.c</PathWithFileName>
@ -518,7 +473,6 @@
<FileNumber>9</FileNumber> <FileNumber>9</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/usart.c</PathWithFileName> <PathWithFileName>../Core/Src/usart.c</PathWithFileName>
@ -531,7 +485,6 @@
<FileNumber>10</FileNumber> <FileNumber>10</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/stm32f4xx_hal_msp.c</PathWithFileName> <PathWithFileName>../Core/Src/stm32f4xx_hal_msp.c</PathWithFileName>
@ -552,7 +505,6 @@
<FileNumber>11</FileNumber> <FileNumber>11</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c</PathWithFileName>
@ -565,7 +517,6 @@
<FileNumber>12</FileNumber> <FileNumber>12</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c</PathWithFileName>
@ -578,7 +529,6 @@
<FileNumber>13</FileNumber> <FileNumber>13</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c</PathWithFileName>
@ -591,7 +541,6 @@
<FileNumber>14</FileNumber> <FileNumber>14</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c</PathWithFileName>
@ -604,7 +553,6 @@
<FileNumber>15</FileNumber> <FileNumber>15</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c</PathWithFileName>
@ -617,7 +565,6 @@
<FileNumber>16</FileNumber> <FileNumber>16</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c</PathWithFileName>
@ -630,7 +577,6 @@
<FileNumber>17</FileNumber> <FileNumber>17</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</PathWithFileName>
@ -643,7 +589,6 @@
<FileNumber>18</FileNumber> <FileNumber>18</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</PathWithFileName>
@ -656,7 +601,6 @@
<FileNumber>19</FileNumber> <FileNumber>19</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</PathWithFileName>
@ -669,7 +613,6 @@
<FileNumber>20</FileNumber> <FileNumber>20</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</PathWithFileName>
@ -682,7 +625,6 @@
<FileNumber>21</FileNumber> <FileNumber>21</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</PathWithFileName>
@ -695,7 +637,6 @@
<FileNumber>22</FileNumber> <FileNumber>22</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</PathWithFileName>
@ -708,7 +649,6 @@
<FileNumber>23</FileNumber> <FileNumber>23</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</PathWithFileName>
@ -721,7 +661,6 @@
<FileNumber>24</FileNumber> <FileNumber>24</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</PathWithFileName>
@ -734,7 +673,6 @@
<FileNumber>25</FileNumber> <FileNumber>25</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</PathWithFileName>
@ -747,7 +685,6 @@
<FileNumber>26</FileNumber> <FileNumber>26</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</PathWithFileName>
@ -760,7 +697,6 @@
<FileNumber>27</FileNumber> <FileNumber>27</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</PathWithFileName>
@ -773,7 +709,6 @@
<FileNumber>28</FileNumber> <FileNumber>28</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</PathWithFileName>
@ -786,7 +721,6 @@
<FileNumber>29</FileNumber> <FileNumber>29</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</PathWithFileName>
@ -799,7 +733,6 @@
<FileNumber>30</FileNumber> <FileNumber>30</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</PathWithFileName>
@ -812,7 +745,6 @@
<FileNumber>31</FileNumber> <FileNumber>31</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c</PathWithFileName>
@ -825,7 +757,6 @@
<FileNumber>32</FileNumber> <FileNumber>32</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName>
@ -838,7 +769,6 @@
<FileNumber>33</FileNumber> <FileNumber>33</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName>
@ -851,7 +781,6 @@
<FileNumber>34</FileNumber> <FileNumber>34</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c</PathWithFileName>
@ -864,7 +793,6 @@
<FileNumber>35</FileNumber> <FileNumber>35</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c</PathWithFileName>
@ -876,7 +804,7 @@
<Group> <Group>
<GroupName>Drivers/CMSIS</GroupName> <GroupName>Drivers/CMSIS</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -885,7 +813,6 @@
<FileNumber>36</FileNumber> <FileNumber>36</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/system_stm32f4xx.c</PathWithFileName> <PathWithFileName>../Core/Src/system_stm32f4xx.c</PathWithFileName>
@ -906,7 +833,6 @@
<FileNumber>37</FileNumber> <FileNumber>37</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Modbus\Src\modbus.c</PathWithFileName> <PathWithFileName>..\Modbus\Src\modbus.c</PathWithFileName>
@ -927,7 +853,6 @@
<FileNumber>38</FileNumber> <FileNumber>38</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\ads1256.c</PathWithFileName> <PathWithFileName>..\Board\Src\ads1256.c</PathWithFileName>
@ -940,7 +865,6 @@
<FileNumber>39</FileNumber> <FileNumber>39</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\hc595.c</PathWithFileName> <PathWithFileName>..\Board\Src\hc595.c</PathWithFileName>
@ -953,7 +877,6 @@
<FileNumber>40</FileNumber> <FileNumber>40</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\hc165.c</PathWithFileName> <PathWithFileName>..\Board\Src\hc165.c</PathWithFileName>
@ -966,7 +889,6 @@
<FileNumber>41</FileNumber> <FileNumber>41</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\dac7311.c</PathWithFileName> <PathWithFileName>..\Board\Src\dac7311.c</PathWithFileName>
@ -979,7 +901,6 @@
<FileNumber>42</FileNumber> <FileNumber>42</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\ms5803.c</PathWithFileName> <PathWithFileName>..\Board\Src\ms5803.c</PathWithFileName>
@ -992,7 +913,6 @@
<FileNumber>43</FileNumber> <FileNumber>43</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\laser.c</PathWithFileName> <PathWithFileName>..\Board\Src\laser.c</PathWithFileName>
@ -1005,7 +925,6 @@
<FileNumber>44</FileNumber> <FileNumber>44</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\mf.c</PathWithFileName> <PathWithFileName>..\Board\Src\mf.c</PathWithFileName>

View File

@ -10,12 +10,13 @@
<TargetName>FM_CCJY</TargetName> <TargetName>FM_CCJY</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F407VGTx</Device> <Device>STM32F407VGTx</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F4xx_DFP.2.12.0</PackID> <PackID>Keil.STM32F4xx_DFP.3.1.1</PackID>
<PackURL>http://www.keil.com/pack</PackURL> <PackURL>https://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000-0x2001BFFF) IRAM2(0x2001C000-0x2001FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4")</Cpu> <Cpu>IRAM(0x20000000-0x2001BFFF) IRAM2(0x2001C000-0x2001FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4")</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile> <StartupFile></StartupFile>
@ -84,6 +85,8 @@
<UserProg2Name></UserProg2Name> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopA1X>0</nStopA1X>
<nStopA2X>0</nStopA2X>
</AfterMake> </AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild> <SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString> <SVCSIdString></SVCSIdString>
@ -122,47 +125,6 @@
<HexOffset>0</HexOffset> <HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen> <Oh166RecLen>16</Oh166RecLen>
</OPTHX> </OPTHX>
<Simulator>
<UseSimulator>0</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>1</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
<RestoreSysVw>1</RestoreSysVw>
</Simulator>
<Target>
<UseTarget>1</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>1</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreSysVw>1</RestoreSysVw>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>6</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<Driver>Segger\JL2CM3.dll</Driver>
</TargetDlls>
</DebugOption> </DebugOption>
<Utilities> <Utilities>
<Flash1> <Flash1>
@ -221,12 +183,16 @@
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>2</RvdsVP> <RvdsVP>2</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>1</hadIRAM2> <hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
<useUlib>0</useUlib> <useUlib>0</useUlib>
<EndSel>0</EndSel> <EndSel>0</EndSel>
<uLtcg>0</uLtcg> <uLtcg>0</uLtcg>
<nSecure>0</nSecure>
<RoSelD>3</RoSelD> <RoSelD>3</RoSelD>
<RwSelD>3</RwSelD> <RwSelD>3</RwSelD>
<CodeSel>0</CodeSel> <CodeSel>0</CodeSel>
@ -360,7 +326,15 @@
<uThumb>0</uThumb> <uThumb>0</uThumb>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<uC99>1</uC99> <uC99>1</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO> <useXO>0</useXO>
<v6Lang>3</v6Lang>
<v6LangP>3</v6LangP>
<vShortEn>1</vShortEn>
<vShortWch>1</vShortWch>
<v6Lto>0</v6Lto>
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define>STM32F407xx,USE_FULL_LL_DRIVER,USE_HAL_DRIVER</Define> <Define>STM32F407xx,USE_FULL_LL_DRIVER,USE_HAL_DRIVER</Define>
@ -378,6 +352,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<ClangAsOpt>1</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -465,7 +440,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -513,7 +496,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -581,7 +572,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -634,7 +633,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -682,7 +689,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -730,7 +745,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -778,7 +801,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -826,7 +857,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -874,7 +913,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -922,7 +969,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -970,7 +1025,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1018,7 +1081,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1066,7 +1137,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1114,7 +1193,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1162,7 +1249,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1210,7 +1305,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1258,7 +1361,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1306,7 +1417,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1354,7 +1473,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1402,7 +1529,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1450,7 +1585,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1498,7 +1641,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1546,7 +1697,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1594,7 +1753,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1642,7 +1809,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1690,7 +1865,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1738,7 +1921,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@ -1786,7 +1977,15 @@
<uThumb>2</uThumb> <uThumb>2</uThumb>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<uC99>2</uC99> <uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO> <useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
/*
* UVISION generated file: DO NOT EDIT!
* Generated by: uVision version 5.40.0.0
*
* Project: 'FM_CCJY'
* Target: 'FM_CCJY'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
#endif /* RTE_COMPONENTS_H */

File diff suppressed because it is too large Load Diff

View File

@ -20,19 +20,19 @@
#define COIL_ADD_MIN 0x10 #define COIL_ADD_MIN 0x10
#define COIL_ADD_MAX 0x1F #define COIL_ADD_MAX 0x5F
#define MAX_COIL_NUM ((COIL_ADD_MAX) - (COIL_ADD_MIN) + 1) #define MAX_COIL_NUM ((COIL_ADD_MAX) - (COIL_ADD_MIN) + 1)
#define DIS_ADD_MIN 0x00 #define DIS_ADD_MIN 0x00
#define DIS_ADD_MAX 0x0F #define DIS_ADD_MAX 0x5F
#define MAX_DIS_NUM ((DIS_ADD_MAX) - (DIS_ADD_MIN) + 1) #define MAX_DIS_NUM ((DIS_ADD_MAX) - (DIS_ADD_MIN) + 1)
#define INPUT_REG_ADD_MIN 0x00 #define INPUT_REG_ADD_MIN 0x00
#define INPUT_REG_ADD_MAX 0x18 #define INPUT_REG_ADD_MAX 0x5F
#define MAX_INPUT_REG_NUM ((INPUT_REG_ADD_MAX) - (INPUT_REG_ADD_MIN) + 1) #define MAX_INPUT_REG_NUM ((INPUT_REG_ADD_MAX) - (INPUT_REG_ADD_MIN) + 1)
#define HOLD_REG_ADD_MIN 0x00 #define HOLD_REG_ADD_MIN 0x00
#define HOLD_REG_ADD_MAX 0x0F #define HOLD_REG_ADD_MAX 0x5F
#define MAX_HOLD_REG_NUM ((HOLD_REG_ADD_MAX) - (HOLD_REG_ADD_MIN) + 1) #define MAX_HOLD_REG_NUM ((HOLD_REG_ADD_MAX) - (HOLD_REG_ADD_MIN) + 1)

View File

@ -4,7 +4,7 @@
#define MODBUS_UART usart3 //将串口改成相应的变量即可例如用到UART1此处改为uart1 #define MODBUS_UART usart3 //将串口改成相应的变量即可例如用到UART1此处改为uart1
#define MODBUS_HUART USART3 //将串口改成相应的变量即可例如用到UART1此处改为huart1 #define MODBUS_HUART USART3 //将串口改成相应的变量即可例如用到UART1此处改为huart1
uint8_t CoilState[(MAX_DIS_NUM + 7) / 8] = {0x00};//线圈寄存器 uint8_t CoilState[(MAX_DIS_NUM + 7) / 8] = {0x00,0x00};//线圈寄存器
uint8_t DisState [(MAX_DIS_NUM + 7) / 8] = {0xAA};//离散量寄存器 uint8_t DisState [(MAX_DIS_NUM + 7) / 8] = {0xAA};//离散量寄存器
uint16_t InputReg[MAX_INPUT_REG_NUM] = {0xAA55,0x55AA};//输入寄存器 uint16_t InputReg[MAX_INPUT_REG_NUM] = {0xAA55,0x55AA};//输入寄存器
uint16_t HoldReg[MAX_HOLD_REG_NUM] = {0x0000, 0x0000,0x0000,0x0001};//保持寄存器 uint16_t HoldReg[MAX_HOLD_REG_NUM] = {0x0000, 0x0000,0x0000,0x0001};//保持寄存器
@ -75,7 +75,7 @@ void ReadCoilStateFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t wCoilStartAddr,wCoilNum,wTotalCoilNum,CRC16Temp; uint16_t wCoilStartAddr,wCoilNum,wTotalCoilNum,CRC16Temp;
uint8_t i,k,uCommIndexNum = 0,uByteCount,uCoilVal,uErrorCode,uExit = 0; uint8_t i,k,uCommIndexNum = 0,uByteCount,uCoilVal,uErrorCode,uExit = 0;
uint8_t upTxdbuf[50] = {0}; uint8_t upTxdbuf[200] = {0};
wCoilStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈起始地址 wCoilStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈起始地址
wCoilNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈个数 wCoilNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈个数
@ -169,7 +169,7 @@ void ReadDisInputStateFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t wDisStartAddr,wDisNum,wTotalDisNum,CRC16Temp; uint16_t wDisStartAddr,wDisNum,wTotalDisNum,CRC16Temp;
uint8_t i,k,uCommIndexNum = 0,uByteCount,uDisVal,uErrorCode,uExit = 0; uint8_t i,k,uCommIndexNum = 0,uByteCount,uDisVal,uErrorCode,uExit = 0;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
wDisStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取离散量起始地址 wDisStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取离散量起始地址
wDisNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取离散量个数 wDisNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取离散量个数
@ -261,7 +261,7 @@ void ReadHoldRegFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t wRegStartAdd, wRegLen, i, wRegValue, CRC16Temp; uint16_t wRegStartAdd, wRegLen, i, wRegValue, CRC16Temp;
uint8_t uErrorCode, uCommIndexNum = 0; uint8_t uErrorCode, uCommIndexNum = 0;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
if(upRxdbuf == NULL) return; if(upRxdbuf == NULL) return;
@ -336,7 +336,7 @@ void ReadInputRegFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t wRegStartAdd, wRegLen, i, wRegValue, CRC16Temp; uint16_t wRegStartAdd, wRegLen, i, wRegValue, CRC16Temp;
uint8_t uErrorCode, uCommIndexNum = 0; uint8_t uErrorCode, uCommIndexNum = 0;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
if(upRxdbuf == NULL) return; if(upRxdbuf == NULL) return;
@ -409,7 +409,7 @@ void WriteSingleRegFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t wRegAddr, wRegValue, CRC16Temp; uint16_t wRegAddr, wRegValue, CRC16Temp;
uint8_t uCommIndexNum = 0, uErrorCode; uint8_t uCommIndexNum = 0, uErrorCode;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
if(upRxdbuf == NULL) return; if(upRxdbuf == NULL) return;
@ -453,7 +453,7 @@ void WriteMultiRegFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t i, wRegStartAdd, wRegNum, CRC16Temp, uErrorCode, wRegValue; uint16_t i, wRegStartAdd, wRegNum, CRC16Temp, uErrorCode, wRegValue;
uint8_t uCommIndexNum = 0, uByteNum; uint8_t uCommIndexNum = 0, uByteNum;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
if(upRxdbuf == NULL) return; if(upRxdbuf == NULL) return;
@ -529,7 +529,7 @@ void WriteSingleCoilFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t wCoilAddr, wCoilValue, CRC16Temp; uint16_t wCoilAddr, wCoilValue, CRC16Temp;
uint8_t uCommIndexNum = 0, uErrorCode; uint8_t uCommIndexNum = 0, uErrorCode;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
wCoilAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈地址 wCoilAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈地址
wCoilValue = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈数据 wCoilValue = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈数据
@ -581,7 +581,7 @@ void WriteMultiCoilFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{ {
uint16_t wCoilStartAddr,wCoilNum,wCoilVal,wTotalCoilNum,CRC16Temp; uint16_t wCoilStartAddr,wCoilNum,wCoilVal,wTotalCoilNum,CRC16Temp;
uint8_t i,k,uCommIndexNum = 0,uByteNum,uByteVal,uExit = 0,uErrorCode; uint8_t i,k,uCommIndexNum = 0,uByteNum,uByteVal,uExit = 0,uErrorCode;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
wCoilStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈地址 wCoilStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈地址
wCoilNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈个数 wCoilNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈个数
@ -658,7 +658,7 @@ void MODBUS_ERRFunction(uint8_t uCmdCode, uint8_t uErrorCode)
{ {
uint8_t uCommIndexNum = 0; uint8_t uCommIndexNum = 0;
uint16_t CRC16Temp = 0; uint16_t CRC16Temp = 0;
uint8_t upTxdbuf[50]; uint8_t upTxdbuf[200];
upTxdbuf[uCommIndexNum ++] = LOCAL_ADDRESS; upTxdbuf[uCommIndexNum ++] = LOCAL_ADDRESS;
upTxdbuf[uCommIndexNum ++] = uCmdCode | 0x80; upTxdbuf[uCommIndexNum ++] = uCmdCode | 0x80;