20260324
This commit is contained in:
196
RTX5_20220316/Driver/usart/usart.c
Normal file
196
RTX5_20220316/Driver/usart/usart.c
Normal file
@ -0,0 +1,196 @@
|
||||
/*
|
||||
*****************************************************************
|
||||
ͷ<>ļ<EFBFBD>
|
||||
*****************************************************************
|
||||
*/
|
||||
#include "usart.h"
|
||||
#include "pbdata.h"
|
||||
/*
|
||||
************************************************************************************
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
************************************************************************************
|
||||
*/
|
||||
char USART1_TX_BUF[USART1_MAX_SEND_LEN]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART1_MAX_SEND_LEN<45>ֽ<EFBFBD>
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: UART_PutChar
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>ַ<EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>USARTx
|
||||
* <20><><EFBFBD><EFBFBD>Data
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void UART_PutChar(USART_TypeDef* USARTx, uint8_t Data)
|
||||
{
|
||||
USART_SendData(USARTx, Data);
|
||||
while(USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET){}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: UART_PutStr
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>USARTx
|
||||
* <20><><EFBFBD><EFBFBD>str
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void UART_PutStr (USART_TypeDef* USARTx, char *str)
|
||||
{
|
||||
while (0 != *str)
|
||||
{
|
||||
UART_PutChar(USARTx, *str);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: fputc()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: printf<74>ض<EFBFBD><D8B6><EFBFBD>
|
||||
* <09><> <20><> <20><>USART2
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
int fputc(int ch,FILE *f)
|
||||
{
|
||||
USART_ClearFlag(USART2,USART_FLAG_TC);
|
||||
USART_SendData(USART2,(u8)ch);
|
||||
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
return ch;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART1_Configuration()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>baund
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART1_Configuration(u32 baund)
|
||||
{
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
USART_SDI_DEinit();
|
||||
Enable_SDI_RS232=1;
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //ʹ<><CAB9>USART1
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //GPIOAʱ<41><CAB1>
|
||||
USART_DeInit(USART1); //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>1
|
||||
//Usart1 IO <20><><EFBFBD><EFBFBD>
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||
GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);
|
||||
GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_USART1);
|
||||
//Usart1 <20><><EFBFBD>ڼĴ<DABC><C4B4><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
USART_InitStructure.USART_BaudRate = baund;
|
||||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_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(USART1,&USART_InitStructure);
|
||||
|
||||
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//<2F><><EFBFBD><EFBFBD>USART1<54>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//Usart1 NVIC <20><><EFBFBD><EFBFBD>
|
||||
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//<2F><><EFBFBD><EFBFBD>1<EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨ<51><CDA8>ʹ<EFBFBD><CAB9>
|
||||
NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>VIC<49>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_Cmd(USART1,ENABLE);
|
||||
USART_ClearFlag(USART1,USART_FLAG_TC); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART_RS232_DEinit()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31>λ
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART_RS232_DEinit(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
USART_Cmd(USART1,DISABLE);
|
||||
USART_DeInit(USART1);
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //ʹ<><CAB9>PB<50>˿<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //<2F><><EFBFBD><EFBFBD>
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //<2F><><EFBFBD><EFBFBD>
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_400KHz; //IO<49><4F><EFBFBD>ٶ<EFBFBD>Ϊ400KHz
|
||||
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||
GPIO_SetBits(GPIOA,GPIO_Pin_9);
|
||||
GPIO_SetBits(GPIOA,GPIO_Pin_10);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART_SDI_DEinit()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ø<EFBFBD>λ
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART_SDI_DEinit(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
USART_Cmd(USART1,DISABLE);
|
||||
USART_DeInit(USART1);
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); //ʹ<><CAB9>PB<50>˿<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //<2F><><EFBFBD><EFBFBD>
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //<2F><><EFBFBD><EFBFBD>
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_400KHz; //IO<49><4F><EFBFBD>ٶ<EFBFBD>Ϊ400KHz
|
||||
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||
GPIO_SetBits(GPIOB,GPIO_Pin_6);
|
||||
GPIO_SetBits(GPIOB,GPIO_Pin_7);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART1_IRQHandler()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
* <09><> <20><> <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART1_SDI_RX_BUF[]
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART1_IRQHandler(void)
|
||||
{
|
||||
u8 ucCh;//<2F><>ʱ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (!Enable_SDI_RS232)
|
||||
{
|
||||
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
ucCh =USART_ReceiveData(USART1);
|
||||
ucCh=ucCh&0x7F;
|
||||
if((USART_SDI_RX_STA&(1<<15))==0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(USART_SDI_RX_STA<USART1_SDI_REC_LEN) //<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
USART1_SDI_RX_BUF[USART_SDI_RX_STA++]=ucCh; //<2F><>¼<EFBFBD><C2BC><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ֵ
|
||||
}else
|
||||
{
|
||||
USART_SDI_RX_STA|=1<<15; //ǿ<>Ʊ<EFBFBD><C6B1>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/***************************** END OF FILE *********************************/
|
||||
|
||||
17
RTX5_20220316/Driver/usart/usart.h
Normal file
17
RTX5_20220316/Driver/usart/usart.h
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef _usart_H
|
||||
#define _usart_H
|
||||
|
||||
#include "general_type.h"
|
||||
#include "stm32l1xx_usart.h"
|
||||
#define USART1_MAX_SEND_LEN 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
void USART1_Configuration(u32 baund);
|
||||
void UART_PutChar(USART_TypeDef* USARTx, uint8_t Data) ;
|
||||
void UART_PutStr (USART_TypeDef* USARTx, char *str) ;
|
||||
|
||||
//void TIM3_Set(unsigned char sta);
|
||||
void Usart1_ReceiveBuff_Clear(void);
|
||||
//void timer3_init(void);
|
||||
void USART_RS232_DEinit(void);
|
||||
void USART_SDI_DEinit(void);
|
||||
|
||||
#endif
|
||||
129
RTX5_20220316/Driver/usart/usart1_sdi.c
Normal file
129
RTX5_20220316/Driver/usart/usart1_sdi.c
Normal file
@ -0,0 +1,129 @@
|
||||
/*
|
||||
*****************************************************************
|
||||
ͷ<>ļ<EFBFBD>
|
||||
*****************************************************************
|
||||
*/
|
||||
#include "usart1_sdi.h"
|
||||
#include "bsp.h"
|
||||
|
||||
/*
|
||||
************************************************************************************
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
************************************************************************************
|
||||
*/
|
||||
char USART1_SDI_RX_BUF[USART1_SDI_REC_LEN]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART_REC_LEN<45><4E><EFBFBD>ֽ<EFBFBD>.
|
||||
char USART1_SDI_TX_BUF[100];
|
||||
//<2F><><EFBFBD><EFBFBD>״̬
|
||||
//bit15<31><35> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
|
||||
//bit14<31><34> <09><><EFBFBD>յ<EFBFBD>0x0d
|
||||
//bit13~0<><30> <09><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>Ŀ
|
||||
u16 USART_SDI_RX_STA=0; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART1_Configuration()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>baund
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART1_SDI_Configuration(u32 baund)
|
||||
{
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
Enable_SDI_RS232=0;
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //ʹ<><CAB9>USART1_SDI_SDI
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); //GPIOAʱ<41><CAB1>
|
||||
|
||||
//NVIC_Configuration();
|
||||
|
||||
USART_DeInit(USART1); //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>1
|
||||
|
||||
//USART1_SDI_SDI_TX PB.6--TX PB.7--RX
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||
|
||||
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_USART1);
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_USART1);
|
||||
|
||||
|
||||
USART_InitStructure.USART_BaudRate = baund;
|
||||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_1;
|
||||
USART_InitStructure.USART_Parity = USART_Parity_Even; //<2F><>У<EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>Ϊ7λ
|
||||
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
|
||||
USART_Init(USART1,&USART_InitStructure);
|
||||
|
||||
USART_Cmd(USART1,ENABLE);
|
||||
|
||||
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//<2F><><EFBFBD><EFBFBD>USART1_SDI_SDI<44>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//USART1_SDI_SDI NVIC <20><><EFBFBD><EFBFBD>
|
||||
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//<2F><><EFBFBD><EFBFBD>3<EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨ<51><CDA8>ʹ<EFBFBD><CAB9>
|
||||
NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>VIC<49>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
USART_ClearFlag(USART1,USART_FLAG_TC); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART1_SDI_CLR_RXBuf()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART1_SDI_CLR_RXBuf(void)
|
||||
{
|
||||
memset(USART1_SDI_RX_BUF, 0, USART1_SDI_REC_LEN);
|
||||
USART_SDI_RX_STA=0;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART1_SDI_SDI_CLR_TXBuf()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART1_SDI_SDI_CLR_TXBuf(void)
|
||||
{
|
||||
memset(USART1_SDI_TX_BUF, 0, 100);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: u1_printf()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><>
|
||||
* <20><> <20><> <20><>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void u1_printf(char* fmt,...)
|
||||
{
|
||||
u16 i,j;
|
||||
va_list ap;
|
||||
va_start(ap,fmt);
|
||||
vsprintf((char*)USART1_SDI_TX_BUF,fmt,ap);
|
||||
va_end(ap);
|
||||
i=strlen((const char*)USART1_SDI_TX_BUF); //<2F>˴η<CBB4><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
|
||||
for(j=0;j<i;j++) //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_SendData(USART1,USART1_SDI_TX_BUF[j]);
|
||||
}
|
||||
}
|
||||
|
||||
/***************************** END OF FILE *********************************/
|
||||
22
RTX5_20220316/Driver/usart/usart1_sdi.h
Normal file
22
RTX5_20220316/Driver/usart/usart1_sdi.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef _usart1_sdi_H
|
||||
#define _usart1_sdi_H
|
||||
|
||||
#include "bsp.h"
|
||||
#include "stm32l1xx_usart.h"
|
||||
|
||||
|
||||
#define USART1_SDI_REC_LEN 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD> 100
|
||||
|
||||
|
||||
extern char USART1_SDI_RX_BUF[USART1_SDI_REC_LEN]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART_REC_LEN<45><4E><EFBFBD>ֽ<EFBFBD>.ĩ<>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>з<EFBFBD>
|
||||
extern u16 USART_SDI_RX_STA; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
void USART1_SDI_Configuration(u32 baund);
|
||||
void USART1_SDI_CLR_RXBuf(void);
|
||||
|
||||
|
||||
|
||||
void u1_printf(char* fmt,...) ;
|
||||
#endif
|
||||
|
||||
529
RTX5_20220316/Driver/usart/usart2.c
Normal file
529
RTX5_20220316/Driver/usart/usart2.c
Normal file
@ -0,0 +1,529 @@
|
||||
/*
|
||||
*********************************************************************************
|
||||
ͷ<>ļ<EFBFBD>
|
||||
*********************************************************************************
|
||||
*/
|
||||
#include "usart2.h"
|
||||
#include "bsp.h"
|
||||
|
||||
/*
|
||||
************************************************************************************
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
************************************************************************************
|
||||
*/
|
||||
char USART2_RX_BUF[USART2_MAX_RECV_LEN]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART2_MAX_RECV_LEN<45><4E><EFBFBD>ֽ<EFBFBD>.
|
||||
u8 USART2_TX_BUF[USART2_MAX_SEND_LEN]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART2_MAX_SEND_LEN<45>ֽ<EFBFBD>
|
||||
vu16 USART2_RX_STA=0;
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART2_ReceiveBuff_Clear()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART2_RX_BUF
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART2_ReceiveBuff_Clear(void)
|
||||
{
|
||||
USART2_RX_STA=0;
|
||||
memset(USART2_RX_BUF,0,USART2_MAX_RECV_LEN);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART2_Configuration()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>baund
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART2_Configuration(u32 baund)
|
||||
{
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //ʹ<><CAB9>USART2
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //GPIOBʱ<42><CAB1>
|
||||
|
||||
USART_DeInit(USART2); //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>1
|
||||
|
||||
//USART2_TX PB.10 PB.11
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||
|
||||
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);
|
||||
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = baund;
|
||||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_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(USART2,&USART_InitStructure);
|
||||
|
||||
USART_Cmd(USART2,ENABLE);
|
||||
|
||||
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//<2F><><EFBFBD><EFBFBD>USART2<54>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//Usart1 NVIC <20><><EFBFBD><EFBFBD>
|
||||
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;//<2F><><EFBFBD><EFBFBD>3<EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨ<51><CDA8>ʹ<EFBFBD><CAB9>
|
||||
NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>VIC<49>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
USART_ClearFlag(USART2,USART_FLAG_TC); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: u3_printf()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><>
|
||||
* <20><> <20><> <20><>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void u2_printf(char* fmt,...)
|
||||
{
|
||||
u16 i,j;
|
||||
va_list ap;
|
||||
USART2_ReceiveBuff_Clear();
|
||||
va_start(ap,fmt);
|
||||
vsprintf((char*)USART2_TX_BUF,fmt,ap);
|
||||
va_end(ap);
|
||||
i=strlen((const char*)USART2_TX_BUF); //<2F>˴η<CBB4><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
|
||||
for(j=0;j<i;j++) //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_SendData(USART2,USART2_TX_BUF[j]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: timer2_init()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><>ʱ<EFBFBD><CAB1>2<EFBFBD><32><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void timer2_init(void)
|
||||
{
|
||||
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
|
||||
TIM_TimeBaseStructure.TIM_Period = 999;
|
||||
TIM_TimeBaseStructure.TIM_Prescaler = 3199;
|
||||
TIM_TimeBaseStructure.TIM_ClockDivision = 1;
|
||||
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
||||
|
||||
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
|
||||
|
||||
/* TIM IT enable */
|
||||
TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE);
|
||||
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
|
||||
/* TIM2 enable counter */
|
||||
TIM_Cmd(TIM2, DISABLE);
|
||||
|
||||
/* Enable the TIM2 Interrupt */
|
||||
|
||||
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
TIM_Cmd(TIM2, ENABLE); //ʹ<><CAB9>TIMx
|
||||
}
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: TIM2_Set()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><>ʱ<EFBFBD><CAB1>2<EFBFBD><32><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><>sta 0 1
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void TIM2_Set(unsigned char sta)
|
||||
{
|
||||
if(sta)
|
||||
{
|
||||
TIM_SetCounter(TIM2,0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TIM_Cmd(TIM2, ENABLE); //ʹ<><CAB9>TIMx
|
||||
}else TIM_Cmd(TIM2, DISABLE);//<2F>رն<D8B1>ʱ<EFBFBD><CAB1>2
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: TIM2_IRQHandler()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><>ʱ<EFBFBD><CAB1>2<EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void TIM2_IRQHandler(void)
|
||||
{
|
||||
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
|
||||
{
|
||||
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
|
||||
WKUP_PIN_Status=Key_Scan();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART2_IRQHandler()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
* <09><> <20><> <20><>USART2_RX_BUF[]
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART2_IRQHandler(void)
|
||||
{
|
||||
u8 res;
|
||||
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
res =USART_ReceiveData(USART2);
|
||||
if((USART2_RX_STA&(1<<15))==0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(USART2_RX_STA<(USART2_MAX_RECV_LEN-1)) //<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
USART2_RX_BUF[USART2_RX_STA++]=res; //<2F><>¼<EFBFBD><C2BC><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ֵ
|
||||
}else
|
||||
{
|
||||
USART2_RX_STA|=1<<15; //ǿ<>Ʊ<EFBFBD><C6B1>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART2_Recieve_Ide()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: Զ<><D4B6><EFBFBD>·<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ѯ
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART2_Recieve_Ide(void)
|
||||
{
|
||||
u8 i = 0;
|
||||
u16 temp_u16=0;
|
||||
char temp_datas[100]={'0'};
|
||||
char *recString;
|
||||
char *recStringNext;
|
||||
char adda;
|
||||
char year_head[3];
|
||||
char hhmmss[7]={'\0'},yymmdd[10]={'\0'};
|
||||
Init_Data Init_Data_Equipment_temp;
|
||||
Init_Data_Equipment_temp=Read_Equipment_Par();//<2F><>ȡ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
if( 1 )
|
||||
{
|
||||
/************<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>***********/
|
||||
if((strstr(USART2_RX_BUF, "parw-rst")!=NULL))//<2F><><EFBFBD>ջָ<D5BB><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
Write_Factory_Par();
|
||||
EEPROM_ReadBytes(140,&Par_store_flag,1);
|
||||
if(Par_store_flag)BC25_Senddata_mode(13,"parw-rst,OK,*");
|
||||
else BC25_Senddata_mode(13,"parw-rst,fail,*");
|
||||
}
|
||||
|
||||
/*д<><D0B4>******<2A>豸ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼʱ<D4BC>䡢<EFBFBD><E4A1A2><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>Զ<EFBFBD><D4B6>ʱ<EFBFBD><CAB1>*********/
|
||||
if((strstr(USART2_RX_BUF, "parw-1")!=NULL))//<2F>жϽ<D0B6><CFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if((strstr(USART2_RX_BUF, Init_Data_Equipment.Equipment_ID)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.Measure_Interval)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.appointment_time)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.measure_mode)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.Pub_Time)!=NULL))
|
||||
{
|
||||
Init_Data_Equipment.par_change=0;
|
||||
EEPROM_WriteBytes(185, 0,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||||
}
|
||||
memset(temp_datas,0,100);
|
||||
for (i = 0 ; i < 5 ; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
if ((recString = strstr(USART2_RX_BUF, "parw-1")) == NULL)
|
||||
;
|
||||
recString+=6;
|
||||
}
|
||||
else
|
||||
{
|
||||
recString++;
|
||||
if((recStringNext = strstr(recString, ",")) != NULL)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case 1: memset(Init_Data_Equipment.Equipment_ID,0,10);
|
||||
memcpy(Init_Data_Equipment.Equipment_ID, recString, recStringNext - recString);
|
||||
|
||||
case 2: memset(Init_Data_Equipment.Measure_Interval,0,5);
|
||||
memcpy(Init_Data_Equipment.Measure_Interval, recString, recStringNext - recString);
|
||||
temp_u16=hexToDec(Init_Data_Equipment.Measure_Interval);
|
||||
memset(Init_Data_Equipment.Measure_Interval,0,5);
|
||||
sprintf(Init_Data_Equipment.Measure_Interval,"%d",temp_u16);
|
||||
break; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case 3: memset(Init_Data_Equipment.appointment_time,0,appointment_time_len);
|
||||
memcpy(Init_Data_Equipment.appointment_time, recString, recStringNext - recString);break; //ԤԼʱ<D4BC><CAB1>
|
||||
case 4: memset(Init_Data_Equipment.measure_mode,0,1);
|
||||
memcpy(Init_Data_Equipment.measure_mode, recString, recStringNext - recString);break; //<2F><><EFBFBD><EFBFBD>ģʽ
|
||||
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
recString=recStringNext;
|
||||
if(i==4)
|
||||
{
|
||||
recString++;
|
||||
recStringNext=strstr(recString,",*");
|
||||
memset(Init_Data_Equipment.Pub_Time,0,Pub_Time_len);
|
||||
memcpy(Init_Data_Equipment.Pub_Time, recString, recStringNext - recString);
|
||||
temp_u16=hexToDec(Init_Data_Equipment.Pub_Time);//
|
||||
if(temp_u16<1)temp_u16=1;
|
||||
memset(Init_Data_Equipment.Pub_Time,0,Pub_Time_len);
|
||||
sprintf(Init_Data_Equipment.Pub_Time,"%d",temp_u16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(hexToDec(Init_Data_Equipment.Measure_Interval)<1)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>min
|
||||
sprintf(Init_Data_Equipment.Measure_Interval,"%s","00001");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С60S
|
||||
Write_Equipment_Par(Init_Data_Equipment);
|
||||
BC25_Senddata_mode(11,"parw-1,OK,*");
|
||||
if(strcmp(Init_Data_Equipment_temp.Equipment_ID,Init_Data_Equipment.Equipment_ID)||
|
||||
strcmp(Init_Data_Equipment_temp.Measure_Interval,Init_Data_Equipment.Measure_Interval)||
|
||||
strcmp(Init_Data_Equipment_temp.appointment_time,Init_Data_Equipment.appointment_time)||
|
||||
strcmp(Init_Data_Equipment_temp.measure_mode,Init_Data_Equipment.measure_mode)||
|
||||
strcmp(Init_Data_Equipment_temp.Pub_Time,Init_Data_Equipment.Pub_Time))
|
||||
{
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||||
}
|
||||
|
||||
if((Init_Data_Equipment.measure_mode[0]=='1') && (IsAppointmentRight()))
|
||||
{
|
||||
Measure_Ap_S();
|
||||
}
|
||||
else
|
||||
{
|
||||
Measure_Ap_E();
|
||||
}
|
||||
}
|
||||
/*д<><D0B4>******Զ<><D4B6>IP<49><50>Զ<EFBFBD><D4B6><EFBFBD>˿ڡ<CBBF>wifi<66><69><EFBFBD>ơ<EFBFBD>wifi<66><69><EFBFBD>롢wifi<66>˿<EFBFBD>*********/
|
||||
if((strstr(USART2_RX_BUF, "parw-2")!=NULL)&(strstr(USART2_RX_BUF, "\"")!=NULL))
|
||||
{
|
||||
/* <20>жϲ<D0B6><CFB2><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ϴ<EFBFBD>һ<EFBFBD><D2BB>*/
|
||||
if((strstr(USART2_RX_BUF, Init_Data_Equipment.Bc25_Ip)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.Bc25_Port)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.ESP8266_AP_SSIDs)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.ESP8266_AP_PWDs)!=NULL)&
|
||||
(strstr(USART2_RX_BUF, Init_Data_Equipment.ESP8266_AP_Ports)!=NULL))
|
||||
{
|
||||
Init_Data_Equipment.par_change=0;
|
||||
EEPROM_WriteBytes(185, 0,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||||
}
|
||||
for (i = 0 ; i < 5 ; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
if ((recString = strstr(USART2_RX_BUF, "parw-2")) != NULL)
|
||||
;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
recString+=6;
|
||||
}
|
||||
else
|
||||
{
|
||||
recString++;
|
||||
if((recStringNext = strstr(recString, ",")) != NULL)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case 1: memset(Init_Data_Equipment.Bc25_Ip,0,20);
|
||||
memcpy(Init_Data_Equipment.Bc25_Ip, recString, recStringNext - recString);break; //iot ip
|
||||
case 2: memset(Init_Data_Equipment.Bc25_Port,0,10);
|
||||
memcpy(Init_Data_Equipment.Bc25_Port, recString, recStringNext - recString);break; //iot port
|
||||
case 3: memset(Init_Data_Equipment.ESP8266_AP_SSIDs,0,20);
|
||||
memcpy(Init_Data_Equipment.ESP8266_AP_SSIDs, recString, recStringNext - recString);break; //wifi <20><><EFBFBD><EFBFBD>
|
||||
case 4: memset(Init_Data_Equipment.ESP8266_AP_PWDs,0,10);
|
||||
memcpy(Init_Data_Equipment.ESP8266_AP_PWDs, recString, recStringNext - recString);break; //wifi <20><><EFBFBD><EFBFBD>
|
||||
//case 5:memcpy(temp_datass, recString, 12);break; //<2F><>ȡϵͳʱ<CDB3><CAB1>
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
recString=recStringNext;
|
||||
}
|
||||
|
||||
}
|
||||
memcpy(Init_Data_Equipment.ESP8266_AP_Ports, recString+1, 4); //<2F><>ȡwifi port
|
||||
Write_Equipment_Par(Init_Data_Equipment);
|
||||
BC25_Senddata_mode(11,"parw-2,OK,*");
|
||||
if(strcmp(Init_Data_Equipment_temp.Bc25_Ip,Init_Data_Equipment.Bc25_Ip)||
|
||||
strcmp(Init_Data_Equipment_temp.Bc25_Port,Init_Data_Equipment.Bc25_Port)||
|
||||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_SSIDs,Init_Data_Equipment.ESP8266_AP_SSIDs)||
|
||||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_PWDs,Init_Data_Equipment.ESP8266_AP_PWDs)||
|
||||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_Ports,Init_Data_Equipment.ESP8266_AP_Ports))
|
||||
{
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||||
}
|
||||
}
|
||||
|
||||
/*д<><D0B4>******<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*********/
|
||||
if((strstr(USART2_RX_BUF, "parw-3")!=NULL))
|
||||
{
|
||||
if ((recString = strstr(USART2_RX_BUF, "parw-3,1")) != NULL)
|
||||
{
|
||||
if(TASKRUNSS.APPO_RUN|TASKRUNSS.PROS1_RUN)//<2F>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD><D5BC>
|
||||
{
|
||||
BC25_Senddata_mode(11,"parw-3,OK,*");
|
||||
}else
|
||||
{
|
||||
MYITStatus1.WKUP_MEA_WIFI=1;
|
||||
|
||||
BC25_Senddata_mode(11,"parw-3,OK,*");
|
||||
}
|
||||
}
|
||||
if ((recString = strstr(USART2_RX_BUF, "parw-3,0")) != NULL)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
/*<2A><><EFBFBD><EFBFBD>******ϵͳʱ<CDB3><CAB1>*********/
|
||||
if((recString=strstr(USART2_RX_BUF, "parw-4")) !=NULL)
|
||||
{
|
||||
memset(temp_datas,0,100);
|
||||
recString+=7;
|
||||
memcpy(temp_datas, recString, 13); //<2F><>ȡϵͳʱ<CDB3><CAB1>
|
||||
if(((temp_datas[4]-'0')*10+(temp_datas[5]-'0')*1)>12|
|
||||
((temp_datas[6]-'0')*10+(temp_datas[7]-'0')*1)>31|
|
||||
((temp_datas[8]-'0')*10+(temp_datas[9]-'0')*1)>23|
|
||||
((temp_datas[10]-'0')*10+(temp_datas[11]-'0')*1)>59|
|
||||
((temp_datas[12]-'0')*10+(temp_datas[13]-'0')*1)>59)
|
||||
{
|
||||
BC25_Senddata_mode(13,"parw-4,fail,*");
|
||||
|
||||
}else
|
||||
{
|
||||
SetRTC(
|
||||
((temp_datas[2]-'0')*10+(temp_datas[3]-'0')*1),
|
||||
((temp_datas[4]-'0')*10+(temp_datas[5]-'0')*1),
|
||||
((temp_datas[6]-'0')*10+(temp_datas[7]-'0')*1),
|
||||
((temp_datas[8]-'0')*10+(temp_datas[9]-'0')*1),
|
||||
((temp_datas[10]-'0')*10+(temp_datas[11]-'0')*1),
|
||||
((temp_datas[12]-'0')*10+(temp_datas[13]-'0')*1)
|
||||
);
|
||||
DS3231_Set(
|
||||
((temp_datas[2]-'0')*10+(temp_datas[3]-'0')*1),
|
||||
((temp_datas[4]-'0')*10+(temp_datas[5]-'0')*1),
|
||||
((temp_datas[6]-'0')*10+(temp_datas[7]-'0')*1),
|
||||
((temp_datas[8]-'0')*10+(temp_datas[9]-'0')*1),
|
||||
((temp_datas[10]-'0')*10+(temp_datas[11]-'0')*1),
|
||||
((temp_datas[12]-'0')*10+(temp_datas[13]-'0')*1)
|
||||
);
|
||||
EEPROM_WriteBytes(170,(u8*)temp_datas,2);
|
||||
|
||||
|
||||
if((RTC->CR)&0x100)//<2F>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
RTC_AlarmAConfig(get_pubidv());
|
||||
}
|
||||
if((RTC->CR)&0x200)//<2F>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
RtcWakeUpConfig(get_meaidv() - 1);
|
||||
}
|
||||
BC25_Senddata_mode(11,"parw-4,OK,*");
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, 0,1);
|
||||
}
|
||||
}
|
||||
|
||||
/*д<><D0B4>******<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>*********/
|
||||
if((recString=strstr(USART2_RX_BUF, "parw-5")) !=NULL) //parw-aAb,0A1
|
||||
{
|
||||
recString=strstr(recString, ",");
|
||||
recString++;
|
||||
recStringNext=recString+2;
|
||||
Sdi_chanegadd(recString[0],recStringNext[0]);
|
||||
adda=Sdi_Readone(recStringNext[0]);
|
||||
if(adda==0)
|
||||
{
|
||||
BC25_Senddata_mode(11,"parw-5,OK,*");
|
||||
//<2F><>ֵ<EFBFBD><D6B5>ͬ
|
||||
}else
|
||||
BC25_Senddata_mode(13,"parw-5,fail,*");
|
||||
|
||||
|
||||
}
|
||||
/*<2A><>ȡ******<2A>豸ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼʱ<D4BC>䡢<EFBFBD><E4A1A2><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>Զ<EFBFBD><D4B6>ʱ<EFBFBD><CAB1>*********/
|
||||
if((recString=strstr(USART2_RX_BUF, "parr-1")) !=NULL)
|
||||
{
|
||||
//&&(strstr(USART2_RX_BUF.Data_RX_BUF, "\r\n"))!=NULL)
|
||||
memset(temp_datas,0,100);
|
||||
|
||||
Init_Data_Equipment=Read_Equipment_Par();
|
||||
sprintf(temp_datas,"parr-1,%s,%d,%s,%s,%d,*",
|
||||
Init_Data_Equipment.Equipment_ID,
|
||||
hexToDec(Init_Data_Equipment.Measure_Interval),
|
||||
(Init_Data_Equipment.appointment_time),
|
||||
(Init_Data_Equipment.measure_mode),
|
||||
hexToDec(Init_Data_Equipment.Pub_Time)
|
||||
);
|
||||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||||
}
|
||||
|
||||
/*<2A><>ȡ******Զ<><D4B6>IP<49><50>Զ<EFBFBD><D4B6><EFBFBD>˿ڡ<CBBF>wifi<66><69><EFBFBD>ơ<EFBFBD>wifi<66><69><EFBFBD>롢wifi<66>˿<EFBFBD>*********/
|
||||
if(strstr(USART2_RX_BUF, "parr-2"))
|
||||
{
|
||||
memset(temp_datas,0,100);
|
||||
GetRTC(hhmmss,yymmdd);
|
||||
sprintf(temp_datas,"%s,%s,%s,%s,%s,%s,*",
|
||||
"parr-2",
|
||||
Init_Data_Equipment.Bc25_Ip,
|
||||
Init_Data_Equipment.Bc25_Port,
|
||||
Init_Data_Equipment.ESP8266_AP_SSIDs,
|
||||
Init_Data_Equipment.ESP8266_AP_PWDs,
|
||||
Init_Data_Equipment.ESP8266_AP_Ports
|
||||
);
|
||||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||||
|
||||
}
|
||||
|
||||
/*<2A><>ȡ******ϵͳʱ<CDB3><CAB1> <20><><EFBFBD><EFBFBD>*********/
|
||||
if(strstr(USART2_RX_BUF, "parr-4"))
|
||||
{
|
||||
memset(temp_datas,0,100);
|
||||
GetRTC(hhmmss,yymmdd);
|
||||
EEPROM_ReadBytes(170, (u8*)year_head,2);
|
||||
sprintf(temp_datas,"parr-4,%s%s %s,*",year_head,yymmdd,hhmmss);
|
||||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||||
}
|
||||
|
||||
/*<2A><>ȡ******<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ѯ*********/
|
||||
if((recString=strstr(USART2_RX_BUF, "parr-s?")) !=NULL)
|
||||
{
|
||||
memset(temp_datas,0,100);
|
||||
|
||||
Init_Data_Equipment=Read_Equipment_Par();
|
||||
sprintf(temp_datas,"parr-6,%d,*", hexToDec(Init_Data_Equipment.Equipment_ID));
|
||||
BC25_Senddata_mode(strlen(temp_datas),temp_datas);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/***************************** END OF FILE *********************************/
|
||||
24
RTX5_20220316/Driver/usart/usart2.h
Normal file
24
RTX5_20220316/Driver/usart/usart2.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef _usart2_H
|
||||
#define _usart2_H
|
||||
|
||||
#include "general_type.h"
|
||||
#include "stm32l1xx_usart.h"
|
||||
|
||||
#define USART2_MAX_RECV_LEN 400 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
#define USART2_MAX_SEND_LEN 400 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
#define USART2_RX_EN 1 //0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;1,<2C><><EFBFBD><EFBFBD>.
|
||||
|
||||
|
||||
|
||||
extern char USART2_RX_BUF[USART2_MAX_RECV_LEN]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART2_MAX_RECV_LEN<45>ֽ<EFBFBD>
|
||||
extern u8 USART2_TX_BUF[USART2_MAX_SEND_LEN]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART2_MAX_SEND_LEN<45>ֽ<EFBFBD>
|
||||
extern vu16 USART2_RX_STA; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
extern u8 BC25_QIURC;
|
||||
void USART2_Configuration(u32 baund);
|
||||
void u2_printf(char* fmt,...);
|
||||
void TIM2_Set(unsigned char sta);
|
||||
void timer2_init(void);
|
||||
void USART2_ReceiveBuff_Clear(void);
|
||||
void USART2_Recieve_Ide(void);
|
||||
#endif
|
||||
|
||||
138
RTX5_20220316/Driver/usart/usart3.c
Normal file
138
RTX5_20220316/Driver/usart/usart3.c
Normal file
@ -0,0 +1,138 @@
|
||||
/*
|
||||
*********************************************************************************
|
||||
ͷ<>ļ<EFBFBD>
|
||||
*********************************************************************************
|
||||
*/
|
||||
#include "usart3.h"
|
||||
|
||||
/*
|
||||
************************************************************************************
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
************************************************************************************
|
||||
*/
|
||||
u8 USART3_RX_BUF[USART3_MAX_RECV_LEN]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART3_MAX_RECV_LEN<45><4E><EFBFBD>ֽ<EFBFBD>.
|
||||
u8 USART3_TX_BUF[USART3_MAX_SEND_LEN]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART3_MAX_SEND_LEN<45>ֽ<EFBFBD>
|
||||
vu16 point1 = 0;
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART3_Configuration()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>baund
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART3_Configuration(u32 baund)
|
||||
{
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); //ʹ<><CAB9>USART3
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); //GPIOBʱ<42><CAB1>
|
||||
|
||||
//NVIC_Configuration();
|
||||
|
||||
USART_DeInit(USART3); //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>1
|
||||
|
||||
//USART3_TX PB.10 PB.11
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||
|
||||
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_USART3);
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_USART3);
|
||||
|
||||
|
||||
USART_InitStructure.USART_BaudRate = baund;
|
||||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_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(USART3,&USART_InitStructure);
|
||||
|
||||
USART_Cmd(USART3,ENABLE);
|
||||
|
||||
USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);//<2F><><EFBFBD><EFBFBD>USART3<54>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//Usart1 NVIC <20><><EFBFBD><EFBFBD>
|
||||
NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;//<2F><><EFBFBD><EFBFBD>3<EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨ<51><CDA8>ʹ<EFBFBD><CAB9>
|
||||
NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>VIC<49>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
USART_ClearFlag(USART3,USART_FLAG_TC); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART3_IRQHandler()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
* <09><> <20><> <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART1_SDI_RX_BUF[]
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART3_IRQHandler(void)
|
||||
{
|
||||
u8 Res;
|
||||
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
|
||||
{
|
||||
Res =USART_ReceiveData(USART3);//(USART1->DR); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
if(Res == 0x24)
|
||||
{
|
||||
point1 = 0;
|
||||
}
|
||||
|
||||
|
||||
USART3_RX_BUF[point1++] = Res;
|
||||
|
||||
if(USART3_RX_BUF[0] == '$' && USART3_RX_BUF[4] == 'M' && USART3_RX_BUF[5] == 'C') //ȷ<><C8B7><EFBFBD>Ƿ<EFBFBD><C7B7>յ<EFBFBD>"GPRMC/GNRMC"<22><>һ֡<D2BB><D6A1><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(Res == '\n')
|
||||
{
|
||||
memset(Save_Data.GPS_Buffer, 0, GPS_Buffer_Length); //<2F><><EFBFBD><EFBFBD>
|
||||
memcpy(Save_Data.GPS_Buffer, USART3_RX_BUF, point1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Save_Data.isGetData = true;
|
||||
point1 = 0;
|
||||
memset(USART3_RX_BUF, 0, USART3_MAX_RECV_LEN); //<2F><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
}
|
||||
if(point1 >= (USART3_MAX_RECV_LEN-1))
|
||||
{
|
||||
point1 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: u3_printf()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><>
|
||||
* <20><> <20><> <20><>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void u3_printf(char* fmt,...)
|
||||
{
|
||||
u16 i,j;
|
||||
va_list ap;
|
||||
va_start(ap,fmt);
|
||||
vsprintf((char*)USART3_TX_BUF,fmt,ap);
|
||||
va_end(ap);
|
||||
i=strlen((const char*)USART3_TX_BUF); //<2F>˴η<CBB4><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
|
||||
for(j=0;j<i;j++) //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_SendData(USART3,USART3_TX_BUF[j]);
|
||||
}
|
||||
}
|
||||
|
||||
/***************************** END OF FILE *********************************/
|
||||
22
RTX5_20220316/Driver/usart/usart3.h
Normal file
22
RTX5_20220316/Driver/usart/usart3.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef _usart3_H
|
||||
#define _usart3_H
|
||||
#include "bsp.h"
|
||||
#include "general_type.h"
|
||||
#include "stm32l1xx_usart.h"
|
||||
|
||||
#define USART3_MAX_RECV_LEN 256 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
#define USART3_MAX_SEND_LEN 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
extern unsigned char USART3_RX_BUF[USART3_MAX_RECV_LEN]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART3_MAX_RECV_LEN<45>ֽ<EFBFBD>
|
||||
extern unsigned char USART3_TX_BUF[USART3_MAX_SEND_LEN]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART3_MAX_SEND_LEN<45>ֽ<EFBFBD>
|
||||
|
||||
|
||||
void USART3_Configuration(u32 baund);
|
||||
void u3_printf(char* fmt,...);
|
||||
void Usart3_ReceiveBuff_Clear(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
481
RTX5_20220316/Driver/usart/usart4.c
Normal file
481
RTX5_20220316/Driver/usart/usart4.c
Normal file
@ -0,0 +1,481 @@
|
||||
/*
|
||||
*****************************************************************
|
||||
ͷ<>ļ<EFBFBD>
|
||||
*****************************************************************
|
||||
*/
|
||||
#include "usart4.h"
|
||||
|
||||
/*
|
||||
************************************************************************************
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
************************************************************************************
|
||||
*/
|
||||
char temp_data[100];
|
||||
//<2F><><EFBFBD>ڽ<EFBFBD><DABD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
u8 USART4_TX_BUF[USART4_MAX_SEND_LEN]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART4_Configuration()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>baund
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void USART4_Configuration(u32 baund)
|
||||
{
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); //ʹ<><CAB9>USART4
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE); //GPIOcʱ<63><CAB1>
|
||||
|
||||
USART_DeInit(UART4); //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>1
|
||||
|
||||
//USART1_TX PA.9
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_10;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOC, &GPIO_InitStructure);
|
||||
|
||||
//USART1_RX PA.10
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
|
||||
GPIO_Init(GPIOC, &GPIO_InitStructure);
|
||||
|
||||
GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_UART4);
|
||||
GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_UART4);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = baund;
|
||||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_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);
|
||||
|
||||
//Usart1 NVIC <20><><EFBFBD><EFBFBD>
|
||||
NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;//<2F><><EFBFBD><EFBFBD>1<EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=5;//<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨ<51><CDA8>ʹ<EFBFBD><CAB9>
|
||||
NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>VIC<49>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_ITConfig(UART4,USART_IT_RXNE,ENABLE);//<2F><><EFBFBD><EFBFBD>USART1<54>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>жϺͿ<CFBA><CDBF><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
USART_ClearFlag(UART4,USART_FLAG_TC); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
USART_ITConfig(UART4,USART_IT_IDLE,ENABLE);//<2F><><EFBFBD><EFBFBD>USART1<54>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>жϺͿ<CFBA><CDBF><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: Usart4_ReceiveBuff_Clear()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void Usart4_ReceiveBuff_Clear(void)
|
||||
{
|
||||
ESP8266_Fram_Record_Struct .InfBit .FramFinishFlag=0;
|
||||
ESP8266_Fram_Record_Struct .InfBit .FramLength=0;
|
||||
memset(ESP8266_Fram_Record_Struct.Data_RX_BUF,0,RX_BUF_MAX_LEN);
|
||||
//memset(USART4_TX_BUF,0,USART4_MAX_SEND_LEN);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: UART4_IRQHandler()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>4<EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void UART4_IRQHandler(void)
|
||||
{
|
||||
u8 ucCh;
|
||||
|
||||
if(USART_GetITStatus( UART4, USART_IT_RXNE ) != RESET )
|
||||
{
|
||||
ucCh = USART_ReceiveData( UART4 );
|
||||
|
||||
if(ESP8266_Fram_Record_Struct .InfBit .FramLength < ( RX_BUF_MAX_LEN - 1 ) )
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һλ<D2BB><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
ESP8266_Fram_Record_Struct .Data_RX_BUF[ ESP8266_Fram_Record_Struct .InfBit .FramLength ++ ] = ucCh;
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP8266_Fram_Record_Struct .InfBit .FramLength = 0;
|
||||
ESP8266_Fram_Record_Struct .InfBit .FramFinishFlag = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if(USART_GetITStatus( UART4, USART_FLAG_ORE ) != RESET )
|
||||
{
|
||||
USART_ReceiveData(UART4);
|
||||
USART_ClearFlag(UART4, USART_FLAG_ORE);
|
||||
}
|
||||
|
||||
if( USART_GetITStatus( UART4, USART_IT_IDLE ) != RESET ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>
|
||||
{
|
||||
ESP8266_Fram_Record_Struct .InfBit .FramFinishFlag = 1;
|
||||
ucCh = USART_ReceiveData( UART4 ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־λ<D6BE><CEBB><EFBFBD>ȶ<EFBFBD>USART_SR,Ȼ<><C8BB><EFBFBD><EFBFBD>USART_DR<44><52>
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: u4_printf()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><>
|
||||
* <20><> <20><> <20><>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void u4_printf(char* fmt,...)
|
||||
{
|
||||
u16 i,j;
|
||||
va_list ap;
|
||||
va_start(ap,fmt);
|
||||
vsprintf((char*)USART4_TX_BUF,fmt,ap);
|
||||
va_end(ap);
|
||||
i=strlen((const char*)USART4_TX_BUF); //<2F>˴η<CBB4><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
|
||||
for(j=0;j<i;j++) //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
while(USART_GetFlagStatus(UART4,USART_FLAG_TC)==RESET); //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_SendData(UART4,USART4_TX_BUF[j]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART4_Recieve_Ide()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: WIFI<46><49><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
u8 USART4_Recieve_Ide(void)
|
||||
{
|
||||
u8 i = 0;
|
||||
u16 temp_u16=0;
|
||||
char *recString;
|
||||
char *recStringNext;
|
||||
char adda;
|
||||
char year_head[3];
|
||||
char hhmmss[7]={'\0'},yymmdd[10]={'\0'};
|
||||
char test[100]={"\r\n+IPD,0,52:parw-2,\"111.198.24.44\",1883,licawifi,88888888,8080,\"lichao\",\"910517@lc\",\"bc25test\",*"};
|
||||
Init_Data Init_Data_Equipment_temp;
|
||||
Init_Data_Equipment_temp=Read_Equipment_Par();//<2F><>ȡ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
if( ESP8266_Fram_Record_Struct .InfBit .FramFinishFlag==1)
|
||||
{
|
||||
/************<2A>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>***********/
|
||||
if((strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-rst")!=NULL))//<2F><><EFBFBD>ջָ<D5BB><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
Write_Factory_Par();
|
||||
EEPROM_ReadBytes(140,&Par_store_flag,1);
|
||||
if(Par_store_flag)ESP8266_SendString(DISABLE,"parw-rst,OK,*",13,0);
|
||||
else ESP8266_SendString(DISABLE,"parw-rst,fail,*",15,0);
|
||||
|
||||
}
|
||||
|
||||
/*д<><D0B4>******<2A>豸ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼʱ<D4BC>䡢<EFBFBD><E4A1A2><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>Զ<EFBFBD><D4B6>ʱ<EFBFBD><CAB1>*********/
|
||||
if((strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-1")!=NULL))//<2F>жϽ<D0B6><CFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
memset(temp_data,0,100);
|
||||
for (i = 0 ; i < 5 ; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
if ((recString = strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-1")) == NULL)
|
||||
;
|
||||
recString+=6;
|
||||
}
|
||||
else
|
||||
{
|
||||
recString++;
|
||||
if((recStringNext = strstr(recString, ",")) != NULL)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case 1: memset(Init_Data_Equipment.Equipment_ID,0,10);
|
||||
memcpy(Init_Data_Equipment.Equipment_ID, recString, recStringNext - recString);
|
||||
|
||||
case 2: memset(Init_Data_Equipment.Measure_Interval,0,5);
|
||||
memcpy(Init_Data_Equipment.Measure_Interval, recString, recStringNext - recString);
|
||||
temp_u16=hexToDec(Init_Data_Equipment.Measure_Interval);
|
||||
memset(Init_Data_Equipment.Measure_Interval,0,5);
|
||||
sprintf(Init_Data_Equipment.Measure_Interval,"%d",temp_u16);
|
||||
break; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case 3: memset(Init_Data_Equipment.appointment_time,0,appointment_time_len);
|
||||
memcpy(Init_Data_Equipment.appointment_time, recString, recStringNext - recString);break; //ԤԼʱ<D4BC><CAB1>
|
||||
case 4: memset(Init_Data_Equipment.measure_mode,0,1);
|
||||
memcpy(Init_Data_Equipment.measure_mode, recString, recStringNext - recString);break; //<2F><><EFBFBD><EFBFBD>ģʽ
|
||||
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
recString=recStringNext;
|
||||
if(i==4)
|
||||
{
|
||||
recString++;
|
||||
recStringNext=strstr(recString,",*");
|
||||
memset(Init_Data_Equipment.Pub_Time,0,Pub_Time_len);
|
||||
memcpy(Init_Data_Equipment.Pub_Time, recString, recStringNext - recString);
|
||||
temp_u16=hexToDec(Init_Data_Equipment.Pub_Time);//
|
||||
if(temp_u16<1)temp_u16=1;
|
||||
memset(Init_Data_Equipment.Pub_Time,0,Pub_Time_len);
|
||||
sprintf(Init_Data_Equipment.Pub_Time,"%d",temp_u16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(hexToDec(Init_Data_Equipment.Measure_Interval)<1)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>min
|
||||
sprintf(Init_Data_Equipment.Measure_Interval,"%s","00001");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С60S
|
||||
Write_Equipment_Par(Init_Data_Equipment);
|
||||
ESP8266_SendString(DISABLE,"parw-1,OK,*",11,0);
|
||||
if(strcmp(Init_Data_Equipment_temp.Equipment_ID,Init_Data_Equipment.Equipment_ID)||
|
||||
strcmp(Init_Data_Equipment_temp.Measure_Interval,Init_Data_Equipment.Measure_Interval)||
|
||||
strcmp(Init_Data_Equipment_temp.appointment_time,Init_Data_Equipment.appointment_time)||
|
||||
strcmp(Init_Data_Equipment_temp.measure_mode,Init_Data_Equipment.measure_mode)||
|
||||
strcmp(Init_Data_Equipment_temp.Pub_Time,Init_Data_Equipment.Pub_Time))
|
||||
{
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||||
}
|
||||
|
||||
if((Init_Data_Equipment.measure_mode[0]=='1') && (IsAppointmentRight()))
|
||||
{
|
||||
Measure_Ap_S();
|
||||
}
|
||||
if(strcmp(Init_Data_Equipment_temp.measure_mode,Init_Data_Equipment.measure_mode)==0)//ģʽδ<CABD><CEB4>
|
||||
{
|
||||
|
||||
}
|
||||
else//ģʽ<C4A3>ı<EFBFBD>
|
||||
{
|
||||
if(Init_Data_Equipment.measure_mode[0]=='0')
|
||||
Measure_Ap_E();
|
||||
}
|
||||
}
|
||||
/*д<><D0B4>******Զ<><D4B6>IP<49><50>Զ<EFBFBD><D4B6><EFBFBD>˿ڡ<CBBF>wifi<66><69><EFBFBD>ơ<EFBFBD>wifi<66><69><EFBFBD>롢wifi<66>˿<EFBFBD>*********/
|
||||
if((strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-2")!=NULL)&(strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "\"")!=NULL))
|
||||
{
|
||||
//memcpy(ESP8266_Fram_Record_Struct.Data_RX_BUF,test,100);
|
||||
for (i = 0 ; i < 9 ; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
if ((recString = strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-2")) != NULL)
|
||||
;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
recString+=6;
|
||||
}
|
||||
else
|
||||
{
|
||||
recString++;
|
||||
if((recStringNext = strstr(recString, ",")) != NULL)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case 1: memset(Init_Data_Equipment.Bc25_Ip,0,20);
|
||||
memcpy(Init_Data_Equipment.Bc25_Ip, recString, recStringNext - recString);break; //iot ip
|
||||
case 2: memset(Init_Data_Equipment.Bc25_Port,0,10);
|
||||
memcpy(Init_Data_Equipment.Bc25_Port, recString, recStringNext - recString);break; //iot port
|
||||
case 3: memset(Init_Data_Equipment.ESP8266_AP_SSIDs,0,20);
|
||||
memcpy(Init_Data_Equipment.ESP8266_AP_SSIDs, recString, recStringNext - recString);break; //wifi <20><><EFBFBD><EFBFBD>
|
||||
case 4: memset(Init_Data_Equipment.ESP8266_AP_PWDs,0,10);
|
||||
memcpy(Init_Data_Equipment.ESP8266_AP_PWDs, recString, recStringNext - recString);break; //wifi <20><><EFBFBD><EFBFBD>
|
||||
|
||||
case 5: memset(Init_Data_Equipment.ESP8266_AP_Ports,0,10);
|
||||
memcpy(Init_Data_Equipment.ESP8266_AP_Ports, recString, recStringNext - recString);break; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
case 6: memset(Init_Data_Equipment.IOT_Username,0,20);
|
||||
memcpy(Init_Data_Equipment.IOT_Username, recString, recStringNext - recString);break; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case 7: memset(Init_Data_Equipment.IOT_Password,0,20);
|
||||
memcpy(Init_Data_Equipment.IOT_Password, recString, recStringNext - recString);break; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case 8: memset(Init_Data_Equipment.IOT_Theme_name,0,20);
|
||||
memcpy(Init_Data_Equipment.IOT_Theme_name, recString, recStringNext - recString);break; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
recString=recStringNext;
|
||||
}
|
||||
|
||||
}
|
||||
// memcpy(Init_Data_Equipment.ESP8266_AP_Ports, recString+1, 4); //<2F><>ȡwifi port
|
||||
Write_Equipment_Par(Init_Data_Equipment);
|
||||
ESP8266_SendString(DISABLE,"parw-2,OK,*",11,0);
|
||||
if(strcmp(Init_Data_Equipment_temp.Bc25_Ip,Init_Data_Equipment.Bc25_Ip)||
|
||||
strcmp(Init_Data_Equipment_temp.Bc25_Port,Init_Data_Equipment.Bc25_Port)||
|
||||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_SSIDs,Init_Data_Equipment.ESP8266_AP_SSIDs)||
|
||||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_PWDs,Init_Data_Equipment.ESP8266_AP_PWDs)||
|
||||
strcmp(Init_Data_Equipment_temp.ESP8266_AP_Ports,Init_Data_Equipment.ESP8266_AP_Ports)||
|
||||
strcmp(Init_Data_Equipment_temp.IOT_Username,Init_Data_Equipment.IOT_Username)||
|
||||
strcmp(Init_Data_Equipment_temp.IOT_Password,Init_Data_Equipment.IOT_Password)||
|
||||
strcmp(Init_Data_Equipment_temp.IOT_Theme_name,Init_Data_Equipment.IOT_Theme_name)
|
||||
)
|
||||
|
||||
{
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, &Init_Data_Equipment.par_change,1);
|
||||
}
|
||||
}
|
||||
|
||||
/*д<><D0B4>******<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*********/
|
||||
if((strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-3")!=NULL))
|
||||
{
|
||||
if ((recString = strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-3,1")) != NULL)
|
||||
{
|
||||
//u5_printf("TASKRUNSS.Test_RUN :%d\r\n",TASKRUNSS.Test_RUN);
|
||||
if(TASKRUNSS.Test_RUN)//<2F>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD><D5BC>
|
||||
{
|
||||
//ESP8266_SendString(DISABLE,"parw-3,busy\r\n",13,0);
|
||||
ESP8266_SendString(DISABLE,"parw-3,OK,*",11,0);
|
||||
}else
|
||||
{
|
||||
//TASKRUNSS.Test_RUN=1;
|
||||
MYITStatus1.WKUP_Test_WIFI=1;
|
||||
//
|
||||
ESP8266_SendString(DISABLE,"parw-3,OK,*",11,0);
|
||||
}
|
||||
MYITStatus1.WKUP_Test_WIFI=1;
|
||||
}
|
||||
if ((recString = strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-3,0")) != NULL)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>չ
|
||||
}
|
||||
|
||||
}
|
||||
/*<2A><><EFBFBD><EFBFBD>******ϵͳʱ<CDB3><CAB1>*********/
|
||||
if((recString=strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-4")) !=NULL)
|
||||
{
|
||||
memset(temp_data,0,100);
|
||||
recString+=7;
|
||||
memcpy(temp_data, recString, 13); //<2F><>ȡϵͳʱ<CDB3><CAB1>
|
||||
if(((temp_data[4]-'0')*10+(temp_data[5]-'0')*1)>12|
|
||||
((temp_data[6]-'0')*10+(temp_data[7]-'0')*1)>31|
|
||||
((temp_data[8]-'0')*10+(temp_data[9]-'0')*1)>23|
|
||||
((temp_data[10]-'0')*10+(temp_data[11]-'0')*1)>59|
|
||||
((temp_data[12]-'0')*10+(temp_data[13]-'0')*1)>59)
|
||||
{
|
||||
ESP8266_SendString(DISABLE,"parw-4,fail,*",13,0);
|
||||
|
||||
}else
|
||||
{
|
||||
SetRTC(
|
||||
((temp_data[2]-'0')*10+(temp_data[3]-'0')*1),
|
||||
((temp_data[4]-'0')*10+(temp_data[5]-'0')*1),
|
||||
((temp_data[6]-'0')*10+(temp_data[7]-'0')*1),
|
||||
((temp_data[8]-'0')*10+(temp_data[9]-'0')*1),
|
||||
((temp_data[10]-'0')*10+(temp_data[11]-'0')*1),
|
||||
((temp_data[12]-'0')*10+(temp_data[13]-'0')*1)
|
||||
);
|
||||
DS3231_Set(
|
||||
((temp_data[2]-'0')*10+(temp_data[3]-'0')*1),
|
||||
((temp_data[4]-'0')*10+(temp_data[5]-'0')*1),
|
||||
((temp_data[6]-'0')*10+(temp_data[7]-'0')*1),
|
||||
((temp_data[8]-'0')*10+(temp_data[9]-'0')*1),
|
||||
((temp_data[10]-'0')*10+(temp_data[11]-'0')*1),
|
||||
((temp_data[12]-'0')*10+(temp_data[13]-'0')*1)
|
||||
);
|
||||
EEPROM_WriteBytes(170,(u8*)temp_data,2);
|
||||
|
||||
|
||||
if((RTC->CR)&0x100)//<2F>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
RTC_AlarmAConfig(get_pubidv());
|
||||
}
|
||||
if((RTC->CR)&0x200)//<2F>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
RtcWakeUpConfig(get_meaidv() - 1);
|
||||
}
|
||||
ESP8266_SendString(DISABLE,"parw-4,OK,*",11,0);
|
||||
Init_Data_Equipment.par_change=1;
|
||||
EEPROM_WriteBytes(185, 0,1);
|
||||
}
|
||||
}
|
||||
|
||||
/*д<><D0B4>******<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>*********/
|
||||
if((recString=strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parw-5")) !=NULL) //parw-aAb,0A1
|
||||
{
|
||||
recString=strstr(recString, ",");
|
||||
recString++;
|
||||
recStringNext=recString+2;
|
||||
Sdi_chanegadd(recString[0],recStringNext[0]);
|
||||
adda=Sdi_Readone(recStringNext[0]);
|
||||
if(adda==0)
|
||||
{
|
||||
ESP8266_SendString(DISABLE,"parw-5,OK,*",11,0);
|
||||
//<2F><>ֵ<EFBFBD><D6B5>ͬ
|
||||
}else
|
||||
ESP8266_SendString(DISABLE,"parw-5,fail,*",13,0);
|
||||
|
||||
|
||||
}
|
||||
/*<2A><>ȡ******<2A>豸ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼʱ<D4BC>䡢<EFBFBD><E4A1A2><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>Զ<EFBFBD><D4B6>ʱ<EFBFBD><CAB1>*********/
|
||||
if((recString=strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parr-1")) !=NULL)
|
||||
{
|
||||
//&&(strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "\r\n"))!=NULL)
|
||||
memset(temp_data,0,100);
|
||||
|
||||
Init_Data_Equipment=Read_Equipment_Par();
|
||||
sprintf(temp_data,"parr-1,%s,%d,%s,%s,%d,*",
|
||||
Init_Data_Equipment.Equipment_ID,
|
||||
hexToDec(Init_Data_Equipment.Measure_Interval),
|
||||
(Init_Data_Equipment.appointment_time),
|
||||
(Init_Data_Equipment.measure_mode),
|
||||
hexToDec(Init_Data_Equipment.Pub_Time)
|
||||
);
|
||||
ESP8266_SendString(DISABLE,temp_data,strlen(temp_data),0);
|
||||
}
|
||||
|
||||
/*<2A><>ȡ******Զ<><D4B6>IP<49><50>Զ<EFBFBD><D4B6><EFBFBD>˿ڡ<CBBF>wifi<66><69><EFBFBD>ơ<EFBFBD>wifi<66><69><EFBFBD>롢wifi<66>˿<EFBFBD>*********/
|
||||
if(strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parr-2"))
|
||||
{
|
||||
memset(temp_data,0,100);
|
||||
GetRTC(hhmmss,yymmdd);
|
||||
sprintf(temp_data,"%s,%s,%s,%s,%s,%s,*",
|
||||
"parr-2",
|
||||
Init_Data_Equipment.Bc25_Ip,
|
||||
Init_Data_Equipment.Bc25_Port,
|
||||
Init_Data_Equipment.ESP8266_AP_SSIDs,
|
||||
Init_Data_Equipment.ESP8266_AP_PWDs,
|
||||
Init_Data_Equipment.ESP8266_AP_Ports
|
||||
);
|
||||
ESP8266_SendString(DISABLE,temp_data,strlen(temp_data),0);
|
||||
|
||||
}
|
||||
|
||||
/*<2A><>ȡ******ϵͳʱ<CDB3><CAB1> <20><><EFBFBD><EFBFBD>*********/
|
||||
if(strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parr-4"))
|
||||
{
|
||||
memset(temp_data,0,100);
|
||||
GetRTC(hhmmss,yymmdd);
|
||||
EEPROM_ReadBytes(170, (u8*)year_head,2);
|
||||
sprintf(temp_data,"%s,%s%s,%s,*","parr-4",year_head,yymmdd,hhmmss);
|
||||
ESP8266_SendString(DISABLE,temp_data,strlen(temp_data),0);
|
||||
}
|
||||
|
||||
/*<2A><>ȡ******<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ѯ*********/
|
||||
if((recString=strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "parr-s?")) !=NULL)
|
||||
{
|
||||
memset(temp_data,0,100);
|
||||
adda=Sdi_readaddress();
|
||||
if(adda!=0x7f)
|
||||
{
|
||||
sprintf(temp_data,"Address:%c,*",adda);
|
||||
ESP8266_SendString(DISABLE,temp_data,strlen(temp_data),0);
|
||||
}
|
||||
else
|
||||
ESP8266_SendString(DISABLE,"Address,fail,*",14,0);
|
||||
|
||||
}
|
||||
Usart4_ReceiveBuff_Clear();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***************************** END OF FILE *********************************/
|
||||
38
RTX5_20220316/Driver/usart/usart4.h
Normal file
38
RTX5_20220316/Driver/usart/usart4.h
Normal file
@ -0,0 +1,38 @@
|
||||
#ifndef _usart4_H
|
||||
#define _usart4_H
|
||||
#include "bsp.h"
|
||||
#include "general_type.h"
|
||||
#include "stm32l1xx_usart.h"
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined ( __CC_ARM )
|
||||
#pragma anon_unions
|
||||
#endif
|
||||
|
||||
#define USART4_MAX_RECV_LEN 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
#define USART4_MAX_SEND_LEN 512 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
void USART4_Configuration(u32 baund);
|
||||
void Usart4_ReceiveBuff_Clear(void);
|
||||
void u4_printf(char* fmt,...);
|
||||
u8 USART4_Recieve_Ide(void);
|
||||
|
||||
typedef struct STRUCT_USART4_Fram //<2F><><EFBFBD><EFBFBD>֡<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
{
|
||||
char Usart4_RX_BUF[USART4_MAX_RECV_LEN];
|
||||
union
|
||||
{
|
||||
__IO u16 InfAll;
|
||||
struct
|
||||
{
|
||||
__IO u16 FramLength :15; // 14:0
|
||||
__IO u16 FramFinishFlag :1; // 15
|
||||
}InfBit;
|
||||
};
|
||||
|
||||
}Usart4_Fram_Record_Struct;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
205
RTX5_20220316/Driver/usart/usart5.c
Normal file
205
RTX5_20220316/Driver/usart/usart5.c
Normal file
@ -0,0 +1,205 @@
|
||||
/*
|
||||
*****************************************************************
|
||||
ͷ<>ļ<EFBFBD>
|
||||
*****************************************************************
|
||||
*/
|
||||
#include "usart5.h"
|
||||
|
||||
/*
|
||||
************************************************************************************
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
************************************************************************************
|
||||
*/
|
||||
Usart5_Fram_Record_Struct Usart5_Fram_Record_Structs;
|
||||
u8 Usart5_TX_BUF[520]; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: USART5_Configuration()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>baund
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void Usart5_Configuration(u32 baund)
|
||||
{
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5, ENABLE); //ʹ<><CAB9>Usart5
|
||||
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC|RCC_AHBPeriph_GPIOD, ENABLE); //GPIOcʱ<63><CAB1>
|
||||
|
||||
USART_DeInit(UART5); //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>1
|
||||
|
||||
//USART1_TX PC12
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 ;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOC, &GPIO_InitStructure);
|
||||
|
||||
//USART1_RX PD2
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOD, &GPIO_InitStructure);
|
||||
|
||||
GPIO_PinAFConfig(GPIOC, GPIO_PinSource12, GPIO_AF_UART5);
|
||||
GPIO_PinAFConfig(GPIOD, GPIO_PinSource2, GPIO_AF_UART5);
|
||||
|
||||
USART_InitStructure.USART_BaudRate = baund;
|
||||
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_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(UART5,&USART_InitStructure);
|
||||
|
||||
USART_Cmd(UART5,ENABLE);
|
||||
|
||||
USART_ITConfig(UART5,USART_IT_RXNE,ENABLE);//<2F><><EFBFBD><EFBFBD>USART1<54>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//Usart1 NVIC <20><><EFBFBD><EFBFBD>
|
||||
NVIC_InitStructure.NVIC_IRQChannel = UART5_IRQn;//<2F><><EFBFBD><EFBFBD>1<EFBFBD>ж<EFBFBD>ͨ<EFBFBD><CDA8>
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//<2F><>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>3
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨ<51><CDA8>ʹ<EFBFBD><CAB9>
|
||||
NVIC_Init(&NVIC_InitStructure); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>VIC<49>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
USART_ClearFlag(UART5,USART_FLAG_TC); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: Usart5_ReceiveBuff_Clear()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void Usart5_ReceiveBuff_Clear(void)
|
||||
{
|
||||
Usart5_Fram_Record_Structs.InfBit.FramLength=0;
|
||||
Usart5_Fram_Record_Structs.InfBit.FramFinishFlag=0;
|
||||
memset(Usart5_Fram_Record_Structs.Usart5_RX_BUF,0,Usart5_MAX_RECV_LEN);
|
||||
memset(Usart5_TX_BUF,0,200);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: UART5_IRQHandler()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>5<EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void UART5_IRQHandler(void)
|
||||
{
|
||||
u8 ucCh;
|
||||
|
||||
if(USART_GetITStatus( UART5, USART_IT_RXNE ) != RESET )
|
||||
{
|
||||
ucCh = USART_ReceiveData( UART5 );
|
||||
|
||||
// <20><>ӡ<EFBFBD><D3A1><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
//u5_printf("Received data: %02X\n", ucCh);
|
||||
|
||||
if(Usart5_Fram_Record_Structs .InfBit .FramLength < ( Usart5_MAX_RECV_LEN - 1 ) )
|
||||
{
|
||||
Usart5_Fram_Record_Structs .Usart5_RX_BUF[ Usart5_Fram_Record_Structs .InfBit .FramLength ++ ] = ucCh;
|
||||
}
|
||||
}
|
||||
if( USART_GetITStatus( UART5, USART_IT_IDLE ) == SET ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD><DFBF><EFBFBD>
|
||||
{
|
||||
Usart5_Fram_Record_Structs .InfBit .FramFinishFlag = 1;
|
||||
ucCh = USART_ReceiveData( UART5 ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־λ<D6BE><CEBB><EFBFBD>ȶ<EFBFBD>USART_SR,Ȼ<><C8BB><EFBFBD><EFBFBD>USART_DR<44><52>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: u5_printf()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><>
|
||||
* <20><> <20><> <20><>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void u5_printf(char* fmt,...)
|
||||
{
|
||||
u16 i,j;
|
||||
va_list ap;
|
||||
va_start(ap,fmt);
|
||||
vsprintf((char*)Usart5_TX_BUF,fmt,ap);
|
||||
va_end(ap);
|
||||
i=strlen((const char*)Usart5_TX_BUF); //<2F>˴η<CBB4><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
|
||||
for(j=0;j<i;j++) //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
while(USART_GetFlagStatus(UART5,USART_FLAG_TC)==RESET); //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
USART_SendData(UART5,Usart5_TX_BUF[j]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
|
||||
* <20><> <20><><EFBFBD><EFBFBD>Byte Ҫ<><D2AA><EFBFBD>͵<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
|
||||
* <20><> <20><> ֵ<><D6B5><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void Serial_SendByte(uint8_t Byte)
|
||||
{
|
||||
USART_SendData(UART5, Byte); //<2F><><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ݼĴ<DDBC><C4B4><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>USART<52>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
while (USART_GetFlagStatus(UART5, USART_FLAG_TXE) == RESET); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/*<2A>´<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>ݼĴ<DDBC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ<D6BE><CEBB><EFBFBD>ʴ<EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ*/
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><> <20><><EFBFBD><EFBFBD>Array Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
* <20><> <20><><EFBFBD><EFBFBD>Length Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
||||
* <20><> <20><> ֵ<><D6B5><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void Serial_SendArray(uint8_t *Array, uint16_t Length)
|
||||
{
|
||||
uint16_t i;
|
||||
for (i = 0; i < Length; i ++) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
Serial_SendByte(Array[i]); //<2F><><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>Serial_SendByte<74><65><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
* <20><> <20><><EFBFBD><EFBFBD>String Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
* <20><> <20><> ֵ<><D6B5><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void Serial_SendString(char *String)
|
||||
{
|
||||
uint8_t i;
|
||||
for (i = 0; String[i] != '\0'; i ++)//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>飨<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB>ֹͣ
|
||||
{
|
||||
Serial_SendByte(String[i]); //<2F><><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>Serial_SendByte<74><65><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>װ<EFBFBD><D7B0>prinf<6E><66><EFBFBD><EFBFBD>
|
||||
* <20><> <20><><EFBFBD><EFBFBD>format <20><>ʽ<EFBFBD><CABD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
* <20><> <20><><EFBFBD><EFBFBD>... <20>ɱ<EFBFBD><C9B1>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
* <20><> <20><> ֵ<><D6B5><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void Serial_Printf(char *format, ...)
|
||||
{
|
||||
char String[100]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
va_list arg; //<2F><><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵ı<CDB5><C4B1><EFBFBD>arg
|
||||
va_start(arg, format); //<2F><>format<61><74>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>arg<72><67><EFBFBD><EFBFBD>
|
||||
vsprintf(String, format, arg); //ʹ<><CAB9>vsprintf<74><66>ӡ<EFBFBD><D3A1>ʽ<EFBFBD><CABD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
va_end(arg); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>arg
|
||||
Serial_SendString(String); //<2F><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>飨<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
37
RTX5_20220316/Driver/usart/usart5.h
Normal file
37
RTX5_20220316/Driver/usart/usart5.h
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef _usart5_H
|
||||
#define _usart5_H
|
||||
#include "bsp.h"
|
||||
#include "general_type.h"
|
||||
#include "stm32l1xx_usart.h"
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined ( __CC_ARM )
|
||||
#pragma anon_unions
|
||||
#endif
|
||||
|
||||
#define Usart5_MAX_RECV_LEN 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
|
||||
void Usart5_Configuration(u32 baund);
|
||||
void Usart5_ReceiveBuff_Clear(void);
|
||||
void u5_printf(char* fmt,...);
|
||||
typedef struct STRUCT_Usart5_Fram //<2F><><EFBFBD><EFBFBD>֡<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
{
|
||||
char Usart5_RX_BUF[Usart5_MAX_RECV_LEN];
|
||||
union
|
||||
{
|
||||
__IO u16 InfAll;
|
||||
struct
|
||||
{
|
||||
__IO u16 FramLength :15; // 14:0
|
||||
__IO u16 FramFinishFlag :1; // 15
|
||||
}InfBit;
|
||||
};
|
||||
|
||||
}Usart5_Fram_Record_Struct;
|
||||
|
||||
extern Usart5_Fram_Record_Struct Usart5_Fram_Record_Structs;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user