有STM32基础,该怎么学习蓝牙、WIFI知识?

这块我还算比较有经验,因为前几年一直在做物联网产品,蓝牙、WiFi、4G、Lora等无线通讯技术都有涉及。

 

目前无际单片机也有物联网相关的项目实战,可以更系统、深刻地学习物联网产品的局域无线组网和广域网通讯。

先告诉大家一个好消息,如果你懂蓝牙协议栈开发、WiFi之类的主流无线通讯技术,那你的工资会比普通单片机工程师会高一点,特别是在前几年物联网终端设备热火朝天的时候。

 

Ok,下面开始讲干货。

 

一、蓝牙怎么学?

市面上大多数公司,都是直接用蓝牙模块,就是直接通过串口发AT指令控制蓝牙数据交互。

如果是这种,基本不用熟悉蓝牙更深入的东西,看懂模块数据手册就够了。

如果你有幸接触蓝牙协议栈二次开发的产品,并且摸透里面代码,你的代码水平会有质的飞跃。

 

可以参考以下学习顺序:

1.学习蓝牙协议和规范

蓝牙一般包括传统蓝牙(BR/EDR)和低功耗蓝牙(BLE)。

先了解蓝牙技术的基础概念,包括蓝牙协议栈、蓝牙规范、蓝牙传输模式等等。

可以从蓝牙技术联盟(Bluetooth SIG)官网获取相关信息。

 

2.选择合适的平台

前期可以选择一些比较主流的蓝牙芯片品牌,比如TI、Nordic,然后去找这些厂家主流的蓝牙芯片开发板。

 

3.熟悉蓝牙通讯流程

了解蓝牙连接的建立过程,包括广播、扫描和配对等,自己先在开发板的例程上玩一遍。

 

4.学习蓝牙数据传输

这个是最重要的了,到这一步就已经开始进入蓝牙协议栈的二次开发了。

 

学习协议栈有个技巧,一切以实现功能为主,如果你想吃透协议栈,那至少需要耗费几个月时间,除非你的编程基础非常好,之前自己写过一些小系统。

一般,我们只要找到关键的代码就行了,比如说蓝牙比较关键的就是数据收发。

蓝牙是靠一个叫特征值来发送和接收数据的,不知道为什么要起这么难理解的名字,如果你理解不了,直接理解成数据传输管道吧。

 

5.实践

学完基本的,可能尝试脱离开发板去做具体的项目。

我曾经用过CC2541和CC2640这两款蓝牙芯片做过项目,都是TI的。

出于成本和产品尺寸的限制,只能在蓝牙芯片上进行协议栈二次开发,增加产品功能。

刚开始看代码,说真的,有点颠覆我的认知,原来单片机的程序也有写这么复杂的。

TI的里面还有个OSAL系统,光是研究这个系统就够你喝一壶了。

 

 

二、WiFi怎么学?

WiFi基本上都是用现成模块比较多,唯一接触过二次开发的也就是汉枫的模块,不过也就是改改服务器IP和数据收发而已。

像MQTT一般模块本身已经帮你实现了,你直接调用即可。

如果你想深入开发,我不能给太多建议,可以尝试以下路径:

1.学习网络的基础知识

包括网络拓扑结构、TCP/IP协议、路由、交换机等内容。

 

2.了解WiFi协议的基本概念

包括802.11协议、无线接入点、WiFi频段、SSID等。

 

3.学习无线网络编程的基础知识

包括使用WiFi模块的API,如连接WiFi、扫描可用WiFi网络、发送和接收数据等。

 

4.把知识落地

可以看看有没有开发板,在开发板上学习如何在嵌入式系统中使用WiFi模块,如何配置无线网络、如何在应用程序中实现连接WiFi网络、发送和接收数据等功能。

给TA买糖
共{{data.count}}人
人已赞赏
单片机百科

单片机有哪些独特优势?应用场景是什么?

2023-3-9 17:01:15

单片机百科

初学STM32单片机,选择什么开发板?

2023-3-16 19:32:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧