CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第一件事就是移植串口驱动,重定向 printf

匿名 (未验证) 提交于 2019-12-03 00:39:02
/*  * board_uart.c  *  *  Created on: 2018年7月3日  *      Author: admin  */   #include "board_uart.h"  #include "board.h" #include <ti/drivers/uart/UARTCC26XX.h>  #include <stdlib.h> #include <stdarg.h> #include <stdio.h> #include <string.h>  #define UART0_RECEICE_BUFF_SIZE 64  static UART_Handle uart0BoardHandle;  static uint8_t uart0ReceiveBuff[UART0_RECEICE_BUFF_SIZE];  static char debugVsprintfBuff[256] = {0}; void bspDebugPrintf( uint32_t enableFlag, char *str, ... ) {/* 打印调试函数,数据发给串口0,2018年7月2日19:07:33 */      va_list argptr;     uint32_t len=0;      if( enableFlag != true )             return;      if(strlen(str) > 128)             return;      va_start(argptr, str);     len = vsprintf(debugVsprintfBuff, str, argptr);     va_end(argptr);      UART_write(uart0BoardHandle, debugVsprintfBuff, len);  }  void uart0BoardReciveCallback(UART_Handle handle, void *buf, size_t count) {/* 串口0接收回调函数,2018年7月3日15:16:30,115200bps */      bspDebugPrintf( true,"uart0 Recive len:%u,data:%s.\r\n", count, buf );      //设定接收缓冲区,并开始接收数据     UART_read( uart0BoardHandle, uart0ReceiveBuff, UART0_RECEICE_BUFF_SIZE ); }  void uart0BoardInit( void ) {/* 初始化串口0,2018年7月2日19:07:33,115200bps */     UART_Params uart0BoardParams;      //板载串口0初始化,包括时钟引脚初始化     Board_initUART();      /* Create a UART with data processing off. */     UART_Params_init(&uart0BoardParams);/* 串口各项参数先设置为默认值 */      uart0BoardParams.baudRate       = 115200;     uart0BoardParams.readEcho       = UART_ECHO_OFF;     uart0BoardParams.writeDataMode  = UART_DATA_BINARY;     uart0BoardParams.readDataMode   = UART_DATA_BINARY;     uart0BoardParams.readMode       = UART_MODE_CALLBACK;     uart0BoardParams.readCallback   = uart0BoardReciveCallback;      uart0BoardHandle = UART_open(Board_UART0, &uart0BoardParams);      if (uart0BoardHandle == NULL) {         /* UART_open() failed */         while (1);     }     else     {       //使能串口空闲接收中断,即串口接收空闲,进入接收回调函数       UART_control( uart0BoardHandle, UARTCC26XX_CMD_RETURN_PARTIAL_ENABLE, NULL  );        //设定接收缓冲区,并开始接收数据       UART_read( uart0BoardHandle, uart0ReceiveBuff, UART0_RECEICE_BUFF_SIZE );        bspDebugPrintf( true,"uart0 Board Init end.\r\n" );      }  }
/*  * board_uart.h  *  *  Created on: 2018年7月3日  *      Author: admin  */  #ifndef APPLICATION_BOARD_UART_H_ #define APPLICATION_BOARD_UART_H_  #include <stdint.h>  void bspDebugPrintf( uint32_t enableFlag, char *str, ... );  void uart0BoardInit( void );   #endif /* APPLICATION_BOARD_UART_H_ */

官方资料链接

原文:https://www.cnblogs.com/suozhang/p/9268464.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!