标签:
本文根据一周CC2541笔记汇总得来——
适合概览和知识快速索引——
全部链接:
中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探
中级教程-OSAL操作系统(进一步了解-OLED && 普通按键和5方向按键-中断!!!)这个系统驱动层和应用层不一样~
OSAL操作系统-实验20 模拟IIC通信+硬件IIC(Mpu6050)
一、AT命令初步(17)
AT 命令式通过串口来通信的
串口一有数据就会调用回调函数,为了防止回调函数被频繁调用,采用(延时+数据长度控制,即:超出某一时间或者超出某一长度就调用 NPI_ReadTransport(buffer,numBytes); 读取一定数据)
第224行将串口收到的数据调用AT指令处理函数进行处理:
1 // AT 命令处理 函数 2 bool simpleBLE_AT_CMD_Handle(uint8 * pBuffer, uint16 length) 3 { 4 bool ret = TRUE; 5 char strTemp[64]; 6 7 // 1、测试 8 if((length == 4) && str_cmp(pBuffer, "AT\r\n", 4))//AT 9 { 10 sprintf(strTemp, "OK\r\n"); 11 NPI_WriteTransport((uint8 * )strTemp, osal_strlen(strTemp)); 12 } 13 // 2、设置LED1的亮灭 14 else if((length == 9) && str_cmp(pBuffer, "AT+LED", 6)) 15 { 16 /* 17 Para: 0 ~ 1 18 AT+LED0\r\n: 关灯 19 AT+LED1\r\n: 开灯 20 Default: 0 21 */ 22 switch(pBuffer[6]) 23 { 24 case ‘?‘: 25 sprintf(strTemp, "OK+Get:%d\r\n", g_LED1); 26 NPI_WriteTransport((uint8 * )strTemp, osal_strlen(strTemp)); 27 break; 28 case ‘0‘: 29 g_LED1 = 0; 30 HalLedSet(HAL_LED_1, HAL_LED_MODE_OFF); // 关闭led1 31 sprintf(strTemp, "OK+Set0\r\n"); 32 NPI_WriteTransport((uint8 * )strTemp, osal_strlen(strTemp)); 33 break; 34 case ‘1‘: 35 g_LED1 = 1; 36 HalLedSet(HAL_LED_1, HAL_LED_MODE_ON); // 点亮led1 37 sprintf(strTemp, "OK+Set1\r\n"); 38 NPI_WriteTransport((uint8 * )strTemp, osal_strlen(strTemp)); 39 break; 40 default: 41 ret = FALSE; 42 break; 43 } 44 } 45 else 46 { 47 sprintf(strTemp, "ERROR\r\n"); 48 NPI_WriteTransport((uint8 * )strTemp, osal_strlen(strTemp)); 49 50 ret = FALSE; 51 } 52 53 return ret; 54 }
258 行, AT\r\n 为测试命令,
业界几乎所有的 AT 命令模块第一条 AT 命令都是这一条,用于测试模块连接是否正常。
Cc2541 有硬件 iic 功能,但 cc2540 并没有硬件 iic 功能
在simpleBLETest.c直接将MPU6050的设备地址传送给I2C初始化函数就可以了,然后就直接调用读写函数进行读写!
未完~关注我的cc2541分类
4、CC2541芯片中级教程-OSAL操作系统(简单AT指令实现+IIC软件和硬件实现驱动MPU6050)
标签:
原文地址:http://www.cnblogs.com/zjutlitao/p/4774625.html