USART2接收的数据
代码
如上图所示,USART2接收的数据,全部代码如下:
/****************************************Copyright (c)****************************************************
**
**
**
**--------------File Info---------------------------------------------------------------------------------
** File name: uctsk_Blink.c
** Descriptions: The uctsk_Blink application function
**
**--------------------------------------------------------------------------------------------------------
** Created by: AVRman
** Created date: 2016-2-6
** Version: v1.0
** Descriptions: The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include <includes.h>
#include "ip.h"
#include "lwip/api.h"
#include "lwip/tcpip.h"
#include "lwip/memp.h"
#include "lwip/stats.h"
#include "netif/loopif.h"
#include "search.h"
#include "sockets.h"
#include "lwIP.h"
#include "netif.h"
/* Private variables ---------------------------------------------------------*/
static OS_STK App_TaskExhaustkStk[APP_TASK_EXHAUST_STK_SIZE];
static OS_STK App_TaskLWIPReceiveStk[APP_TASK_LWIPRECEIVE_STK_SIZE];
static void USART_START(INT32U baud_rate);
static void USART_SendStr(int *pucStr,int ulNum);//·¢ËíÖ¸áîoˉêy
static void USART_ReceiveStr(int *recv,int len);
static void USART_RecvData();
static void USART2_IRQHandler2() ;
static void GPIO_Configuration(void);
static void GPIO_LedOn(void);
static void GPIO_LedOn3(void);
static void NVIC_Configure(void);
/* Private function prototypes -----------------------------------------------*/
static void uctsk_ExhaustAna ();
static void uctsk_LWIPReceive (void);
int socket;
int Uart2_Rx;
int Uart2_Tx;
int Uart2_Len;
int Uart2_Sta=0;
int Uart2_Buffer[140];//êy¾Y3¤¶è
int Uart2_Buffer1[140];
int Status;//×′ì¬
int Res;
int TOPLC[10];
//static void usartReceive(int*Uart2_Rx,int Uart2_Len);
void App_ExhaustAnaTaskCreate (void)
{
CPU_INT08U os_err;
os_err = os_err; /* prevent warning... */
os_err = OSTaskCreate((void (*)(void *)) uctsk_ExhaustAna,
(void * ) 0,
(OS_STK * )&App_TaskExhaustkStk[APP_TASK_LWIPRECEIVE_STK_SIZE - 1],
(INT8U ) APP_TASK_EXHAUST_PRIO );
#if OS_TASK_NAME_EN > 0
OSTaskNameSet(APP_TASK_EXHAUST_PRIO, " Task Exhaust Analyze", &os_err);
#endif
}
void App_LWIPReceiveTaskCreate (void)
{
CPU_INT08U os_err;
os_err = os_err; /* prevent warning... */
os_err = OSTaskCreate((void (*)(void *)) uctsk_LWIPReceive,
(void * ) 0,
(OS_STK * )&App_TaskLWIPReceiveStk[APP_TASK_EXHAUST_STK_SIZE - 1],
(INT8U ) APP_TASK_LWIPRECEIVE_PRIO );
#if OS_TASK_NAME_EN > 0
OSTaskNameSet(APP_TASK_LWIPRECEIVE_PRIO, " Task LWIPReceive ", &os_err);
#endif
}
static void uctsk_LWIPReceive (void)
{
int err;
// int newsocetTemp;
struct ip_addr ipaddr;
char recvbuff[100];
u32_t len;
struct sockaddr_in sin;
struct sockaddr_in adressClient;
struct sockaddr sockaddr_name;
uint8_t dataH=0,dataL=0;
uint16_t enginespeed=0,pedal=0;
uint16_t count=0;
Ethernet_Initialize();
Init_lwIP();
lwip_socket_init();
// SpeedTansducer_Init();
IP4_ADDR(&ipaddr, 192, 168, 0, 1 );
socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
sin.sin_len = sizeof(sin);
sin.sin_family = AF_INET;
sin.sin_port = htons(2600);
sin.sin_addr.s_addr = ipaddr.addr;
sockaddr_name= *((const struct sockaddr*)&sin);
// bind(socket,(const struct sockaddr*)&sin,sizeof( struct sockaddr));
len=sizeof(struct sockaddr);
// listen(socket,5);
err=connect(socket,(const struct sockaddr*)&sin,sizeof( struct sockaddr));
// if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)
}
static void uctsk_ExhaustAna ()
{
int increase=0;
int receive[120];
int measure[6]={0xAA,0x03,0x43,0x16,0x01,0xA3};
int stop[6]={0xAA,0x03,0x43,0x16,0x00,0xA4};
int check[7]={0xAA, 0x04 ,0x43 ,0x11, 0xFF, 0x01 ,0xA8};
USART_START(9600);
USART_SendStr(measure,6);
USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
//USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
OSTimeDlyHMSM(0, 0, 3, 0);
while(1)
{
USART_SendStr(check,7);
OSTimeDlyHMSM(0, 0,5, 0);
USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
//USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
USART2_IRQHandler2();
OSTimeDlyHMSM(0, 0,1, 0);
}
}
/*·¢ËíÖ¸áî*/
static void USART_SendStr(int *pucStr,int ulNum) //·¢Ëíò»′®Ö¸áî
{
int i;
for(i=0;i<ulNum;i++)
{
//while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
USART_SendData(USART2,*pucStr++);
OSTimeDlyHMSM(0, 0,0, 10);
}
}
/*USARTÅäÖÃÇé¿ö*/
static void USART_START(INT32U baud_rate)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
/*RCC Configuration*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO ,ENABLE);
RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2 ,ENABLE);
/*GPIO Configuration*/
GPIO_PinRemapConfig(GPIO_Remap_USART2,ENABLE);
/*
* USART2_TX -> PD5 , USART2_RX -> PD6
*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/*NVIC Configuration*/
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
/*USART Configuration*/
USART_InitStructure.USART_BaudRate = baud_rate;
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_ClearFlag(USART2,USART_FLAG_TC);
USART_Cmd(USART2, ENABLE);
}
static void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD , ENABLE);
/**
* LED1 -> PD2 , LED2 -> PD3 , LED3 -> PD4 , LED4 -> PD7
*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
/************************************************************************/
/******************************ÖD¶Ï½óêÕêy¾Y*************************/
void USART2_IRQHandler2(void)
{
if(USART_GetFlagStatus(USART2,USART_IT_RXNE)==SET) //½óêÕÖD¶ÏóDD§
{
USART_ClearITPendingBit(USART2,USART_IT_RXNE);//Çå3yÖD¶Ï±êÖ¾
for(Uart2_Rx=0;Uart2_Rx<140;Uart2_Rx++)
{
Uart2_Buffer[Uart2_Rx] = USART_ReceiveData(USART2);//·μ»ØUSART2½óêÕμÄ×î½üêy¾Y
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
//Uart2_Rx = (Uart2_Rx + 1) % 140;
}
}
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
没有加关闭
(1)AA 01 06 F9 AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 01 06 F9
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
加关闭
(2)AA 01 06 F9 AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 01 15 EA AA 01 06 F9
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 2F 08 00 00 00 00 00 00 C9 00 00 00 B3
第三次测试数据
(3)AA 01 06 F9 AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 01 06 F9
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 1F 08 00 00 00 00 00 00 C9 00 00 00 C3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 1F 08 00 00 00 00 00 00 C9 00 00 00 C3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 1F 08 00 00 00 00 00 00 C9 00 00 00 C3
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 1F 08 00 00 00 00 00 00 C9 00 00 00 C3
第四次测试数据
(4)AA 01 06 F9 AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 04 43 16 01 16 8C AA 01 06 F9
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 06 08 00 00 00 00 00 00 C9 00 00 00 DC
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 06 08 00 00 00 00 00 00 C9 00 00 00 DC
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 06 08 00 00 00 00 00 00 C9 00 00 00 DC
AA 1A 43 11 FF 01 DF 00 00 00 00 00 00 00 00 00 06 08 00 00 00 00 00 00 C9 00 00 00 DC
以上是我应该接受到的数据,这是在串口调试下做的,但是在程序中用USART2只能接收到一个数据AA
一周热门 更多>