CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第一件事就是移植串口驱动,重定向 printf
/*
* 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的更多相关文章
- CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第二件事就是 LED 驱动 ,点个灯
		
/* * board_led.c * * Created on: 2018年7月3日 * Author: admin */ #include "board_uart.h" #inc ...
 - 第一章 Andorid系统移植与驱动开发概述 - 读书笔记
		
Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...
 - FS210开发板上Qt4.7.0移植过程
		
作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...
 - iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板
		
本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编 ...
 - 第一章  Android系统移植与驱动开发概述
		
本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...
 - 第一章Android系统移植与驱动开发概述--读书笔记
		
以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...
 - [嵌入式开发板]iTOP-4412以模块的方式编译驱动
		
本文转自迅为:http://www.topeetboard.com 大家好,本章节我们将向大家讲解如何在 linux 下实现以模块的方式加载内核驱动.我们以内核里面蜂鸣器的 驱动为例来讲解. 1)首先 ...
 - CC2540开发板学习笔记(五)——串口通信
		
(一)串口发送 一.实验现象: 开发板实现功能发送 二.实验过程 1.PL2303 USB转串口电路图 2.串口发送 (1)查看用户手册有: UART0 对应的外部设备 IO 引脚关系为: P0_2 ...
 - 【NXP开发板应用—智能插排】3.驱动GPIO点亮外接LED
		
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
 
随机推荐
- MySQL:入门
			
一.前言 MySQL :是用于管理数据的软件 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. 分为服务端和客户 ...
 - BZOJ1266 [AHOI2006]上学路线
			
Description 可可和卡卡家住合肥市的东郊,每天上学他们都要转车多次才能到达市区西端的学校.直到有一天他们两人参加了学校的信息学奥林匹克竞赛小组才发现每天上学的乘车路线不一定是最优的. 可可: ...
 - (WCF) 多线程 (Multi-threading) 和 并发性 (Concurency)
			
问题:WCF 有个Server端,还有个Client端,他们之间是如何进行并发,多线程通信的呢?多个Client端同时访问Server,如何保证Server端的操作线程安全呢? 在理解WCF Conc ...
 - flask介绍
			
安装flask pip3 install flask 短小精悍.可扩展强 的一个Web框架. 牛逼点:上下文管理机制 依赖wsgi: werkzeug(相当于Django的wsgi):只要安装flas ...
 - 安装 GraphicsMagick
			
yum -y install GraphicsMagick GraphicsMagick-devel 实际试了试,上面yum的方式不好使,下面是我实际安装过程: 1.下载最新版 wget ftp:// ...
 - postman trigger xdebug session in phpstorm
			
phpstorm是一款非常棒的php开发调试工具,一般情况下我们使用firefox/chrome的bookmark,开启phpstorm debug侦听,随后点击start debugger, 我们就 ...
 - 加域(Netdom)
			
客户端运行: netdom.exe join %computername% /domain:testw.com /userd:testw\adadmin /passwordd:boc.123 /reb ...
 - 转移RMS模拟器
			
在PowerShell中识别当前 RMS 模拟器 get-SCOMRMSemulator ?移至另一个管理服务器 –首先将一个新的RMS模拟器管理指定为一个变量 $MS = get-scommanag ...
 - 设计模式(16)  观察者模式(OBSERVER)C++实现
			
意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 动机: 将一个系统设计成一系列相互协作的类有一个常见的副作用:需要维护相关对象之间的一 ...
 - 如何在CentOS 6.7上将PHP 5.3升级到PHP 5.6
			
如何在CentOS 6.7上将PHP 5.3升级到PHP 5.6 andyz 博客 45评论 Facebook的TwitterGoogle+Reddit 在本文中,我将介绍如何在CentOS ...