diff --git a/HARDWARE/ADC/adc.c b/HARDWARE/ADC/adc.c index 37298208e52c924ece3923b627458a390dd1f50e..c29948696dc25a6e41a9a135b2af9fce14dd16ac 100644 --- a/HARDWARE/ADC/adc.c +++ b/HARDWARE/ADC/adc.c @@ -5,6 +5,8 @@ #include "led.h" #include "valve.h" #include "string.h" +#include "ano_protocol.h" + #define ADC_CHANNELS_NUM 7 static uint16_t pres_get_t=40; static uint16_t AIR_DELDA_P = 370; @@ -197,6 +199,10 @@ void airPress_LED_task(void* pp) vTaskDelay(pres_get_t); continue; } + + send_adc_val(data); + vTaskDelay(5); + if(x_data[0]- data[0]> AIR_DELDA_P+offset[0]){ AirLED1=1; //压力差值达标说明负压足够 亮灯 }else{ diff --git a/HARDWARE/ANO/ano_protocol.c b/HARDWARE/ANO/ano_protocol.c new file mode 100644 index 0000000000000000000000000000000000000000..ea234972c048ad96a04d334f5a0394978109d96c --- /dev/null +++ b/HARDWARE/ANO/ano_protocol.c @@ -0,0 +1,84 @@ +#include "ano_protocol.h" + +xQueueHandle PacketTx_2_UsartTxQueue; + +void RX_Queue_init(void) +{ + PacketTx_2_UsartTxQueue = xQueueCreate(30, sizeof(ANO_t)); // 从任务UsartRxTask发送队列到ANOAnlTask + //队列创建xQueueCreate(消息队列的大小技即可以放多少个消息,每个消息的大小) + if(NULL != PacketTx_2_UsartTxQueue) + { + printf("任务间消息队列创建成功!\r\n"); + } + else + { + printf("任务间消息队列创建失败!\r\n"); + } +} + +/* +********************************************************************************************************* +* 函数名称: UsartSendPacket +* 功能说明: 把ano的数据放入队列,发送出去 +* 输入参数:无 +* 返回参数: 无 +********************************************************************************************************* +*/ +void usart_send_packet(const ANO_t *ano) +{ + xQueueSend(PacketTx_2_UsartTxQueue, ano, 0); +} + + + +/* +********************************************************************************************************* +* 函数名称: send_adc_val +* 功能说明: 向匿名上位机气压传感器数据 +* 输入参数:mag: +* 返回参数: 无 +********************************************************************************************************* +*/ +void send_adc_val(const uint16_t *adc) +{ + uint16_t adc1=adc[0]; + uint16_t adc2=adc[1]; + uint16_t adc3=adc[2]; + uint16_t adc4=adc[3]; + uint16_t adc5=adc[4]; + uint16_t adc6=adc[5]; + + uint8_t _cnt = 0, i, sc = 0; + ANO_t ano; + ano.head = 0xAA; + ano.d_addr = 0xAA; + ano.id = send_adc; //send_adc == 0x51 + ano.datalen = 12; + ano.data[_cnt++] = BYTE0(adc1); + ano.data[_cnt++] = BYTE1(adc1); + ano.data[_cnt++] = BYTE0(adc2); + ano.data[_cnt++] = BYTE1(adc2); + ano.data[_cnt++] = BYTE0(adc3); + ano.data[_cnt++] = BYTE1(adc3); + ano.data[_cnt++] = BYTE0(adc4); + ano.data[_cnt++] = BYTE1(adc4); + ano.data[_cnt++] = BYTE0(adc5); + ano.data[_cnt++] = BYTE1(adc5); + ano.data[_cnt++] = BYTE0(adc6); + ano.data[_cnt++] = BYTE1(adc6); + + /* 求和校验 */ + sc += ano.head; + sc += ano.d_addr; + sc += ano.id; + sc += ano.datalen; + for( i= 0; i +#include "system_stm32f4xx.h" +#include +#include "sys.h" +#include "usart.h" + +/*FreeRTOS相关头文件*/ +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" +#include "timers.h" +#include "semphr.h" + + +/*************************************************************** +* 功能码 ,匿名协议V7版 * +****************************************************************/ +typedef enum +{ +/**************************飞控相关信息类********************************/ + UP_Check = 0x00, + +/**************************飞控相关信息类********************************/ + UP_AccGry = 0x01, //惯性传感器数据 + UP_Mag = 0x02, //罗盘、气压、温度传感器 + UP_StateEulerAngles = 0x03, //欧拉角 + UP_FourElements = 0x04, //四元素 + UP_Alt = 0x05, //深度数据 + UP_Fly_mode = 0x06, //飞控运行模式 + UP_Speed = 0x07, //飞行速度数据 + UP_TargetAngles = 0x0A, //目标姿态数据 + UP_TargetSpeed = 0x0B, //目标速度数据 + UP_LogPrintf = 0xA0, //LOG信息输出——字符串 + UP_LogPrintfNum = 0xA1, //LOG信息输出——字符串+数字 + +/**************************飞控控制量输出类******************************/ + UP_PWM = 0x20, //PWM控制量 + UP_control_angles = 0x21, //姿态控制量 + +/*************************飞控接收控制指令类*****************************/ + UP_cal_rocker = 0x40, //遥控器摇杆数据 + UP_cal_button = 0x41, //遥控器按键数据 + +/****************************参数读写类帧********************************/ + UP_read_param = 0xE1, //参数读取命令 + UP_write_param = 0xE2, //参数写入、参数读取返回 + send_param_switch = 0xF0, //参数返回 + UP_Light_PWM = 0xF1, //灯光PWM值 + + send_adc = 0x51 //发送压力传感器值 +/****************************灵活格式帧********************************/ +/*功能码范围:0xF1-0xFA*/ + +}MessageID; + +typedef struct +{ + uint8_t head; //帧头 + uint8_t d_addr; //目标地址 + uint8_t id; //功能码 + uint8_t datalen; //数据长度 + uint8_t data[20]; //数据段 + uint8_t check_sum[2]; //和校验 +}ANO_t;//communication protocols //匿名协议结构体 + + +#define BYTE0(dwTemp) (*((char *)(&dwTemp) )) +#define BYTE1(dwTemp) (*((char *)(&dwTemp) + 1)) +#define BYTE2(dwTemp) (*((char *)(&dwTemp) + 2)) +#define BYTE3(dwTemp) (*((char *)(&dwTemp) + 3)) + + +void RX_Queue_init(void); +void usart_send_packet(const ANO_t *ano); +void send_adc_val(const uint16_t *adc); + +#endif diff --git a/HARDWARE/ANO/usartlink.c b/HARDWARE/ANO/usartlink.c new file mode 100644 index 0000000000000000000000000000000000000000..8296e03f7ff6b4f2a1bdfa80a039a4492f954fc7 --- /dev/null +++ b/HARDWARE/ANO/usartlink.c @@ -0,0 +1,159 @@ +#include +#include "usartlink.h" +#include "ano_protocol.h" +#include "usart4.h" + +//不同情况下使用哪个串口进行调试 +#define USART1_TX 0 +#define USART4_TX 0 +#define USART4_TX_dma 1 + + +static bool s_str2hex_state = false; +extern xQueueHandle PacketTx_2_UsartTxQueue; + + +static bool isUartDmaInitialized; +static DMA_InitTypeDef DMA_InitStructure; + + +/****************************dma传输配置开始*********************/ +/*通过DMA发送原始数据*/ +void uartslkSendDataDmaBlocking(uint32_t size, uint8_t* data) +{ + if (isUartDmaInitialized) + { + while(DMA_GetCmdStatus(UARTSLK_DMA_STREAM) != DISABLE); /*等待DMA空闲*/ + /* //memcpy(dmaBuffer, data, size); 复制数据到DMA缓冲区 */ + DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)data; + DMA_InitStructure.DMA_BufferSize = size; + + DMA_Init(UARTSLK_DMA_STREAM, &DMA_InitStructure); /*重新初始化DMA数据流*/ + DMA_ITConfig(UARTSLK_DMA_STREAM, DMA_IT_TC, ENABLE);/*开启DMA传输完成中断*/ + USART_DMACmd(UARTSLK_TYPE, USART_DMAReq_Tx, ENABLE);/* 使能USART DMA TX请求 */ + USART_ClearFlag(UARTSLK_TYPE, USART_FLAG_TC); /* 清除传输完成中断标志位 */ + DMA_Cmd(UARTSLK_DMA_STREAM, ENABLE); /* 使能DMA USART TX数据流 */ + + } +} + + +void uartslkDmaIsr(void) +{ + + DMA_ITConfig(UARTSLK_DMA_STREAM, DMA_IT_TC, DISABLE); + DMA_ClearITPendingBit(UARTSLK_DMA_STREAM, UARTSLK_DMA_IT_TCIF); + USART_DMACmd(UARTSLK_TYPE, USART_DMAReq_Tx, DISABLE); + DMA_Cmd(UARTSLK_DMA_STREAM, DISABLE); + +// remainingDMACount = 0; + +} + +/*配置串口DMA*/ +void uartslkDmaInit(void) +{ + NVIC_InitTypeDef NVIC_InitStructure; + + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); + + /* USART TX DMA 通道配置*/ + DMA_InitStructure.DMA_PeripheralBaseAddr = (u32) (&(UART4->DR)); + // DMA_InitStructure.DMA_Memory0BaseAddr = (u32)dmaBuffer; + DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; + DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; + DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; + DMA_InitStructure.DMA_BufferSize = 0; + DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; + DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; + DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; + DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; + DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; + DMA_InitStructure.DMA_Priority = DMA_Priority_High; + DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; + DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull ; + DMA_InitStructure.DMA_Channel = DMA_Channel_4; + + NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream4_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 7; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + + isUartDmaInitialized = true; +} + +void __attribute__((used)) DMA1_Stream4_IRQHandler(void) +{ + uartslkDmaIsr(); +} + +/****************************dma传输配置结束*********************/ +/*---------------------------End Line-------------------------------------*/ + + + +/* +********************************************************************************************************* +* 函数名称: UsartTxTask +* 功能说明: 创建串口发送任务 +* 输入参数:无 +* 返回参数: 无 +********************************************************************************************************* +*/ +void usart_tx_task(void *param) +{ + RX_Queue_init(); + uartslkDmaInit(); + ANO_t data_packet;//是ANO_t类型的结构体变量 + + uint8_t crcIdx; + while(1) + { + + xQueueReceive(PacketTx_2_UsartTxQueue, &data_packet, portMAX_DELAY);//任务接收消息并删除消息 + + crcIdx = data_packet.datalen; + data_packet.data[crcIdx] = data_packet.check_sum[0]; //将校验数字 前移 + data_packet.data[crcIdx+1] = data_packet.check_sum[1]; + data_packet.data[crcIdx+2] = 0xfe; + data_packet.data[crcIdx+3] = 0xff; //每个发送帧最后加两个标识字符 + + uartslkSendDataDmaBlocking(crcIdx +8, (uint8_t*)&data_packet); + vTaskDelay(5); + + } +} + +/* +********************************************************************************************************* +* 函数名称: Str2Hex +* 功能说明: 将字符串转为为对应的16进制。如AABB==>0xAA 0XBB +* 输入参数:pbDest:转换后的16进制数据存储地;pbSrc:字符串数据长度;nLen +* 返回参数: 无 +********************************************************************************************************* +*/ +void string_2_hex(unsigned char* pbDest, unsigned char* pbSrc, int nLen) +{ + char h1, h2; + unsigned char s1, s2; + int i; + + for (i = 0; i < nLen / 2; i++) + { + h1 = pbSrc[2 * i]; + h2 = pbSrc[2 * i + 1]; + + s1 = toupper(h1) - 0x30; //十六进制 0x30,dec十进制48, 图形 0 + if (s1 > 9) + s1 -= 7; + + s2 = toupper(h2) - 0x30; + if (s2 > 9) + s2 -= 7; + + pbDest[i] = s1 * 16 + s2; + } + s_str2hex_state = true; +} + diff --git a/HARDWARE/ANO/usartlink.h b/HARDWARE/ANO/usartlink.h new file mode 100644 index 0000000000000000000000000000000000000000..95e253d7c30a16a333dfa1f9be484e6d2720cf47 --- /dev/null +++ b/HARDWARE/ANO/usartlink.h @@ -0,0 +1,35 @@ +#ifndef __USARTLINK_H +#define __USARTLINK_H + +#include +#include +#include +#include +#include + +/*FreeRTOS相关头文件*/ +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" +#include "semphr.h" + +#define UARTSLK_TYPE UART4 + +#define UARTSLK_DMA_IRQ DMA1_Stream4_IRQn +#define UARTSLK_DMA_IT_TC DMA_IT_TC +#define UARTSLK_DMA_STREAM DMA1_Stream4 +#define UARTSLK_DMA_CH DMA_Channel_4 +#define UARTSLK_DMA_IT_TCIF DMA_IT_TCIF4 + +void usart_tx_task(void *param); +void string_2_hex(unsigned char* pbDest, unsigned char* pbSrc, int nLen); +void uartslkSendDataDmaBlocking(uint32_t size, uint8_t* data); +void uartslkDmaIsr(void); +void uartslkDmaInit(void); +void __attribute__((used)) DMA1_Stream6_IRQHandler(void); + + + +#endif + + diff --git a/SYSTEM/usart/usart4.c b/SYSTEM/usart/usart4.c new file mode 100644 index 0000000000000000000000000000000000000000..f7dfeba0e575fe36aa91754a516a085c8338b099 --- /dev/null +++ b/SYSTEM/usart/usart4.c @@ -0,0 +1,82 @@ +#include +#include "usart4.h" +#include "usartlink.h" + +//extern xQueueHandle UsartIRQQueue; +static u8 Usart4_TxBuffer[USART4_MAX_RECV_LEN]; +//static int32_t Usart4_TxCounter = 0; +static int32_t Usart4_count = 0; + +/* +********************************************************************************************************* +* 函数名称: uart4_Init +* 功能说明: 初始化串口4 +* 输入参数:bound:波特率 +* 返回参数: 无 +********************************************************************************************************* +*/ +void uart4_Init(u32 bound) +{ + GPIO_InitTypeDef GPIO_InitStructure; + USART_InitTypeDef USART_InitStructure; + NVIC_InitTypeDef NVIC_InitStructure; + + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE); + RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //复用推挽输出; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(GPIOC, &GPIO_InitStructure); //端口G; + + GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_USART6); //GPIOC10复用为USART4_TX + GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART6); //GPIOC11复用为USART4_RX + + USART_InitStructure.USART_BaudRate = bound; //波特率; + USART_InitStructure.USART_WordLength = USART_WordLength_8b; //数据位8位; + USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位1位; + USART_InitStructure.USART_Parity = USART_Parity_No ; //无校验位; + USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件流控; + USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发模式; + USART_Init(UART4, &USART_InitStructure);//配置串口参数; + + USART_Cmd(UART4, ENABLE); //使能串口; + + USART_ITConfig(UART4, USART_IT_RXNE, ENABLE); + + NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn; //中断号; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 12; //抢占优先级12; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //响应优先级0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); +} + + + +/* +********************************************************************************************************* +* 函数名称: Uart4_Put_Buf +* 功能说明: 串口4发送字符串 +* 输入参数:DataToSend:待发送字符首地址;data_num:字符串长度 +* 返回参数: 无 +********************************************************************************************************* +*/ +void Uart4_Put_Buf(unsigned char *DataToSend, int32_t data_num) +{ + int32_t i; + portENTER_CRITICAL(); + for(i=0; iCR1 & USART_CR1_TXEIE)) + { + USART_ITConfig(UART4, USART_IT_TXE, ENABLE); //打开发送中断 + } +} + +/*------------------------------------------- End Line ---------------------------------------------------*/ + diff --git a/SYSTEM/usart/usart4.h b/SYSTEM/usart/usart4.h new file mode 100644 index 0000000000000000000000000000000000000000..29ab8543d2d265967cb00a60ebcdd794308c6a66 --- /dev/null +++ b/SYSTEM/usart/usart4.h @@ -0,0 +1,24 @@ +#ifndef __UART4_H +#define __UART4_H + + +#include "stdio.h" +#include "sys.h" +#include "stm32f4xx_conf.h" + +/* FreeRTOS头文件 */ +#include "FreeRTOS.h" +#include "queue.h" +#include "task.h" +#include "semphr.h" + + +#define USART4_MAX_RECV_LEN 32 //最大接收缓存字节数 +#define USART4_MAX_SEND_LEN 32 //最大发送缓存字节数 + +void uart4_Init(u32 bound); +void Uart4_Put_Buf(unsigned char *DataToSend, int32_t data_num); +// void Uart4_Put_Char(unsigned char DataToSend); 作废这个函数 + +#endif + diff --git a/USER/USER.uvguix.jiangke1 b/USER/USER.uvguix.jiangke1 index 54f2c0a458b4f4ac35871aa3a6b97d92f00cf41f..dec528be5126ce4af92e3f4d32e1a42e5d7c5629 100644 --- a/USER/USER.uvguix.jiangke1 +++ b/USER/USER.uvguix.jiangke1 @@ -83,17 +83,17 @@ -1 - 360 - -49 - 1647 - 1095 + 50 + 110 + 1704 + 1107 0 - 1363 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000900000001000000010000005E433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C555345525C6D61696E2E6300000000066D61696E2E6300000000B3A6BE00FFFFFFFF65433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C48415244574152455C50574D5C70776D2E63000000000570776D2E6300000000A5C2D700FFFFFFFF67433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C48415244574152455C455854495C657874692E630000000006657874692E6300000000D9ADC200FFFFFFFF67433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C48415244574152455C455854495C657874692E680000000006657874692E6800000000F7B88600FFFFFFFF6E433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C4672656552544F535C696E636C7564655C4672656552544F532E68000000000A4672656552544F532E68000000009CC1B600FFFFFFFF74433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C4672656552544F535C696E636C7564655C4672656552544F53436F6E6669672E6800000000104672656552544F53436F6E6669672E6800000000BCA8E100FFFFFFFF70433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C53595354454D5C4C65747465725368656C6C5C7368656C6C5F70732E63000000000A7368656C6C5F70732E6300000000F0A0A100FFFFFFFF6D433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C46574C49425C696E635C73746D3332663478785F657874692E68000000001073746D3332663478785F657874692E6800000000BECEA100FFFFFFFF63433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266342D6D6173746572315C706162692D726F626F742D73746D333266345C4672656552544F535C7461736B732E6300000000077461736B732E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006E01000066000000AB06000059030000 + 739 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000030000000100000045433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C555345525C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFF5D433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C4C6F626F7453657269616C536572766F5C4C6F626F7453657269616C536572766F2E6300000000124C6F626F7453657269616C536572766F2E6300000000BCA8E100FFFFFFFF52433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C75736172746C696E6B2E63000000000B75736172746C696E6B2E6300000000F0A0A100FFFFFFFF55433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C616E6F5F70726F746F636F6C2E63000000000E616E6F5F70726F746F636F6C2E6300000000BECEA100FFFFFFFF55433A5C55736572735C6A69616E676B65315C4465736B746F705CC5C0B1DABBFAC6F7C8CB5C706162692D726F626F742D73746D333266345F315C48415244574152455C414E4F5C616E6F5F70726F746F636F6C2E68000000000E616E6F5F70726F746F636F6C2E6800000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006E010000660000008007000066030000 @@ -132,7 +132,7 @@ 0 16 - 03000000660000006701000029030000 + 03000000660000006701000036030000 16 @@ -152,7 +152,7 @@ 0 16 - 03000000660000006701000029030000 + 03000000660000006701000036030000 16 @@ -432,7 +432,7 @@ 0 16 - 03000000660000006701000029030000 + 03000000660000006701000036030000 16 @@ -452,7 +452,7 @@ 0 16 - 03000000660000006701000029030000 + 03000000660000006701000036030000 16 @@ -472,7 +472,7 @@ 0 16 - 000000005A030000AB060000D1030000 + 000000006703000080070000DE030000 16 @@ -512,7 +512,7 @@ 0 16 - 030000005D030000A8060000B8030000 + 030000006A0300007D070000C5030000 16 @@ -1112,7 +1112,7 @@ 0 16 - 03000000660000006701000029030000 + 03000000660000006701000036030000 16 @@ -1132,7 +1132,7 @@ 0 16 - 030000005D030000A8060000B8030000 + 030000006A0300007D070000C5030000 16 @@ -1152,7 +1152,7 @@ 0 16 - 030000005D030000A8060000B8030000 + 030000006A0300007D070000C5030000 16 @@ -1232,7 +1232,7 @@ 0 16 - 00000000D1030000AB060000E4030000 + 00000000DE03000080070000F1030000 16 @@ -1281,14 +1281,14 @@ 2619 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000DA000000F0040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000009401000066000000F0040000F1000000940100004F000000F0040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF5C0300004F0000006003000016020000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C0000018000400000000000006003000066000000F00400002D020000600300004F000000F0040000160200000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF6A0100004F0000006E010000420300000100000002000010040000000100000072FEFFFF12050000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000006A01000059030000000000004F0000006A010000420300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000002020000F00400000602000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000001D020000F0040000BC0200000000000006020000F0040000A502000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000060200007C020000A502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000042030000AB06000046030000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000005D030000AB060000E80300000000000046030000AB060000D10300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000DA000000F0040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000009401000066000000F0040000F1000000940100004F000000F0040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF5C0300004F0000006003000016020000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C0000018000400000000000006003000066000000F00400002D020000600300004F000000F0040000160200000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF6A0100004F0000006E0100004F0300000100000002000010040000000100000072FEFFFF12050000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000006A01000066030000000000004F0000006A0100004F0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000002020000F00400000602000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000001D020000F0040000BC0200000000000006020000F0040000A502000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000060200007C020000A502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000004F0300008007000053030000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000000000006A03000080070000F5030000000000005303000080070000DE0300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2438 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000019784576656E7447726F75705365744269747346726F6D4953529600000000000000140019784576656E7447726F75705365744269747346726F6D495352077475726E5F4C52047475726E0A675F6D6F746F7250574D036C65640A646565705F65787472610D4D4F544F525F4D494E5F50574D0D70446174612D3E7461726765740E5049445F4F55545055545F4D4158087069645F6D61786F105348454C4C5F4558504F52545F5641521070726F636573735F646565705F63746C0B646565705F7461726765741A675F72656D6F74655F636F6E74726F6C2E72785F646174612E4110675F72656D6F74655F636F6E74726F6C1C20675F72656D6F74655F636F6E74726F6C2E72785F646174612E52311C675F72656D6F74655F636F6E74726F6C2E72785F646174612E4C31200F70726F746F636F6C5F7061636B6574166765745F636F6D6D616E645F66726F6D5F71756575651A557361727452785F325F5061636B6574416E616C7951756575650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 2372 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000027538960000000000000014000275380373657019784576656E7447726F75705365744269747346726F6D495352077475726E5F4C52047475726E0A675F6D6F746F7250574D036C65640A646565705F65787472610D4D4F544F525F4D494E5F50574D0D70446174612D3E7461726765740E5049445F4F55545055545F4D4158087069645F6D61786F105348454C4C5F4558504F52545F5641521070726F636573735F646565705F63746C0B646565705F7461726765741A675F72656D6F74655F636F6E74726F6C2E72785F646174612E4110675F72656D6F74655F636F6E74726F6C1C20675F72656D6F74655F636F6E74726F6C2E72785F646174612E52311C675F72656D6F74655F636F6E74726F6C2E72785F646174612E4C31200F70726F746F636F6C5F7061636B65740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 1423 @@ -1333,8 +1333,8 @@ 0 - 1707 - 1067 + 1920 + 1080 @@ -1344,84 +1344,48 @@ 0 100 - 1 + 3 .\main.c 24 - 39 - 57 + 49 + 60 1 0 - ..\HARDWARE\PWM\pwm.c + ..\LobotSerialServo\LobotSerialServo.c 0 - 119 - 96 + 346 + 355 1 0 - ..\HARDWARE\EXTI\exti.c - 0 - 3 - 28 - 1 - - 0 - - - ..\HARDWARE\EXTI\exti.h - 0 - 1 - 15 - 1 - - 0 - - - ..\FreeRTOS\include\FreeRTOS.h - 17 - 48 - 56 + ..\HARDWARE\ANO\usartlink.c + 45 + 105 + 117 1 0 - ..\FreeRTOS\include\FreeRTOSConfig.h - 40 - 71 - 90 + ..\HARDWARE\ANO\ano_protocol.c + 33 + 55 + 81 1 0 - ..\SYSTEM\LetterShell\shell_ps.c + ..\HARDWARE\ANO\ano_protocol.h 0 - 51 - 62 - 1 - - 0 - - - ..\FWLIB\inc\stm32f4xx_exti.h - 18 - 100 - 112 - 1 - - 0 - - - ..\FreeRTOS\tasks.c - 0 - 1306 - 1333 + 50 + 68 1 0 @@ -1429,4 +1393,9 @@ + + ..\HARDWARE\ANO\usartlink.c 109 + ..\HARDWARE\ANO\usartlink.c 159 + + diff --git a/USER/USER.uvoptx b/USER/USER.uvoptx index f885c4b07e2315b501008b5f571298ebe04d5fe6..ff29f1fee4a2961346cdc985be304884d0c4bb7c 100644 --- a/USER/USER.uvoptx +++ b/USER/USER.uvoptx @@ -78,6 +78,53 @@ 1 18 + + + 0 + Getting Started (STM32F4-Discovery) + D:\LenovoSoftstore\Install\mdk5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\DM00037368.pdf + + + 1 + User Manual (STM32F4-Discovery) + D:\LenovoSoftstore\Install\mdk5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\DM00039084.pdf + + + 2 + User Manual (MCBSTM32F400) + D:\LenovoSoftstore\Install\mdk5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\mcbstm32f200.chm + + + 3 + Schematics (MCBSTM32F400) + D:\LenovoSoftstore\Install\mdk5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\mcbstm32f400-schematics.pdf + + + 4 + Bill of Materials (STM32F4-Discovery) + D:\LenovoSoftstore\Install\mdk5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\stm32f4discovery_bom.zip + + + 5 + Gerber Files (STM32F4-Discovery) + D:\LenovoSoftstore\Install\mdk5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\stm32f4discovery_gerber.zip + + + 6 + Schematics (STM32F4-Discovery) + D:\LenovoSoftstore\Install\mdk5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\stm32f4discovery_sch.zip + + + 7 + MCBSTM32F400 Evaluation Board Web Page (MCBSTM32F400) + http://www.keil.com/mcbstm32f400/ + + + 8 + STM32F4-Discovery Web Page (STM32F4-Discovery) + http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1199/PF252419 + + 0 1 @@ -100,10 +147,7 @@ 1 0 0 - 1 - 0 - 0 - 6 + 11 @@ -165,20 +209,8 @@ - 0 - 0 - 0 - - - - - - - - 1 - 0 0 2 10000000 @@ -197,6 +229,7 @@ 1 2 0 + 0 0 0 ..\CORE\startup_stm32f40_41xxx.s @@ -217,6 +250,7 @@ 2 1 0 + 0 0 0 ..\FWLIB\src\misc.c @@ -229,6 +263,7 @@ 3 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_adc.c @@ -241,6 +276,7 @@ 4 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_can.c @@ -253,6 +289,7 @@ 5 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_crc.c @@ -265,6 +302,7 @@ 6 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_cryp.c @@ -277,6 +315,7 @@ 7 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_cryp_aes.c @@ -289,6 +328,7 @@ 8 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_cryp_des.c @@ -301,6 +341,7 @@ 9 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_cryp_tdes.c @@ -313,6 +354,7 @@ 10 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_dac.c @@ -325,6 +367,7 @@ 11 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_dbgmcu.c @@ -337,6 +380,7 @@ 12 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_dcmi.c @@ -349,6 +393,7 @@ 13 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_dma.c @@ -361,6 +406,7 @@ 14 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_dma2d.c @@ -373,6 +419,7 @@ 15 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_exti.c @@ -385,6 +432,7 @@ 16 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_flash.c @@ -397,6 +445,7 @@ 17 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_flash_ramfunc.c @@ -409,6 +458,7 @@ 18 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_fsmc.c @@ -421,6 +471,7 @@ 19 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_gpio.c @@ -433,6 +484,7 @@ 20 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_hash.c @@ -445,6 +497,7 @@ 21 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_hash_md5.c @@ -457,6 +510,7 @@ 22 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_hash_sha1.c @@ -469,6 +523,7 @@ 23 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_i2c.c @@ -481,6 +536,7 @@ 24 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_iwdg.c @@ -493,6 +549,7 @@ 25 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_ltdc.c @@ -505,6 +562,7 @@ 26 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_pwr.c @@ -517,6 +575,7 @@ 27 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_rcc.c @@ -529,6 +588,7 @@ 28 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_rng.c @@ -541,6 +601,7 @@ 29 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_rtc.c @@ -553,6 +614,7 @@ 30 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_sai.c @@ -565,6 +627,7 @@ 31 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_sdio.c @@ -577,6 +640,7 @@ 32 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_spi.c @@ -589,6 +653,7 @@ 33 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_syscfg.c @@ -601,6 +666,7 @@ 34 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_tim.c @@ -613,6 +679,7 @@ 35 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_usart.c @@ -625,6 +692,7 @@ 36 1 0 + 0 0 0 ..\FWLIB\src\stm32f4xx_wwdg.c @@ -645,6 +713,7 @@ 37 1 0 + 0 0 0 .\main.c @@ -657,6 +726,7 @@ 38 1 0 + 0 0 0 .\stm32f4xx_it.c @@ -669,6 +739,7 @@ 39 1 0 + 0 0 0 .\system_stm32f4xx.c @@ -681,6 +752,7 @@ 40 1 0 + 0 0 0 .\paxing_ctrl.c @@ -701,6 +773,7 @@ 41 1 0 + 0 0 0 ..\SYSTEM\delay\delay.c @@ -713,6 +786,7 @@ 42 1 0 + 0 0 0 ..\SYSTEM\sys\sys.c @@ -725,6 +799,7 @@ 43 1 0 + 0 0 0 ..\SYSTEM\usart\usart.c @@ -737,6 +812,7 @@ 44 1 0 + 0 0 0 ..\SYSTEM\usart\usart2.c @@ -749,6 +825,7 @@ 45 1 0 + 0 0 0 ..\SYSTEM\usart\usart3.c @@ -756,19 +833,33 @@ 0 0 + + 4 + 46 + 1 + 0 + 0 + 0 + 0 + ..\SYSTEM\usart\usart4.c + usart4.c + 0 + 0 + HARDWARE - 0 + 1 0 0 0 5 - 46 + 47 1 0 + 0 0 0 ..\HARDWARE\LED\led.c @@ -778,9 +869,10 @@ 5 - 47 + 48 1 0 + 0 0 0 ..\HARDWARE\KEY\key.c @@ -790,9 +882,10 @@ 5 - 48 + 49 1 0 + 0 0 0 ..\HARDWARE\BEEP\beep.c @@ -802,9 +895,10 @@ 5 - 49 + 50 1 0 + 0 0 0 ..\HARDWARE\EXTI\exti.c @@ -814,9 +908,10 @@ 5 - 50 + 51 1 0 + 0 0 0 ..\HARDWARE\IWDG\iwdg.c @@ -826,9 +921,10 @@ 5 - 51 + 52 1 0 + 0 0 0 ..\HARDWARE\TIMER\timer.c @@ -838,9 +934,10 @@ 5 - 52 + 53 1 0 + 0 0 0 ..\HARDWARE\PWM\pwm.c @@ -850,9 +947,10 @@ 5 - 53 + 54 1 0 + 0 0 0 ..\HARDWARE\TPAD\tpad.c @@ -862,9 +960,10 @@ 5 - 54 + 55 1 0 + 0 0 0 ..\HARDWARE\ADC\adc.c @@ -874,9 +973,10 @@ 5 - 55 + 56 1 0 + 0 0 0 ..\HARDWARE\DAC\dac.c @@ -886,9 +986,10 @@ 5 - 56 + 57 1 0 + 0 0 0 ..\HARDWARE\DMA\dma.c @@ -898,9 +999,10 @@ 5 - 57 + 58 1 0 + 0 0 0 ..\HARDWARE\24CXX\24cxx.c @@ -910,9 +1012,10 @@ 5 - 58 + 59 1 0 + 0 0 0 ..\HARDWARE\IIC\iic.c @@ -922,9 +1025,10 @@ 5 - 59 + 60 1 0 + 0 0 0 ..\HARDWARE\SPI\spi.c @@ -934,9 +1038,10 @@ 5 - 60 + 61 1 0 + 0 0 0 ..\HARDWARE\W25QXX\w25qxx.c @@ -946,9 +1051,10 @@ 5 - 61 + 62 1 0 + 0 0 0 ..\LobotSerialServo\LobotSerialServo.c @@ -956,6 +1062,32 @@ 0 0 + + 5 + 63 + 1 + 0 + 0 + 0 + 0 + ..\HARDWARE\ANO\ano_protocol.c + ano_protocol.c + 0 + 0 + + + 5 + 64 + 1 + 0 + 0 + 0 + 0 + ..\HARDWARE\ANO\usartlink.c + usartlink.c + 0 + 0 + @@ -966,9 +1098,10 @@ 0 6 - 62 + 65 1 0 + 0 0 0 ..\FreeRTOS\croutine.c @@ -978,9 +1111,10 @@ 6 - 63 + 66 1 0 + 0 0 0 ..\FreeRTOS\event_groups.c @@ -990,9 +1124,10 @@ 6 - 64 + 67 1 0 + 0 0 0 ..\FreeRTOS\list.c @@ -1002,9 +1137,10 @@ 6 - 65 + 68 1 0 + 0 0 0 ..\FreeRTOS\queue.c @@ -1014,9 +1150,10 @@ 6 - 66 + 69 1 0 + 0 0 0 ..\FreeRTOS\stream_buffer.c @@ -1026,9 +1163,10 @@ 6 - 67 + 70 1 0 + 0 0 0 ..\FreeRTOS\tasks.c @@ -1038,9 +1176,10 @@ 6 - 68 + 71 1 0 + 0 0 0 ..\FreeRTOS\timers.c @@ -1058,9 +1197,10 @@ 0 7 - 69 + 72 1 0 + 0 0 0 ..\FreeRTOS\portable\MemMang\heap_4.c @@ -1070,9 +1210,10 @@ 7 - 70 + 73 1 0 + 0 0 0 ..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c @@ -1082,9 +1223,10 @@ 7 - 71 + 74 2 0 + 0 0 0 ..\FreeRTOS\HardFault_proc.S @@ -1094,9 +1236,10 @@ 7 - 72 + 75 1 0 + 0 0 0 ..\FreeRTOS\HFault_exception.c @@ -1114,9 +1257,10 @@ 0 8 - 73 + 76 1 0 + 0 0 0 ..\SYSTEM\LetterShell\log.c @@ -1126,9 +1270,10 @@ 8 - 74 + 77 1 0 + 0 0 0 ..\SYSTEM\LetterShell\shell.c @@ -1138,9 +1283,10 @@ 8 - 75 + 78 1 0 + 0 0 0 ..\SYSTEM\LetterShell\shell_cmd_group.c @@ -1150,9 +1296,10 @@ 8 - 76 + 79 1 0 + 0 0 0 ..\SYSTEM\LetterShell\shell_cmd_list.c @@ -1162,9 +1309,10 @@ 8 - 77 + 80 1 0 + 0 0 0 ..\SYSTEM\LetterShell\shell_companion.c @@ -1174,9 +1322,10 @@ 8 - 78 + 81 1 0 + 0 0 0 ..\SYSTEM\LetterShell\shell_ext.c @@ -1186,9 +1335,10 @@ 8 - 79 + 82 1 0 + 0 0 0 ..\SYSTEM\LetterShell\shell_port.c @@ -1198,9 +1348,10 @@ 8 - 80 + 83 1 0 + 0 0 0 ..\SYSTEM\LetterShell\shell_ps.c diff --git a/USER/USER.uvprojx b/USER/USER.uvprojx index 9dcad659feda7f07d72bb0fe7b89b49bdb00d5cf..cb519fc9b61b39c02a3c85fcb29e92764cfb53d0 100644 --- a/USER/USER.uvprojx +++ b/USER/USER.uvprojx @@ -10,14 +10,12 @@ Template 0x4 ARM-ADS - 5060750::V5.06 update 6 (build 750)::ARMCC - 0 STM32F407ZG STMicroelectronics - Keil.STM32F4xx_DFP.2.14.0 - http://www.keil.com/pack/ + Keil.STM32F4xx_DFP.1.0.8 + http://www.keil.com/pack IROM(0x08000000,0x100000) IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE @@ -86,8 +84,6 @@ 0 0 - 0 - 0 0 @@ -126,6 +122,47 @@ 0 16 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 11 + + + + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + @@ -184,14 +221,12 @@ 0 0 2 - 0 1 0 8 0 0 0 - 0 3 3 0 @@ -325,20 +360,12 @@ 0 0 1 - 0 0 - 1 - 1 - 1 - 1 - 0 - 0 - 0 STM32F40_41xxx,USE_STDPERIPH_DRIVER - ..\CORE;..\FWLIB\inc;..\USER;..\SYSTEM;..\SYSTEM\delay;..\SYSTEM\sys;..\SYSTEM\usart;..\HARDWARE\LED;..\HARDWARE\KEY;..\HARDWARE\BEEP;..\HARDWARE\EXTI;..\HARDWARE\IWDG;..\HARDWARE\TIMER;..\HARDWARE\PWM;..\HARDWARE\TPAD;..\HARDWARE\ADC;..\HARDWARE\DAC;..\HARDWARE\DMA;..\HARDWARE\24CXX;..\HARDWARE\IIC;..\HARDWARE\W25QXX;..\HARDWARE\SPI;..\FreeRTOS\include;..\FreeRTOS\portable\RVDS\ARM_CM4F;..\SYSTEM\LetterShell;..\LobotSerialServo + ..\CORE;..\FWLIB\inc;..\USER;..\SYSTEM;..\SYSTEM\delay;..\SYSTEM\sys;..\SYSTEM\usart;..\HARDWARE\LED;..\HARDWARE\KEY;..\HARDWARE\BEEP;..\HARDWARE\EXTI;..\HARDWARE\IWDG;..\HARDWARE\TIMER;..\HARDWARE\PWM;..\HARDWARE\TPAD;..\HARDWARE\ADC;..\HARDWARE\DAC;..\HARDWARE\DMA;..\HARDWARE\24CXX;..\HARDWARE\IIC;..\HARDWARE\W25QXX;..\HARDWARE\SPI;..\FreeRTOS\include;..\FreeRTOS\portable\RVDS\ARM_CM4F;..\SYSTEM\LetterShell;..\LobotSerialServo;..\HARDWARE\ANO @@ -351,7 +378,6 @@ 0 0 0 - 0 @@ -622,6 +648,11 @@ 1 ..\SYSTEM\usart\usart3.c + + usart4.c + 1 + ..\SYSTEM\usart\usart4.c + @@ -707,6 +738,16 @@ 1 ..\LobotSerialServo\LobotSerialServo.c + + ano_protocol.c + 1 + ..\HARDWARE\ANO\ano_protocol.c + + + usartlink.c + 1 + ..\HARDWARE\ANO\usartlink.c + @@ -823,10 +864,4 @@ - - - - - - diff --git a/USER/include.h b/USER/include.h index ae6e081f6035e066af4990ff07780a8a4ffc3f23..b4889225a2e391803db88b2e16654c02c17ea96e 100644 --- a/USER/include.h +++ b/USER/include.h @@ -6,6 +6,7 @@ #include "FreeRTOS.h" #include "task.h" #include "usart.h" +#include "usart4.h" #include "delay.h" #include "led.h" #include "key.h" @@ -32,6 +33,8 @@ + + #endif diff --git a/USER/main.c b/USER/main.c index a0164a848aa48c6bc3ae3f186f77aeaed2ef24dd..8385bc14e534a6c722e6527f5d14d72f695037dc 100644 --- a/USER/main.c +++ b/USER/main.c @@ -12,7 +12,6 @@ TaskHandle_t StartTask_Handler; // - extern void $Super$$main(void); void $Sub$$main() { @@ -27,6 +26,7 @@ int main() NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); delay_init(168); uart_init(115200); //初始化串口 + uart4_Init(115200); LED_Init(); KEY_Init(); Adc_Init(); @@ -64,6 +64,8 @@ void start_task(void * pvParameters) xTaskCreate(airPress_LED_task, "PressLED", 120, NULL, 17, NULL); xTaskCreate(paxing_ctrl_task, "pax-tsk", 220, NULL, 7, NULL); + + xTaskCreate(usart_tx_task, "tx-tsk", 140, NULL, 12, NULL); taskEXIT_CRITICAL(); //test_evgp = xEventGroupCreate(); diff --git a/USER/tasks_entry.h b/USER/tasks_entry.h index a6dac6da1029be86df236bee8074f6a9501cee94..37ab1336ebb6d506995d641a8fcc96f83737829f 100755 --- a/USER/tasks_entry.h +++ b/USER/tasks_entry.h @@ -17,7 +17,8 @@ extern void airPress_LED_task(void* pp); // 爬行动作全过程程监测及控制任务入口函数 extern void paxing_ctrl_task(void* pp); - +// adc压力值发送上位机任务入口函数 +extern void usart_tx_task(void *param);