NRF52840 和电脑 进行蓝牙通信

这篇具有很好参考价值的文章主要介绍了NRF52840 和电脑 进行蓝牙通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

以nrf52840为主控连接各种传感器,将传感器的数据通过蓝牙传输到电脑进行接收。由于协议栈的不同,hc-06没法检索到nrf52840。

实际配置

  1. 主控采用的是Seeed XIAO BLE,他的芯片是nrf52840,上面搭载了arduino的底子,所以用户上层用arduino IDE进行烧写代码。
  • 他的蓝牙部分采用的是Adafruit相关库。
  1. PC部分通过实践采用的是Adafruit_CircuitPython_BLE的库,所以在linux中运行,暂时不能在windows中。
  • OS:Ubuntu 20.04

实现过程

安装库

我的python版本是ubuntu自带的3.8

pip3 install adafruit-circuitpython-ble

如果需要在虚拟环境中安装,则

mkdir project-name && cd project-name
python3 -m venv .venv
source .venv/bin/activate
pip3 install adafruit-circuitpython-ble

测试

from adafruit_ble import BLERadio

radio = BLERadio()
print("scanning")
found = set()
for entry in radio.start_scan(timeout=60, minimum_rssi=-80):
    addr = entry.address
    if addr not in found:
        print(entry)
    found.add(addr)

print("scan done")

官方库:Adafruit_CircuitPython_BLE

搜索蓝牙并连接

上面的demo是检索蓝牙的部分,通过测试我们可以轻松检索到nrf52840的蓝牙。然后进行连接:

radio.connect(entry)

搜索到了 就停止搜索

radio.stop_scan()

数据传输

ntypes 是传输数据的个数,最多默认是64,可以自己在下载的数据包中的UARTService类修改它的buffer容量。
读取数据一共有三个函数可以使用:

def read(self, nbytes: Optional[int] = None) -> Optional[bytes]
def readinto(self, buf: WriteableBuffer, nbytes: Optional[int] = None) -> Optional[int]
def readline(self) -> Optional[bytes]

书写数据可以:

def write(self, buf: ReadableBuffer) -> None

举个例子

data = device[UARTService].read(ntypes)
message = data.decode()

具体案例可以参我的github的代码文章来源地址https://www.toymoban.com/news/detail-489160.html

到了这里,关于NRF52840 和电脑 进行蓝牙通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信

    NRF24L01 是 NORDIC 公司最近生产的一款无线通信通信芯片,采用 FSK 调制,内部 集成 NORDIC 自己的 Enhanced Short Burst 协议。可以实现点对点或是 1 对 6 的无线通信。无线通信速度可以达到 2M(bps)。NORDIC 公司提供通信模块的 GERBER 文件,可以直接加工生产。嵌入式工程师或是单片

    2024年02月03日
    浏览(89)
  • 基于江科大STM32利用NRF24L01向电脑发送 汉字、字符、数字、浮点数。

    最近在使用stm32单片机时,有一个需求,就是通过NRF24L01向电脑发送数据,学习了部分教程后,发现目前分享的程序里基本只能发送简单的16进制数,并不能发送汉字、字符、数字、浮点数等,于是在其基础上进行改进,目前可以实现发送汉字、字符、数字、浮点数,需要源码

    2024年04月10日
    浏览(45)
  • STM32在使用NRF24L01中PC(电脑)连接无显示数据以及出现error的解决办法

    1.1 问题情况 在使用 正点原子 的代码中有以下这样一段代码: 我们可以看到,这里调用了 NRF24L01 的自检函数 ,用于判断自检是否通过,当自检不通过时,在LCD上就会显示 NRF24L01 Error 1.2 解决办法 其实这个问题是 引脚冲突的问题 ,我们可以在正点原子提供的原理图(这里我

    2024年01月23日
    浏览(56)
  • nRF51822 入门必备教程(一篇搞定nRF51)

    部署PC端开发环境 nRFgo Studio v1.14或更高版本 Keil MDK-ARM Lite v4.54或更高版本 J-Link Software v4.52b或更高版本 下载手机端app IOS系统:进入App Store并搜索“ nRFToolbox ” Android系统(4.3或更高):下载nRFToolbox,解压后安装即可 注意:蓝牙4.0和传统蓝牙的开发方法不同,首先需要手机支持蓝

    2024年02月04日
    浏览(45)
  • HC-08蓝牙模块与电脑进行蓝牙远程通信! 支持HC-02、HC-08、HC-42蓝牙

    1、PC需自带蓝牙,或使用外设的蓝牙适配器,且PC为WIN10系统。 2、适用于HC-02蓝牙20+4.0BLE模块、HC-08蓝牙4.0BLE模块、HC-42蓝牙5.0BLE模块 3、模块必须为从机,支持模块自身的波特率。 1、利用USB转TTL将HC-08蓝牙模块连接电脑,并打开串口助手。 2、在Microsoft Store(windows商店)搜索

    2024年02月09日
    浏览(63)
  • Nordic nRF9160 SiP 和 nRF5340 SoC 通过PSA 2 级认证

    Nordic Semiconductor 官方宣布其集成LTE-M/NB-IoT调制解调器和全球导航卫星系统(GNSS)的nRF9160™低功耗系统级封装(SiP)和nRF5340™先进多协议系统级芯片(SoC)产品通过了平台安全架构(Platform Security Architecture, PSA) 二级认证,这证明这两款器件能有效应对恶意软件的攻击。本次评测采用了

    2024年02月11日
    浏览(37)
  • NRF24L01学习操作教程(二)——NRF实现一对一,一对多通讯

    上篇博客链接:https://blog.csdn.net/DIVIDADA/article/details/130599974?spm=1001.2014.3001.5501 以下单片机例程都是基于STM32 HAL库,在文档末尾,我会提供参考博客和源码程序的链接。 在CubeMx中配置单片机时钟、SPI通讯接口、NRF24L01接口等,并生成Keil工程 将NRF24L01的驱动程序的.c文件和.h文件

    2024年01月15日
    浏览(46)
  • nRF52832——GPIO端口的应用

    GPIO 称为输入输出端口,根据 nRF52832 封装最大具有 32 个 I/O 口,可以通过 P0 这样的端口访问和控制多达 32 个端口。而且每个端口都可以单独访问。特点如下: 最大 32 个 GPIO,分别为 P0.0~P0.31 具有 8 个带有模拟通道的 GPIO 口,可以用于 SAADC、COMP 和 LPCOMP 输入 可以配置的输入

    2024年03月12日
    浏览(41)
  • 【nRF Connect】一、下载方法及简介

    nRF Connect是NORDIC开发的一款低功耗蓝牙测试APP,仅支持安卓。可以扫描和探索低功耗蓝牙设备并与它们通信。支持许多蓝牙 SIG 采用的配置文件,以及 Nordic Semiconductor 或 Google 的 Eddystone 的设备固件更新配置文件 (DFU)。 从NORDIC官网进入,选择产品=低功耗蓝牙=开发工具=可以找到

    2024年02月11日
    浏览(38)
  • STM32通过K210进行PID巡线,使用蓝牙模块与电脑通信从而进行P,I,D参数的调节

    目录 一.前言部分(废话部分) 二.K210色块识别 1.必要知识 2.色块识别 3.单片机的接收代码 三.通过蓝牙连接在电脑上实现PID的调参 我使用的是HAL库,如果你使用的是标准库的话可以根据对应标准库的函数进行更改即可 因为之前使用灰度传感器进行巡线,即使用上PID,最后的效果也

    2024年02月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包