查看: 2485|回复: 0
打印 上一主题 下一主题

arm2410串口查询接收数据

[复制链接]
跳转到指定楼层
沙发
发表于 2016-6-17 16:01:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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);
    }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表