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
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
随机推荐
- BZOJ2568 [国家集训队2012]比特集合
Description 比特集合是一种抽象数据类型(Abstract Data Type) ,其包含一个集合S,并支持如下几种操作: INS M : 将元素 M 插入到集合S中: DEL M : 将集 ...
- bsgs(Baby Steps Giant Steps)算法
BSGS算法(Baby Steps Giant Steps算法,大步小步算法,北上广深算法,拔山盖世算法) 适用问题 对于式子: $$x^y=z(mod_p)$$ 已知x,z,p,p为质数: 求解一个 ...
- Uncaught TypeError: _react2.default.createContext is not a function
question is caused by react version, update your react version, it will be ok. use "npm update ...
- 远景GIS云产品规划
远景GIS云平台在初期有过产品设计,随着研发工作的进行以及对GIS云的认知更进行一步,最近重新梳理了平台的产品规划,使以后的开发不至于走偏方向. GIS云平台的研发也是摸着石头过河,免不了有考虑不到的 ...
- win10系统80端口被System (PID=4)占用的解决
今天想用wamp搭建虚拟目录.发现80端口被占用,操作挺麻烦的,所以想要更改. 具体流程如下: 1.“win+R”输入“cmd”,然后输入“netstat -ano | findstr "8 ...
- Try-Catch真的会影响程序性能吗
很多帖子都分析过Try-Catch的机制,以及其对性能的影响. 但是并没有证据证明,Try-Catch过于损耗了系统的性能,尤其是在托管环境下.记得园子里有位网友使用StopWatch分析过Try-C ...
- git 和github
ssh git: 是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这 ...
- 第一个JavaScript代码
既然我们的CSS就必须要要放再专门的style标签内 那么javascript也需要放在子级的标签内,那就是script标签内 在页面中,我们可以在body标签中放入<script type= ...
- 乘风破浪:LeetCode真题_012_Integer to Roman
乘风破浪:LeetCode真题_012_Integer to Roman 一.前言 经过了前面的思维训练,我们在某些方面有了一定的提高,但是对于实际的问题,要在短时间内得到答案,还是需要我们多多的练习 ...
- LeetCode算法题 菜鸟总结
近期准备抽出一点时间,刷一些题防止手生,毕竟codemonkey,吃饭的手艺不能忘. ······································· 基本的题目都是基于java语言解答 ...