/*
* 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[] = {};
void bspDebugPrintf( uint32_t enableFlag, char *str, ... )
{/* 打印调试函数,数据发给串口0,2018年7月2日19:07:33 */ va_list argptr;
uint32_t len=; if( enableFlag != true )
return; if(strlen(str) > )
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 = ;
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 ();
}
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_ */

官方资料链接

CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第一件事就是移植串口驱动,重定向 printf的更多相关文章

  1. CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第二件事就是 LED 驱动 ,点个灯

    /* * board_led.c * * Created on: 2018年7月3日 * Author: admin */ #include "board_uart.h" #inc ...

  2. 第一章 Andorid系统移植与驱动开发概述 - 读书笔记

    Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...

  3. FS210开发板上Qt4.7.0移植过程

    作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...

  4. iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板

    本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编 ...

  5. 第一章 Android系统移植与驱动开发概述

    本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...

  6. 第一章Android系统移植与驱动开发概述--读书笔记

    以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...

  7. [嵌入式开发板]iTOP-4412以模块的方式编译驱动

    本文转自迅为:http://www.topeetboard.com 大家好,本章节我们将向大家讲解如何在 linux 下实现以模块的方式加载内核驱动.我们以内核里面蜂鸣器的 驱动为例来讲解. 1)首先 ...

  8. CC2540开发板学习笔记(五)——串口通信

    (一)串口发送 一.实验现象: 开发板实现功能发送 二.实验过程 1.PL2303 USB转串口电路图 2.串口发送 (1)查看用户手册有: UART0 对应的外部设备 IO 引脚关系为: P0_2 ...

  9. 【NXP开发板应用—智能插排】3.驱动GPIO点亮外接LED

    [前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...

随机推荐

  1. C# 进程通信-命名管道

    之前看wcf服务的时候看到wcf有支持管道通信协议,之前不知道,最近刚好有用到这个,这里写个简单实例 .net有已经封装好的pip通信的对象NamedPipeServerStream 和NamedPi ...

  2. UOJ#414. 【APIO2018】新家

    传送门 首先二分答案 \(mid\),问题变成求区间 \([l-mid,r+mid]\) 在该年份的不同类型个数为 \(k\) 关于年份的限制可以离线下来 现在的问题就是区间数颜色,一个套路就是维护每 ...

  3. BZOJ1266 [AHOI2006]上学路线

    Description 可可和卡卡家住合肥市的东郊,每天上学他们都要转车多次才能到达市区西端的学校.直到有一天他们两人参加了学校的信息学奥林匹克竞赛小组才发现每天上学的乘车路线不一定是最优的. 可可: ...

  4. drupal7 获取当前使用的主题的名称

    直接引用全局变量就行: 参考: 代码测试: global $theme, $theme_key; echo $theme; echo '<br>'; echo $theme_key; 结果 ...

  5. position布局影响点击事件以及冒泡获取事件目标

    在编写功能时总是会出现很多意想不到的问题,现在就讲讲我遇到的两个问题,通过举一个相似的例子来解说. <1> 元素互相独立,不存在包含于被包含 选择城市的按钮,为它绑定点击事件,点击后就弹出 ...

  6. layui-table渲染不出来

    通过方法渲染 页面代码: <table id="tableList" lay-filter="clublist"></table> js ...

  7. Fragment 重叠 遮盖问题

    1.导致Fragment 重叠 和遮盖的原因 主要还是因为Fragment的状态保存机制,当系统内存不足时,Fragment的主Activity被回收,Fragment的实例并没有随之被回收. Act ...

  8. unity材质球贴图滚动

       using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBe ...

  9. 在 Azure 虚拟机中配置 Always On 可用性组(经典)

    在开始之前,请先假设现在可以在 Azure Resource Manager 模型中完成此任务. 我们建议使用 Azure Resource Manager 模型来进行新的部署. 请参阅 Azure ...

  10. mysql 的增删改查

    数据库的基本流程就是先看你的数据库中的库都是哪些:show databases; 然后再进入相应的库进行操作  :  use+进入的库/表 切换路径 查看这个库内的所有的表: show tabales ...