Compare commits

..

No commits in common. "no2" and "main" have entirely different histories.
no2 ... main

14 changed files with 4450 additions and 2645 deletions

View File

@ -5,18 +5,18 @@
MX配置完成
*******************/
const T_HC595_PIN hc595 =
{
.sck_port = HC595_SRCLK_GPIO_Port,
.sck_pin = HC595_SRCLK_Pin, // 数据输入时钟线
{
.sck_port = HC595_SRCLK_GPIO_Port,
.sck_pin = HC595_SRCLK_Pin, //数据输入时钟线
.data_port = HC595_SER_GPIO_Port,
.data_pin = HC595_SER_Pin, // 数据线
.data_port = HC595_SER_GPIO_Port,
.data_pin = HC595_SER_Pin, //数据线
.rck_port = HC595_RCLK_GPIO_Port,
.rck_pin = HC595_RCLK_Pin, // 输出存储器锁存时钟线
.rck_port = HC595_RCLK_GPIO_Port,
.rck_pin = HC595_RCLK_Pin, //输出存储器锁存时钟线
.en_port = HC595_OE_GPIO_Port,
.en_pin = HC595_OE_Pin // 芯片使能
.en_port = HC595_OE_GPIO_Port,
.en_pin = HC595_OE_Pin //芯片使能
};
/******************************
@ -28,7 +28,7 @@ const T_HC595_PIN hc595 =
*******************************/
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);
}
@ -41,7 +41,7 @@ void hc595_init(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,156 +50,147 @@ void hc595_deInit(const T_HC595_PIN *pin)
pin-- data-- length--
1--QH=QGQF
2CLK->
RCK->
2CLK->
RCK->
HC595的特性8
8
9(SQH)HC595引脚14(SI)
8
9(SQH)HC595引脚14(SI)
*******************************/
void hc595_writeStr(const T_HC595_PIN *pin, uint8_t *data, uint16_t length)
{
uint16_t i;
uint8_t byte;
uint16_t i;
uint8_t byte;
data += length - 1; // 等价于data[length - 1]
while (length--)
{
byte = *data--; // 取数组data[length - 1]赋予byte然后再--data[length - 1]。
for (i = 0; i < 8; i++)
{
LL_GPIO_ResetOutputPin(pin->sck_port, pin->sck_pin); // clk = 0 保持缓存区状态
if (byte & 0x80) // 从高位开始发送
{
LL_GPIO_SetOutputPin(pin->data_port, pin->data_pin); // data=1
}
else
{
LL_GPIO_ResetOutputPin(pin->data_port, pin->data_pin); // data=0
}
byte <<= 1;
delay_tick(10); // us
LL_GPIO_SetOutputPin(pin->sck_port, pin->sck_pin); // clk = 1 存储数据至缓存区
delay_tick(10); // us
}
}
LL_GPIO_ResetOutputPin(pin->rck_port, pin->rck_pin);
delay_tick(10);
LL_GPIO_SetOutputPin(pin->rck_port, pin->rck_pin); // 发送缓存区内容
data += length - 1; //等价于data[length - 1]
while(length--)
{
byte = *data--;//取数组data[length - 1]赋予byte然后再--data[length - 1]。
for(i = 0; i < 8; i++)
{
LL_GPIO_ResetOutputPin(pin->sck_port, pin->sck_pin); //clk = 0 保持缓存区状态
if(byte & 0x80) //从高位开始发送
{
LL_GPIO_SetOutputPin(pin->data_port, pin->data_pin);//data=1
}
else
{
LL_GPIO_ResetOutputPin(pin->data_port, pin->data_pin);//data=0
}
byte <<= 1;
delay_tick(10);//us
LL_GPIO_SetOutputPin(pin->sck_port, pin->sck_pin); //clk = 1 存储数据至缓存区
delay_tick(10);//us
}
}
LL_GPIO_ResetOutputPin(pin->rck_port, pin->rck_pin);
delay_tick(10);
LL_GPIO_SetOutputPin(pin->rck_port, pin->rck_pin);//发送缓存区内容
}
uint8_t iostate[8] = {0};
void io_output(void)
{
// 电磁阀1置0
if ((CoilState[0] & 0x80))
//电磁阀1置0
if((CoilState[0] & 0x80))
{
LL_GPIO_ResetOutputPin(DO1_GPIO_Port, DO1_Pin);
LL_GPIO_ResetOutputPin(DO1_GPIO_Port,DO1_Pin);
iostate[7] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO1_GPIO_Port, DO1_Pin);
LL_GPIO_SetOutputPin(DO1_GPIO_Port,DO1_Pin);
iostate[7] = 1;
}
// 电磁阀2置0
if ((CoilState[0] & 0x40))
//电磁阀2置0
if((CoilState[0] & 0x40))
{
LL_GPIO_ResetOutputPin(DO2_GPIO_Port, DO2_Pin);
LL_GPIO_ResetOutputPin(DO2_GPIO_Port,DO2_Pin);
iostate[6] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO2_GPIO_Port, DO2_Pin);
LL_GPIO_SetOutputPin(DO2_GPIO_Port,DO2_Pin);
iostate[6] = 1;
}
// 电磁阀3置0
if ((CoilState[0] & 0x20))
//电磁阀3置0
if((CoilState[0] & 0x20))
{
LL_GPIO_ResetOutputPin(DO3_GPIO_Port, DO3_Pin);
LL_GPIO_ResetOutputPin(DO3_GPIO_Port,DO3_Pin);
iostate[5] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO3_GPIO_Port, DO3_Pin);
LL_GPIO_SetOutputPin(DO3_GPIO_Port,DO3_Pin);
iostate[5] = 1;
}
// 电磁阀4置0
if ((CoilState[0] & 0x10))
//电磁阀4置0
if((CoilState[0] & 0x10))
{
LL_GPIO_ResetOutputPin(DO4_GPIO_Port, DO4_Pin);
LL_GPIO_ResetOutputPin(DO4_GPIO_Port,DO4_Pin);
iostate[4] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO4_GPIO_Port, DO4_Pin);
LL_GPIO_SetOutputPin(DO4_GPIO_Port,DO4_Pin);
iostate[4] = 1;
}
// 电磁阀5置0
if ((CoilState[0] & 0x08))
//电磁阀5置0
if((CoilState[0] & 0x08))
{
LL_GPIO_ResetOutputPin(DO5_GPIO_Port, DO5_Pin);
LL_GPIO_ResetOutputPin(DO5_GPIO_Port,DO5_Pin);
iostate[3] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO5_GPIO_Port, DO5_Pin);
LL_GPIO_SetOutputPin(DO5_GPIO_Port,DO5_Pin);
iostate[3] = 1;
}
// 指示灯1绿置0
if ((CoilState[0] & 0x04))
//指示灯1绿置0
if((CoilState[0] & 0x04))
{
LL_GPIO_ResetOutputPin(DO6_GPIO_Port, DO6_Pin);
LL_GPIO_ResetOutputPin(DO6_GPIO_Port,DO6_Pin);
iostate[2] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO6_GPIO_Port, DO6_Pin);
LL_GPIO_SetOutputPin(DO6_GPIO_Port,DO6_Pin);
iostate[2] = 1;
}
// 指示灯2置0
if ((CoilState[0] & 0x02))
//指示灯2置0
if((CoilState[0] & 0x02))
{
LL_GPIO_ResetOutputPin(DO7_GPIO_Port, DO7_Pin);
LL_GPIO_ResetOutputPin(DO7_GPIO_Port,DO7_Pin);
iostate[1] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO7_GPIO_Port, DO7_Pin);
LL_GPIO_SetOutputPin(DO7_GPIO_Port,DO7_Pin);
iostate[1] = 1;
}
// 指示灯3声光置0
if ((CoilState[0] & 0x01))
//指示灯3声光置0
if((CoilState[0] & 0x01))
{
LL_GPIO_ResetOutputPin(DO8_GPIO_Port, DO8_Pin);
LL_GPIO_ResetOutputPin(DO8_GPIO_Port,DO8_Pin);
iostate[0] = 0;
}
else
{
LL_GPIO_SetOutputPin(DO8_GPIO_Port, DO8_Pin);
LL_GPIO_SetOutputPin(DO8_GPIO_Port,DO8_Pin);
iostate[0] = 1;
}
// 流量计调零
if (CoilState[1] & 0x01)
//流量计调零
if(CoilState[1] & 0x01)
{
flow_state = 0;
CoilState[1] &= 0xFE;
}
// 激光调零
if (CoilState[1] & 0x02)
//激光调零
if(CoilState[1] & 0x02)
{
laser_handle.state = 3;
laser_handle.state = LASER_OPEN_STATUS;
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 "laser.h"
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_TAIL = '\r';
@ -27,7 +27,7 @@ const char REQ_DISTANCE_READ[] = "RMD"; // 测定值读出
const char REQ_ZERO_STATUS[] = "RZS"; // 调零状态查询
const char REQ_ZERO_STATUS_WRITE[] = "WZS"; // 调零状态设置
// static uart_t *handle;
//static uart_t *handle;
static char request_buf[RS485_REC_LEN];
static uint8_t uart_buf[RS485_REC_LEN];
static uint8_t *response_ptr;
@ -36,7 +36,7 @@ laser_t laser_handle;
uint8_t res;
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)
{
@ -152,8 +152,8 @@ static void command_open_status_rsp(void)
response_ptr_offset++; // 跳过符号
osel_memcpy(status, response_ptr + response_ptr_offset, 5);
const char *cs = FRAME_TRUE;
const char *o_status = (char *)status;
if (!strncmp(o_status, (cs + 1), 5))
const char *o_status = (char *)status;
if(!strncmp(o_status, (cs + 1), 5))
{
laser_handle.open_status = true;
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)
{
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;
}
@ -205,7 +205,7 @@ static void command_distance_read_rsp(void)
f = -f;
}
if ((laser_handle.state != LASER_READY) && (laser_handle.state != LASER_ZERO_STATUS_CLOSE))
if (laser_handle.state != LASER_READY)
{
laser_handle.state = LASER_DISTANCE;
}
@ -218,8 +218,8 @@ static void command_zero_status_rsp(void)
response_ptr_offset++; // 跳过符号
osel_memcpy(status, response_ptr + response_ptr_offset, 5);
const char *cs = FRAME_TRUE;
const char *z_status = (char *)status;
if (!strncmp(z_status, (cs + 1), 5))
const char *z_status = (char *)status;
if(!strncmp(z_status, (cs + 1), 5))
{
laser_handle.zero_status = true;
}
@ -255,12 +255,12 @@ static void _laser_ready(void)
{
laser_handle.state = LASER_READY;
}
// REGISTER_CMD(WC, command_device_connect_rsp, "");
// REGISTER_CMD(RLR, command_open_status_rsp, "");
// REGISTER_CMD(WLR, command_open_status_write_rsp, "");
// REGISTER_CMD(RMD, command_distance_read_rsp, "");
// REGISTER_CMD(RZS, command_zero_status_rsp, "");
// REGISTER_CMD(WZS, command_zero_status_write_rsp, "");
//REGISTER_CMD(WC, command_device_connect_rsp, "");
//REGISTER_CMD(RLR, command_open_status_rsp, "");
//REGISTER_CMD(WLR, command_open_status_write_rsp, "");
//REGISTER_CMD(RMD, command_distance_read_rsp, "");
//REGISTER_CMD(RZS, command_zero_status_rsp, "");
//REGISTER_CMD(WZS, command_zero_status_write_rsp, "");
laser_event_t laser_event[] = {
{LASER_IDEL, command_device_connect_req},
@ -274,18 +274,18 @@ laser_event_t laser_event[] = {
void uart2_init(void)
{
/*接收配置*/
// 使能空闲中断
//使能空闲中断
LL_USART_EnableIT_IDLE(USART2);
/*发送配置*/
// 设置外设地址因为这个是DMA串口发送
LL_DMA_SetPeriphAddress(DMA1, LL_DMA_STREAM_6, (uint32_t)&USART2->DR);
// 使能DMA串口发送
//设置外设地址因为这个是DMA串口发送
LL_DMA_SetPeriphAddress(DMA1,LL_DMA_STREAM_6,(uint32_t)&USART2->DR);
//使能DMA串口发送
LL_USART_EnableDMAReq_TX(USART2);
// 使能DMA2发送完成中断
LL_DMA_EnableIT_TC(DMA1, LL_DMA_STREAM_6);
//使能DMA2发送完成中断
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)
@ -300,90 +300,94 @@ void laser_init(send_data_cb_t cb)
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帧所有的数据
if (LL_USART_IsActiveFlag_IDLE(USART2))
// 空闲中断表明接收到了1帧所有的数据
if(LL_USART_IsActiveFlag_IDLE(USART2))
{
// 清除空闲中断
//清除空闲中断
LL_USART_ClearFlag_IDLE(USART2);
laser_data_process(uart_buf, rx_count);
rx_count = 0;
laser_data_process(uart_buf,rx_count);
rx_count = 0;
}
// Rx非空中断表明接收到了一个字节
// Rx非空中断表明接收到了一个字节
// 读取Rx可自动清除中断标志位
if (LL_USART_IsActiveFlag_RXNE(USART2))
{
if(LL_USART_IsActiveFlag_RXNE(USART2))
{
// 如果数组长度大于设置的data最大长度直接停止接收
if (rx_count > 50)
rx_count = 0; // wait for the next data
uart_buf[rx_count] = LL_USART_ReceiveData8(USART2);
rx_count++;
if(rx_count > 50)
rx_count = 0; // wait for the next data
uart_buf[rx_count] = LL_USART_ReceiveData8(USART2);
rx_count ++;
}
}
// 根据cmd指令执行相应程序
//根据cmd指令执行相应程序
void cmd_parsing(char *str)
{
// if(strcmp(str, "WC") == 0)
if (!strncmp(str, REQ_DEVICE_ONLINE, 2))
command_device_connect_rsp();
else if (!strncmp(str, REQ_OPEN_STATUS, 3))
command_open_status_rsp();
else if (!strncmp(str, REQ_OPEN_STATUS_WRITE, 3))
command_open_status_write_rsp();
else if (!strncmp(str, REQ_DISTANCE_READ, 3))
command_distance_read_rsp();
else if (!strncmp(str, REQ_ZERO_STATUS, 3))
command_zero_status_rsp();
else if (!strncmp(str, REQ_ZERO_STATUS_WRITE, 3))
command_zero_status_write_rsp();
//if(strcmp(str, "WC") == 0)
if(!strncmp(str, REQ_DEVICE_ONLINE,2))
command_device_connect_rsp();
else if(!strncmp(str, REQ_OPEN_STATUS,3))
command_open_status_rsp();
else if(!strncmp(str, REQ_OPEN_STATUS_WRITE,3))
command_open_status_write_rsp();
else if(!strncmp(str, REQ_DISTANCE_READ,3))
command_distance_read_rsp();
else if(!strncmp(str, REQ_ZERO_STATUS,3))
command_zero_status_rsp();
else if(!strncmp(str, REQ_ZERO_STATUS_WRITE,3))
command_zero_status_write_rsp();
}
// 激光传感器任务流程
//激光传感器任务流程
void laser_task(void)
{
// command_zero_status_open_req();
if (laser_handle.state != LASER_READY)
{
if (it_50ms_falg == 1)
//command_zero_status_open_req();
if (laser_handle.state != LASER_READY)
{
if (laser_handle.state == LASER_IDEL)
command_device_connect_req();
else if (laser_handle.state == LASER_CONNECT)
command_open_status_req();
else if (laser_handle.state == LASER_OPEN_STATUS)
command_zero_status_close_req();
else if (laser_handle.state == LASER_ZERO_STATUS_CLOSE)
command_zero_status_open_req();
else if (laser_handle.state == LASER_ZERO_STATUS_OPEN)
command_distance_read_req();
else if (laser_handle.state == LASER_DISTANCE)
_laser_ready();
it_50ms_falg = 0;
if(it_500ms_falg == 1)
{
if(laser_handle.state == LASER_IDEL)
command_device_connect_req();
else if(laser_handle.state == LASER_CONNECT)
command_open_status_req();
else if(laser_handle.state == LASER_OPEN_STATUS)
command_zero_status_close_req();
else if(laser_handle.state == LASER_ZERO_STATUS_CLOSE)
command_zero_status_open_req();
else if(laser_handle.state == LASER_ZERO_STATUS_OPEN)
command_distance_read_req();
else if(laser_handle.state == LASER_DISTANCE)
_laser_ready();
it_500ms_falg = 0;
}
}
}
else
{
if (it_10ms_falg == 1)
{
laser_handle.command_distance_read_req();
if (laser_handle.distance >= 0)
{
InputReg[4] = laser_handle.distance;
}
else
{
int laser_num = -laser_handle.distance;
InputReg[4] = (uint16_t)((0xFFFF - laser_num) + 1);
}
it_10ms_falg = 0;
// laser_handle.connect = true;
}
}
// else
// {
// if(it_10ms_falg == 1)
// {
// laser_handle.command_distance_read_req();
// if(laser_handle.distance >= 0)
// {
// InputReg[4] = laser_handle.distance;
// }
// else
// {
// int laser_num = -laser_handle.distance;
//
// 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();
laser_init(usart2_laser_send);
io_output();
encode_init();
// encode_init();
}
char step_cnt = 0;
@ -85,8 +85,6 @@ uint16_t dis_temp = 0;//DI
int flow_state = 0;
int OVER_TIMES = 65535;
int encode_cnt = 0;
uint16_t press_array1[10] = {0};
uint16_t press_array2[10] = {0};
uint16_t press_array3[10] = {0};
@ -97,10 +95,8 @@ int a1 = 0,a2 = 0,a3 = 0;
void sys_task(void)
{
io_output();//实时更新IO输出状态
//ao1_set(8);
//AO(0-25mA)输出,每当寄存器内数值更新时输出电流同步更新
if(!(AO1_data == (float)(HoldReg[0]) / 1000))
{
AO1_data = (float)(HoldReg[0]) / 1000;
@ -128,6 +124,8 @@ void sys_task(void)
get_adc_value();//得到温度和AO反馈值
io_output();//实时更新IO输出状态
//DI数据存入离散量寄存器气泡检测
bub_flag = DisState[0] & 0x04;//获取气泡检测状态
dis_temp =_74hc165_read_byte();
@ -140,7 +138,7 @@ void sys_task(void)
HoldReg[2] = 65500;
}
InputReg[20] = LL_TIM_GetCounter(TIM4);
}
/* USER CODE END 0 */

View File

@ -1,20 +1,20 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32f4xx_it.c
* @brief Interrupt Service Routines.
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
******************************************************************************
* @file stm32f4xx_it.c
* @brief Interrupt Service Routines.
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@ -79,23 +79,23 @@ int it_1000ms_cnt = 0;
/* 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)
{
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1)
while (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)
{
/* 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)
{
/* 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)
{
/* 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)
{
/* 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)
{
/* 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)
{
/* 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)
{
/* 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)
{
/* 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)
{
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
if (LL_DMA_IsActiveFlag_TC3(DMA1))
{
// 清除Stream3 TC中断
LL_DMA_ClearFlag_TC3(DMA1);
// 关闭DMA1 Stream3
LL_DMA_DisableStream(DMA1, LL_DMA_STREAM_3);
}
if(LL_DMA_IsActiveFlag_TC3(DMA1))
{
//清除Stream3 TC中断
LL_DMA_ClearFlag_TC3(DMA1);
//关闭DMA1 Stream3
LL_DMA_DisableStream(DMA1,LL_DMA_STREAM_3);
}
/* USER CODE END DMA1_Stream3_IRQn 0 */
/* 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)
{
/* USER CODE BEGIN DMA1_Stream6_IRQn 0 */
if (LL_DMA_IsActiveFlag_TC6(DMA1))
{
LL_DMA_ClearFlag_TC6(DMA1); // 清除TC中断
LL_DMA_DisableStream(DMA1, LL_DMA_STREAM_6); // 关闭DMA
}
if(LL_DMA_IsActiveFlag_TC6(DMA1))
{
LL_DMA_ClearFlag_TC6(DMA1);//清除TC中断
LL_DMA_DisableStream(DMA1,LL_DMA_STREAM_6); //关闭DMA
}
/* USER CODE END DMA1_Stream6_IRQn 0 */
/* 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)
{
/* USER CODE BEGIN TIM3_IRQn 0 */
if (LL_TIM_IsActiveFlag_UPDATE(TIM3) == SET)
{
it_5ms_cnt++;
if (it_5ms_cnt > 4)
{
it_5ms_falg = 1;
it_5ms_cnt = 0;
}
it_10ms_cnt++;
if (it_10ms_cnt > 9)
{
// if (laser_handle.state == LASER_READY)
//{
// laser_handle.command_distance_read_req();
// if(laser_handle.distance >= 0)
//{
// InputReg[4] = laser_handle.distance;
//}
// else
//{
// int laser_num = -laser_handle.distance;
if(LL_TIM_IsActiveFlag_UPDATE(TIM3) == SET)
{
it_5ms_cnt++;
if(it_5ms_cnt > 4)
{
it_5ms_falg = 1;
it_5ms_cnt = 0;
}
it_10ms_cnt++;
if(it_10ms_cnt > 9)
{
if (laser_handle.state == LASER_READY)
{
laser_handle.command_distance_read_req();
if(laser_handle.distance >= 0)
{
InputReg[4] = laser_handle.distance;
}
else
{
int laser_num = -laser_handle.distance;
// InputReg[4] = (uint16_t)((0xFFFF - laser_num) + 1);
//}
//}
it_10ms_falg = 1;
it_10ms_cnt = 0;
}
it_25ms_cnt++;
if (it_25ms_cnt > 24)
{
it_25ms_falg = 1;
it_25ms_cnt = 0;
}
it_50ms_cnt++;
if (it_50ms_cnt > 49)
{
it_50ms_falg = 1;
it_50ms_cnt = 0;
}
it_100ms_cnt++;
if (it_100ms_cnt > 99)
{
it_100ms_cnt = 0;
if (flow_state == 6)
{
mf_read();
}
else
{
mf_clear();
}
}
it_300ms_cnt++;
if (it_300ms_cnt > 299)
{
it_300ms_falg = 1;
it_300ms_cnt = 0;
}
it_500ms_cnt++;
if (it_500ms_cnt > 499)
{
it_500ms_falg = 1;
it_500ms_cnt = 0;
}
it_1000ms_cnt++;
if (it_1000ms_cnt > 999)
{
it_1000ms_falg = 1;
it_1000ms_cnt = 0;
}
InputReg[4] = (uint16_t)((0xFFFF - laser_num) + 1);
}
}
//it_10ms_falg = 1;
it_10ms_cnt = 0;
}
it_25ms_cnt++;
if(it_25ms_cnt > 24)
{
it_25ms_falg = 1;
it_25ms_cnt = 0;
}
it_50ms_cnt++;
if(it_50ms_cnt > 49)
{
it_50ms_falg = 1;
it_50ms_cnt = 0;
}
it_100ms_cnt++;
if(it_100ms_cnt > 99)
{
it_100ms_cnt = 0;
if(flow_state == 6)
{
mf_read();
}
else
{
mf_clear();
}
}
it_300ms_cnt++;
if(it_300ms_cnt > 299)
{
it_300ms_falg = 1;
it_300ms_cnt = 0;
}
it_500ms_cnt++;
if(it_500ms_cnt > 499)
{
it_500ms_falg = 1;
it_500ms_cnt = 0;
}
it_1000ms_cnt++;
if(it_1000ms_cnt > 999)
{
it_1000ms_falg = 1;
it_1000ms_cnt = 0;
}
LL_TIM_ClearFlag_UPDATE(TIM3);
}
LL_TIM_ClearFlag_UPDATE(TIM3);
}
/* USER CODE END TIM3_IRQn 0 */
/* 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)
{
/* 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)
{
/* USER CODE BEGIN USART2_IRQn 0 */
laser_rx_cb();
laser_rx_cb();
/* USER CODE END USART2_IRQn 0 */
/* 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)
{
/* USER CODE BEGIN USART3_IRQn 0 */
modbus_callback();
modbus_callback();
/* USER CODE END USART3_IRQn 0 */
/* 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)
{
/* USER CODE BEGIN TIM7_IRQn 0 */
modbus_tim_callback();
modbus_tim_callback();
/* USER CODE END TIM7_IRQn 0 */
/* 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)
{
/* USER CODE BEGIN DMA2_Stream0_IRQn 0 */
if (LL_DMA_IsActiveFlag_TC0(DMA2))
{
ADC_TC_Flag = 1;
}
if(LL_DMA_IsActiveFlag_TC0(DMA2))
{
ADC_TC_Flag = 1;
}
/* USER CODE END DMA2_Stream0_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream0_IRQn 1 */
LL_DMA_ClearFlag_TC0(DMA2);
if (LL_DMA_IsActiveFlag_TE0(DMA2) != 0)
{
LL_DMA_ClearFlag_TE0(DMA2);
}
LL_DMA_ClearFlag_TC0(DMA2);
if (LL_DMA_IsActiveFlag_TE0(DMA2) != 0)
{
LL_DMA_ClearFlag_TE0(DMA2);
}
/* 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)
{
/* 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)
{
/* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
if (LL_DMA_IsActiveFlag_TC6(DMA2))
{
// 清除Stream3 TC中断
LL_DMA_ClearFlag_TC6(DMA2);
// 关闭DMA1 Stream3
LL_DMA_DisableStream(DMA2, LL_DMA_STREAM_6);
}
if(LL_DMA_IsActiveFlag_TC6(DMA2))
{
//清除Stream3 TC中断
LL_DMA_ClearFlag_TC6(DMA2);
//关闭DMA1 Stream3
LL_DMA_DisableStream(DMA2,LL_DMA_STREAM_6);
}
/* USER CODE END DMA2_Stream6_IRQn 0 */
/* 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)
{
/* USER CODE BEGIN USART6_IRQn 0 */
mf_rx_cb();
mf_rx_cb();
/* USER CODE END USART6_IRQn 0 */
/* USER CODE BEGIN USART6_IRQn 1 */

View File

@ -79,18 +79,18 @@ void MX_TIM4_Init(void)
PB7 ------> TIM4_CH2
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.Speed = LL_GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;//LL_GPIO_PULL_NO;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_2;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN TIM4_Init 1 */
/* USER CODE END TIM4_Init 1 */
TIM_InitStruct.Prescaler = 1;
TIM_InitStruct.Prescaler = 0;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 65535;
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_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_SetFilter(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1_N8);
LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1);
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_SetPrescaler(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_ICPSC_DIV1);
LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_IC_FILTER_FDIV1_N8);
LL_TIM_IC_SetFilter(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_IC_FILTER_FDIV1);
LL_TIM_IC_SetPolarity(TIM4, LL_TIM_CHANNEL_CH2, LL_TIM_IC_POLARITY_RISING);
LL_TIM_SetTriggerOutput(TIM4, LL_TIM_TRGO_RESET);
LL_TIM_DisableMasterSlaveMode(TIM4);
// 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_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_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_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);
/* USER CODE BEGIN TIM4_Init 2 */
/* USER CODE END TIM4_Init 2 */
@ -138,7 +138,7 @@ void MX_TIM7_Init(void)
/* USER CODE END TIM7_Init 1 */
TIM_InitStruct.Prescaler = 16799;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 19;
TIM_InitStruct.Autoreload = 9;
LL_TIM_Init(TIM7, &TIM_InitStruct);
LL_TIM_EnableARRPreload(TIM7);
LL_TIM_SetTriggerOutput(TIM7, LL_TIM_TRGO_RESET);
@ -155,11 +155,8 @@ void encode_init(void)
{
LL_TIM_CC_EnableChannel(TIM4,LL_TIM_CHANNEL_CH1);
LL_TIM_CC_EnableChannel(TIM4,LL_TIM_CHANNEL_CH2);
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_flag = 0;
usart3.tx_buf = usart3_tx_buf; //发送数据变量初始化
usart3.tx_buf = usart3_rx_buf; //发送数据变量初始化
usart3.tx_buf_cnt = USART3_TXSIZE;
usart3.tx_size = 0;

View File

@ -1,9 +0,0 @@
<?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>
<oExt>*.obj</oExt>
<lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc; *.md</tExt>
<tExt>*.txt; *.h; *.inc</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp</CppX>
<nMigrate>0</nMigrate>
@ -78,6 +78,68 @@
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<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>
<uSim>0</uSim>
<uTrg>1</uTrg>
@ -100,10 +162,7 @@
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>4</nTsel>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
@ -140,17 +199,17 @@
<SetRegEntry>
<Number>0</Number>
<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>
<Number>0</Number>
<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>
<Number>0</Number>
<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:STM32F407VGTx$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:STM32F407VG$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
@ -295,16 +354,6 @@
<WinNumber>1</WinNumber>
<ItemText>usart6_rx_buf</ItemText>
</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>
<Tracepoint>
<THDelay>0</THDelay>
@ -337,20 +386,8 @@
</DebugFlag>
<LintExecutable></LintExecutable>
<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>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
@ -369,6 +406,7 @@
<FileNumber>1</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>startup_stm32f407xx.s</PathWithFileName>
@ -389,6 +427,7 @@
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/main.c</PathWithFileName>
@ -401,6 +440,7 @@
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/gpio.c</PathWithFileName>
@ -413,6 +453,7 @@
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/adc.c</PathWithFileName>
@ -425,6 +466,7 @@
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/dma.c</PathWithFileName>
@ -437,6 +479,7 @@
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/spi.c</PathWithFileName>
@ -449,6 +492,7 @@
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/tim.c</PathWithFileName>
@ -461,6 +505,7 @@
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/stm32f4xx_it.c</PathWithFileName>
@ -473,6 +518,7 @@
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/usart.c</PathWithFileName>
@ -485,6 +531,7 @@
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/stm32f4xx_hal_msp.c</PathWithFileName>
@ -505,6 +552,7 @@
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_gpio.c</PathWithFileName>
@ -517,6 +565,7 @@
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_adc.c</PathWithFileName>
@ -529,6 +578,7 @@
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_dma.c</PathWithFileName>
@ -541,6 +591,7 @@
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_rcc.c</PathWithFileName>
@ -553,6 +604,7 @@
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_utils.c</PathWithFileName>
@ -565,6 +617,7 @@
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_exti.c</PathWithFileName>
@ -577,6 +630,7 @@
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</PathWithFileName>
@ -589,6 +643,7 @@
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</PathWithFileName>
@ -601,6 +656,7 @@
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</PathWithFileName>
@ -613,6 +669,7 @@
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</PathWithFileName>
@ -625,6 +682,7 @@
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</PathWithFileName>
@ -637,6 +695,7 @@
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</PathWithFileName>
@ -649,6 +708,7 @@
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</PathWithFileName>
@ -661,6 +721,7 @@
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</PathWithFileName>
@ -673,6 +734,7 @@
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</PathWithFileName>
@ -685,6 +747,7 @@
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</PathWithFileName>
@ -697,6 +760,7 @@
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</PathWithFileName>
@ -709,6 +773,7 @@
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</PathWithFileName>
@ -721,6 +786,7 @@
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</PathWithFileName>
@ -733,6 +799,7 @@
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</PathWithFileName>
@ -745,6 +812,7 @@
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_spi.c</PathWithFileName>
@ -757,6 +825,7 @@
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName>
@ -769,6 +838,7 @@
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName>
@ -781,6 +851,7 @@
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c</PathWithFileName>
@ -793,6 +864,7 @@
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usart.c</PathWithFileName>
@ -804,7 +876,7 @@
<Group>
<GroupName>Drivers/CMSIS</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -813,6 +885,7 @@
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/system_stm32f4xx.c</PathWithFileName>
@ -833,6 +906,7 @@
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Modbus\Src\modbus.c</PathWithFileName>
@ -853,6 +927,7 @@
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\ads1256.c</PathWithFileName>
@ -865,6 +940,7 @@
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\hc595.c</PathWithFileName>
@ -877,6 +953,7 @@
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\hc165.c</PathWithFileName>
@ -889,6 +966,7 @@
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\dac7311.c</PathWithFileName>
@ -901,6 +979,7 @@
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\ms5803.c</PathWithFileName>
@ -913,6 +992,7 @@
<FileNumber>43</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\laser.c</PathWithFileName>
@ -925,6 +1005,7 @@
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Board\Src\mf.c</PathWithFileName>

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +0,0 @@
/*
* 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_MAX 0x5F
#define COIL_ADD_MAX 0x1F
#define MAX_COIL_NUM ((COIL_ADD_MAX) - (COIL_ADD_MIN) + 1)
#define DIS_ADD_MIN 0x00
#define DIS_ADD_MAX 0x5F
#define DIS_ADD_MAX 0x0F
#define MAX_DIS_NUM ((DIS_ADD_MAX) - (DIS_ADD_MIN) + 1)
#define INPUT_REG_ADD_MIN 0x00
#define INPUT_REG_ADD_MAX 0x5F
#define INPUT_REG_ADD_MAX 0x18
#define MAX_INPUT_REG_NUM ((INPUT_REG_ADD_MAX) - (INPUT_REG_ADD_MIN) + 1)
#define HOLD_REG_ADD_MIN 0x00
#define HOLD_REG_ADD_MAX 0x5F
#define HOLD_REG_ADD_MAX 0x0F
#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_HUART USART3 //将串口改成相应的变量即可例如用到UART1此处改为huart1
uint8_t CoilState[(MAX_DIS_NUM + 7) / 8] = {0x00,0x00};//线圈寄存器
uint8_t CoilState[(MAX_DIS_NUM + 7) / 8] = {0x00};//线圈寄存器
uint8_t DisState [(MAX_DIS_NUM + 7) / 8] = {0xAA};//离散量寄存器
uint16_t InputReg[MAX_INPUT_REG_NUM] = {0xAA55,0x55AA};//输入寄存器
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;
uint8_t i,k,uCommIndexNum = 0,uByteCount,uCoilVal,uErrorCode,uExit = 0;
uint8_t upTxdbuf[200] = {0};
uint8_t upTxdbuf[50] = {0};
wCoilStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈起始地址
wCoilNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈个数
@ -169,7 +169,7 @@ void ReadDisInputStateFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{
uint16_t wDisStartAddr,wDisNum,wTotalDisNum,CRC16Temp;
uint8_t i,k,uCommIndexNum = 0,uByteCount,uDisVal,uErrorCode,uExit = 0;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
wDisStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取离散量起始地址
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;
uint8_t uErrorCode, uCommIndexNum = 0;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
if(upRxdbuf == NULL) return;
@ -336,7 +336,7 @@ void ReadInputRegFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{
uint16_t wRegStartAdd, wRegLen, i, wRegValue, CRC16Temp;
uint8_t uErrorCode, uCommIndexNum = 0;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
if(upRxdbuf == NULL) return;
@ -409,7 +409,7 @@ void WriteSingleRegFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{
uint16_t wRegAddr, wRegValue, CRC16Temp;
uint8_t uCommIndexNum = 0, uErrorCode;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
if(upRxdbuf == NULL) return;
@ -453,7 +453,7 @@ void WriteMultiRegFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{
uint16_t i, wRegStartAdd, wRegNum, CRC16Temp, uErrorCode, wRegValue;
uint8_t uCommIndexNum = 0, uByteNum;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
if(upRxdbuf == NULL) return;
@ -529,7 +529,7 @@ void WriteSingleCoilFUNC(uint8_t * upRxdbuf, uint16_t wRxdLen)
{
uint16_t wCoilAddr, wCoilValue, CRC16Temp;
uint8_t uCommIndexNum = 0, uErrorCode;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
wCoilAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈地址
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;
uint8_t i,k,uCommIndexNum = 0,uByteNum,uByteVal,uExit = 0,uErrorCode;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
wCoilStartAddr = MAKEWORD(upRxdbuf[1], upRxdbuf[0]); //获取线圈地址
wCoilNum = MAKEWORD(upRxdbuf[3], upRxdbuf[2]); //获取线圈个数
@ -658,7 +658,7 @@ void MODBUS_ERRFunction(uint8_t uCmdCode, uint8_t uErrorCode)
{
uint8_t uCommIndexNum = 0;
uint16_t CRC16Temp = 0;
uint8_t upTxdbuf[200];
uint8_t upTxdbuf[50];
upTxdbuf[uCommIndexNum ++] = LOCAL_ADDRESS;
upTxdbuf[uCommIndexNum ++] = uCmdCode | 0x80;