TI-RTOS实时操作系统开发之串口应用

本文档介绍了在TI-RTOS实时操作系统下如何进行串口应用开发,包括更新内容、应用实例和源码解析。强调了外部回调函数的使用、线程安全的互斥信号量功能,以及自定义缓存和打印API的设计。特别提示了UART_read_length参数设置对避免串口宕机的重要性,并提醒在接收回调中避免耗时操作。
摘要由CSDN通过智能技术生成

TI-RTOS实时操作系统之串口应用

适用 CC1310\ CC2640R2F等基于TI-RTOS的SDK开发

更新-20190622

重新定义API
1、外部传入回调函数,方便调用。
2、增加自定义printf
3、线程安全考虑,增加互斥信号量功能,防止多线程(多任务)同时调用时冲突
4、自定义printf的缓存使用的是动态分配内存,可以换成固定数据
5、自定义printf的打印默认结尾带换新行
6、两种打印API,1、MyUart_doSendArray():根据传入数据的长度打印输出。2、MyUart_doPrintf():根据fmt格式,重组字符串

应用实例

//串口接收回调
void myUartReadCallback(void *buf, size_t count)
{
   

}
//初始化串口
UART_Params uartParams;
uartParams.baudRate = 115200;
MyUart_open(&uartParams, myUartReadCallback);

源码

.c文件

/***** Includes *****/
#include "uartUnit.h"
#include <icall.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>

#include <ti/drivers/dpl/DebugP.h>
#include <ti/drivers/dpl/SemaphoreP.h>
#include <ti/drivers/dpl/SystemP.h>

/***** Semaphore信号 *****/

static Semaphore_Handle uartMutexSemHandle;


/***** Prototypes *****/

// uartData_ts uartTxData;

char uartRxDataTemp[UART_read_length];                                                                              

UART_Handle myUartHandle = NULL;  
static MyUart_callBack MyUart_recvCB;

void Uart_ReadCallback(UART_Handle handle, void *buf, size_t count)
{
   
  MyUart_recvCB(buf, count);
  UART_read(myUartHandle, uartRxDataTemp, UART_read_length); //等待下一次串口接收
}
UART_Handle MyUart_open(UART_Params *params, MyUart_callBack CB)
{
   
    UART_Params uartParams;
    
    UART_Params_init(&uartParams);
    Board_initUART()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值