CC26xx之内置温度传感器的使用+ 串口配置

介绍


从CC26xx的数据手册中,我们可以看到CC26xx内部集成了温度传感器,手册中该温度传感器的详细介绍截图如下:



从上面的截图中,我们可以看出以下的信息:

1.该温湿度传感器的测量范围:- 40℃ ~  85℃

2.该温湿度传感器的测量精确度:±5℃




实现方法


TIRTOS驱动中已经封装了温度值采集的接口,我们直接调用即可,提供的接口为:

[cpp]  view plain  copy
 print ?
  1. int32_t  
  2. AONBatMonTemperatureGetDegC( void );  

调用这个接口的文件中需要添加相应的头文件:

[cpp]  view plain  copy
 print ?
  1. #include <driverlib/aon_batmon.h>  

我们以simpleBLEPeripheral工程为例稍作演示。

首先,打开simpleBLEPeripheral.c文件,添加头文件引用:

[cpp]  view plain  copy
 print ?
  1. #include <driverlib/aon_batmon.h>  

然后,在SimpleBLEPeripheral_init()初始化接口中添加测试代码如下:

[cpp]  view plain  copy
 print ?
  1. int32_t curTemp;  
  2. curTemp  = AONBatMonTemperatureGetDegC();  
  3. tx_printf("curTemp:%d\r\n",curTemp);  

执行结果截图如下:


串口打印


TI的CC2640协议栈中的Demo大多数默认是没有打开串口的,这主要是因为低功耗功能的需要,但是我们平常的开发调试过程中,非常需要打印一些变量等信息来便于问题的查找和分析,所以我们下面一起来看看,如何打开串口?打开串口之后串口打印如何像标准C库中的printf那样实现可变参数打印?




串口打印配置


我们一起来看一下串口打印的配置:

1.从如下链接中下载uart封装的文件:

 http://download.csdn.net/detail/zzfenglin/9608242

下载之后,解压出来会看到board_uart.cboard_uart.h”两个文件,然后将这两个文件复制到C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\common\cc26xx目录下。

 

2.打开IAR,选择CC2640APP,右键点击左侧工作区的Application,操作显示如下:



3.点击Add Files...之后,会弹出提示框,找到上面刚复制进来的board_uart.cboard_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文件,在该文件的头文件引用部分,添加如下头文件引用:

[cpp]  view plain  copy
 print ?
  1. #include "board_uart.h"  


然后在该应用文件的初始化函数SimpleBLEPeripheral_init中添加调用串口初始化函数的代码:

[cpp]  view plain  copy
 print ?
  1. // 串口初始化    
  2. Uart_Init();  

截图如下:



7.为了打印接口的统一,我们将LCD中使用串口打印的方法也换成我们封装好的可变参数的打印接口,修改C:\ti\simplelink\ble_cc26xx_2_01_00_44423\Projects\ble\common\cc26xx目录下的board_lcd.c文件中的HalLcdWriteString函数,修改之后的代码如下:

[cpp]  view plain  copy
 print ?
  1. void HalLcdWriteString ( char *str, uint8 option)  
  2. {  
  3. #ifdef LCD_TO_UART  
  4.   //UART_WriteTransport ( (uint8*)str, strlen(str));   
  5.   //UART_WriteTransport ("\r\n",2);  
  6.   tx_printf("%s\r\n",str);  
  7. #endif  
  8. ...  
  9. }  

当然,如果你的工程没有配置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_RXBoard_UART_TX的值。

[cpp]  view plain  copy
 print ?
  1. /* UART Board */  
  2. #define Board_UART_RX                       IOID_2          /* RF1.7  */  
  3. #define Board_UART_TX                       IOID_3          /* RF1.9  */
相关文章

相关标签/搜索