4、CC2541芯片中级教程-OSAL操作系统(简单AT指令实现+IIC软件和硬件实现驱动MPU6050)

简介:


 

 

本文根据一周CC2541笔记汇总得来——

适合概览和知识快速索引——

全部链接:

中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探

【插入】SourceInsight-工程建立方法

中级教程-OSAL操作系统(OSAL系统解基本套路)

中级教程-OSAL操作系统(进一步了解-OLED && 普通按键和5方向按键-中断!!!)这个系统驱动层和应用层不一样~

中级教程-OSAL操作系统(ADC-光敏电阻)

OSAL操作系统-实验16 串口波特率扩展

OSAL操作系统-实验17 AT命令初步

OSAL操作系统-实验20 模拟IIC通信+硬件IIC(Mpu6050)

OSAL 操作系统-实验 23 PWM 输出(改变占空比)

OSAL 操作系统-实验 24 看门狗 WachDog

OSAL操作系统-实验25 SNV内部Flash数据读写

OSAL 操作系统-实验 29 系统睡眠等级研究

OSAL 操作系统-实验 31 从机广播功率修改

 

 

一、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 命令都是这一条,用于测试模块连接是否正常。

 
264~288 行,我们编写了一个用于点灯的 AT 命令:
  AT+LED?\r\n: 查询灯的开关状态
  AT+LED0\r\n: 关灯
  AT+LED1\r\n: 开灯
 
总结:整体比较简单就是将串口数据创送给AT指令处理函数处理,串口数据接收采用一定技巧
 
 
二、模拟IIC通信+硬件IIC(Mpu6050) 20

Cc2541 有硬件 iic 功能,但 cc2540 并没有硬件 iic 功能

 
Description:    This file contains code that is common to all sensor drivers.
在 Hal_sensor.c  ti 已经实现了 cc2541 得硬件 iic 驱动,我们使用就行。
 
simpleBLETest.c中,编写的对 mpu6050 的访问函数。
 
 
 
以上两个函数,实现的是对 mpu6050 的寄存器的读写操作
 
 
 
以上两个文件,实现的是 gpio 模拟 iic 的时序,并封装模拟 iic 的读写函数。
 
在Iic.h中我们定义了 P1.5 与 P1.6 作为 iic的SCL与SDA:
 
 
总结:IIC和MPU6050都封装的很好。协议栈是个好东西,方便移植!!!是个宝库!
 
上面是 IIC的模拟实现,其 硬件实现使用起来更简单:

在simpleBLETest.c直接将MPU6050的设备地址传送给I2C初始化函数就可以了,然后就直接调用读写函数



本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/4774625.html,如需转载请自行联系原作者

相关文章
|
11天前
|
人工智能 运维 安全
操作系统控制台体验评测:AI驱动的运维新体验
作为一名开发工程师,我体验了阿里云的操作系统服务套件,选择CentOS作为测试环境。安装SysOM和OS Copilot组件非常顺利,系统健康检查、诊断功能精准高效,OS Copilot智能解答操作系统问题,节省大量时间。订阅管理确保系统安全更新,整体提升运维效率约30%。建议增加更多诊断功能和培训资源。总结:AI驱动的运维新体验,极大提高工作效率和系统稳定性。[访问控制台](https://alinux.console.aliyun.com/)。
39 0
|
3月前
|
Web App开发 API Windows
取接口访问者信息[IP,浏览器,操作系统]免费API接口教程
此API用于获取访问者的IP地址、浏览器和操作系统信息,支持70多种浏览器和操作系统。通过POST或GET请求至`https://cn.apihz.cn/api/ip/getapi.php`,需提供用户ID和KEY。返回结果包括状态码、消息、IP、浏览器和操作系统信息。示例:{"code":200,"ip":"175.154.88.178","browser":"Chrome","os":"Windows 10"}。详情见官网文档。
|
3月前
|
存储 人工智能 自然语言处理
OS Copilot"作为一款操作系统辅助软件应运而生,旨在提升用户使用电脑的效率
随着AI技术的发展,"OS Copilot"作为一款操作系统辅助软件应运而生,旨在提升用户使用电脑的效率。它具备智能命令建议、代码片段生成、文件管理助手及任务自动化等功能,适合日常办公与专业开发。安装简便,上手容易,能显著提高工作效率。
56 3
|
4月前
|
弹性计算 开发框架 .NET
阿里云服务器购买教程及云服务器地域、实例、操作系统、带宽等参数选择指南
对于初次购买阿里云服务器的用户来说,想使用阿里云服务器搭建网站或者运行APP、小程序等项目,第一步就是要先购买阿里云服务器,下面小编以图文形式给大家介绍一下阿里云服务器的购买流程,以及购买过程中如何云服务器地域、实例、带宽等关键配置和选择这些参数的一些注意事项,以供参考。
|
4月前
|
存储 弹性计算 运维
阿里云国际Windows操作系统迁移教程
阿里云国际Windows操作系统迁移教程
|
4月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
367 0
Mac os 安装 nginx 教程(success)
|
4月前
|
存储 人工智能 自然语言处理
“OS Copilot”的操作系统辅助软件
【10月更文挑战第7天】随着AI技术的发展,"OS Copilot"作为一款操作系统辅助软件,通过智能命令建议、代码片段生成、文件管理助手及任务自动化等功能,极大提升了用户的工作效率,无论是日常办公还是专业开发都提供了强有力的支持。其简洁的安装流程、友好的用户界面和强大的搜索能力,使得这款软件成为提升生产力的得力助手。
66 2
|
6月前
|
机器学习/深度学习 Linux PyTorch
跨平台 DataLoader 实现:支持多种操作系统和硬件架构
【8月更文第29天】在深度学习项目中,数据加载和预处理是非常重要的步骤之一。一个良好的数据加载器(DataLoader)能够显著提升模型训练的速度和效率。随着深度学习应用的不断扩展,对于能够在不同操作系统和硬件架构上无缝运行的数据加载器的需求也日益增长。本文将探讨如何设计和实现一个跨平台的 DataLoader,确保其兼容性和可移植性。
94 0
|
6月前
|
存储 安全 搜索推荐
操作系统的未来:智能化与安全性的双轮驱动
【8月更文挑战第20天】随着技术的不断进步,操作系统作为计算机系统的核心,其发展趋势和未来形态引起了广泛的关注。本文从智能化和安全性两个维度出发,探讨了操作系统未来的发展方向。智能化将使操作系统更加个性化、高效,而安全性则是保障操作系统稳定运行的基础。两者相辅相成,共同推动操作系统向更高层次发展。

推荐镜像

更多