CC2640之配置串口打印及可变参数打印
来源:互联网 发布:北通手柄 mac设置 编辑:程序博客网 时间:2024/06/07 17:19
测试环境
协议栈版本:BLE-STACK V2.1
IAR开发环境版本:IAR for Arm 7.40硬件设备:Amo-SmartRF v2.0 开发板(对应TI官方的SmartRF06EB 开发板)
示例测试Demo工程:simpleBLEPeripheral工程
串口打印
TI的CC2640协议栈中的Demo大多数默认是没有打开串口的,这主要是因为低功耗功能的需要,但是我们平常的开发调试过程中,非常需要打印一些变量等信息来便于问题的查找和分析,所以我们下面一起来看看,如何打开串口?打开串口之后串口打印如何像标准C库中的“printf”那样实现可变参数打印?
串口打印配置
我们一起来看一下串口打印的配置:
1.从如下链接中下载uart封装的文件:
http://download.csdn.net/detail/zzfenglin/9608242
下载之后,解压出来会看到“board_uart.c”和“board_uart.h”两个文件,然后将这两个文件复制到“C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\common\cc26xx”目录下。
2.打开IAR,选择“CC2640APP”,右键点击左侧工作区的“Application”,操作显示如下:
3.点击“Add Files...”之后,会弹出提示框,找到上面刚复制进来的“board_uart.c”和“board_uart.h”两个文件,选中之后点“打开”,操作截图如下:
4.重复步骤2的操作,点击“Add Files...”之后,在弹出的对话框中找到“C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Components\npi”目录下的“npi_tl_uart.c”文件,选中之后点“打开”添加到工程中。截图如下:
5.添加串口相关的宏到编译选项中,如果想要LCD显示的同时也打印数据(也就是调用LCD显示的接口同时,打开该接口中调用串口打印的部分),那就需要在编译选项中添加如下两个宏:
NPI_USE_UART
LCD_TO_UART
添加的地方操作截图如下:
并且要关闭低功耗的宏,截图如下:
6.上述配置之后,点击“OK”,这样串口打印相关的文件和编译选项就配置好了,下面我们在应用文件的初始化中添加串口的初始化。在“C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\SimpleBLEPeripheral\CC26xx\Source\Application”目录下找到“simpleBLEPeripheral.c”文件,在该文件的头文件引用部分,添加如下头文件引用:
#include "board_uart.h"
然后在该应用文件的初始化函数“SimpleBLEPeripheral_init”中添加调用串口初始化函数的代码:
// 串口初始化 Uart_Init();
截图如下:
7.为了打印接口的统一,我们将LCD中使用串口打印的方法也换成我们封装好的可变参数的打印接口,修改“C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\common\cc26xx”目录下的“board_lcd.c”文件中的“HalLcdWriteString”函数,修改之后的代码如下:
void HalLcdWriteString ( char *str, uint8 option){#ifdef LCD_TO_UART //UART_WriteTransport ( (uint8*)str, strlen(str)); //UART_WriteTransport ("\r\n",2); tx_printf("%s\r\n",str);#endif...}
当然,如果你的工程没有配置LCD,也就是没有编译该文件,那不去修改也可以。
8.程序烧录到开发板中之后,测试结果截图如下:
注意,串口工具的波特率选择 115200,数据位 8,停止位 1,DTR和RTS不选。对于串口号,请到自己电脑的管理里面的设备管理中查看端口,不同电脑可能不一样。截图如下:
注意:如果按照上述配置方式,在你自己设计的硬件板子上仍然没有打印数据,那你就需要确认下RX和TX的引脚配置了。
首先,确认下你的原理图上RX和TX接的是哪个引脚,然后打开“C:\ti\tirtos_simplelink_2_13_00_06\packages\ti\boards\SRF06EB\CC2650EM_7ID”目录下的“Board.h”文件,对应修改“Board_UART_RX”和“Board_UART_TX”的值。
/* UART Board */#define Board_UART_RX IOID_2 /* RF1.7 */#define Board_UART_TX IOID_3 /* RF1.9 */
这样,我们的串口驱动就封装配置好了,并且配置了可变参数打印接口“tx_printf”可供以后调试使用。
- CC2640之配置串口打印及可变参数打印
- CC2640之配置串口打印及可变参数打印
- CC2540/CC2541/CC254x之可变参数串口打印配置
- 【BLE-CC2640】CC2640之串口
- cc2640 IAR 打印log
- __android_log_vprint可变参数打印日志
- 可变参数实现log打印
- 优化打印调试信息(可变参数)
- vsnprintf打印可变参数的log
- 串口打印
- stm32串口打印 多参数模式
- Hibernate打印SQL及附加参数(log4j配置)
- lodop打印参数及资料
- JVM打印GC参数配置
- HT6025芯片串口打印printf功能配置
- STM32关于串口打印之前的配置
- C中可变参数宏实现调试打印
- 日志打印(C99的可变参数宏实例)
- laravel5.2 使用redis
- 表中包含BLOB类型字段时的迁移问题
- 还原二叉树
- Codeforces Round #367 (Div. 2) E. Working routine (十字链表,二维高效交换)
- Southern Subregion Problem L. Stock Trading Robot
- CC2640之配置串口打印及可变参数打印
- 【codeforces 706B Interesting drink】
- cocos2dx tolua 再见了pkg
- JVM性能调优
- 写在前面
- 【codeforces 706A Beru-taxi】
- codeforces round363b
- 达内学习笔记——引用及const
- JZOJ4699. 【NOIP2016提高A组模拟8.15】Password