中科因仑“3+1”工程特种兵精英论坛
标题:
arm2410串口查询接收数据
[打印本页]
作者:
谭力源
时间:
2016-6-17 16:01
标题:
arm2410串口查询接收数据
#include"../ucos-ii/includes.h"
#include "../ucos-ii/add/osaddition.h"
#include "../inc/drivers.h"
#include "../inc/sys/lib.h"
#include "../inc/drv/reg2410.h"
//#include "../src/gui/gui.h"
#include "../inc/sys/uart.h" //
#include "../inc/sys/uartdrive.h"//
#include "../inc/sys/gpio_usr.h" //
//#include "../src/GUI/Uartke.h"
#include <string.h>//
#include <stdio.h>//
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@【 任务定义 】@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
OS_EVENT *ad_collet_flag; //定义信号量
OS_STK task0_send_Uartc_Stack[STACKSIZE]={0, }; //Main_Test_Task堆栈
void Task0_send_Uart(void *Id); //Main_Test_Task
#define Task0_send_Uart_Prio 11
volatile INT8U uart1_data[3]={0};
void stm32_data_transition()
{
if(uart2_data[0] == 0xaa)
{
}
if((uart2_data[0] & 0xf0) == 0x50)
{
angle_data = (FP32)uart1_data[1] + (FP32)uart1_data[2] / 100;
}
else
if((uart1_data[0] & 0xf0) == 0xa0)
angle_data = -(FP32)uart1_data[1] - (FP32)uart1_data[2] / 100;
else
Uart_Printf(0,"data err\n");
if((uart1_data[0] & 0x0f) == 0x05)
{
distance = (int)uart1_data[3];
}
else
if((uart1_data[0] & 0x0f) == 0x0a)
distance = - (int)uart1_data[3];
else
Uart_Printf(0,"data err\n");
}
/*********************************************************************************************************
** 函数名称 : main
** 函数功能 :
** 输入参数 :
** 返回参数 :
** 创 建 :
** 修 改 :
** 特殊说明 :
*********************************************************************************************************/
int main(void)
{
ARMTargetInit(); // 串口的初始化及波特率设置,115200,9600,9600
OSInit(); // 系统初始化
OSTaskCreate(Task0_send_Uart, (void *)0, (OS_STK *)&task0_send_Uartc_Stack[STACKSIZE-1], Task0_send_Uart_Prio);
OSAddTask_Init(1); // 创建系统任务
OSStart(); // 系统运行
return 0;
}
void Task0_send_Uart(void *Id)
{
Uart_sendbyte(1,0x01);
Uart_Printf(0,"aa");
while(1)
{
while(!(rUTRSTAT1&0x1));//是否接收到数据
uart1_data[0]=rURXH1;
if(uart1_data[0] ==0xbb)
{
while(!(rUTRSTAT1&0x1));//是否接收到数据
uart1_data[1]=rURXH1;
Uart_Printf(0,"uart1_data[1]=%x\n",uart1_data[1]);
while(!(rUTRSTAT1&0x1));//是否接收到数据
uart1_data[2]=rURXH1;
Uart_Printf(0,"uart1_data[2]=%x\n",uart1_data[2]);
stm32_data_decode();
hudelay(1000);
}
OSTaskSuspend(11);
}
}
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4