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
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
随机推荐
- 多线程拷贝备份文件方法(Windows)
D:\bat\robocopy.exe D:\backupdata \\192.168.36.45\BData\ db_20170716.dmp 解释: 微软提供的robocopy.exe命令,默 ...
- 百度翻译cs文件英文注释
原由:本人英语烂,没办法看不懂国外的代码注释!只能借助其他手段来助我一臂之力了. 虽然翻译内容不是很准确,但好过什么都看不懂的强. 对吧?! 代码有点乱有用的园友自个整理一下吧! 最近没时间所以翻译后 ...
- csharp: 图片字符间距
引用WINDOWS API: [DllImport("gdi32.dll", CharSet = CharSet.Auto)] public static extern int S ...
- BZOJ4598: [Sdoi2016]模式字符串(点分治 hash)
题意 题目链接 Sol 直接考虑点分治+hash匹配 设\(up[i]\)表示\(dep \% M = i\)的从下往上恰好与前\(i\)位匹配的个数 \(down\)表示\(dep \% M = i ...
- bootstrap学习笔记(菜单.按钮)
下拉菜单 <div class="dropdown"> <button class="btn btn-default dropdown-toggle&q ...
- 几种常用的bootstrap功能。
---恢复内容开始--- 我对于bootstrap定义与一种插件,他可以使我们的网页布局更加的炫酷,更加的整洁和合理.他的优点不多说,缺点一个就够我们头疼的,那就是需要记一些长长的英文名. 我为大家说 ...
- 【源代码R3】移植一份LARGE_INTEGER转时间的代码
本代码来自ReactOS-0.4.0\lib\rtl\time.c中的函数RtlTimeToTimeFields(IN PLARGE_INTEGER Time, OUT PTIME_FIELDS Ti ...
- 英文版win10更新以后, 中文软件变成乱码
原因是非Unicode程序的语言设置失效了 在区域设置里把当前系统区域设置改成"英语(美国)", 重启电脑后再改回"中文(简体, 中国)", 再重启就好了.
- 微信小程序开发9-宿主环境(2)
1.一个小程序页面可以分解成多个部分组成,组件就是小程序页面的基本组成单元.为了让开发者可以快速进行开发,小程序的宿主环境提供了一系列基础组件.组件是在WXML模板文件声明中使用的,WXML的语法和H ...
- Evernote Markdown Sublime实现
版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/3996164.html Evernote无法实现markdow ...