实操!玩转STM32WL系列Sub-GHz无线驱动程序
问:使用 STM32WL 系列 Sub-GHz 无线驱动程序的应用示例
STM32WL系列器件包括内置的低于1GHz无线外设 ( Sub-GHz 指的是低于 1GHz 的无线电频段 ),能够支持LoRa(仅限STM32WLE5/55器件)、(G)FSK、(G)MSK和BPSK调制方案。与此无线外设的通信是通过使用设备参考手册 第5.8节中概述的命令的内部SPI接口完成的。虽然该RF接口的抽象层是在低于1GHz Phy中间件中定义的(在STM32CubeWL MCU Package 中可得),但将该中间件添加到使用STM32CubeMX的项目中需要在其他几个外设和库之间进行高级配置。这会导致一个更大、更复杂的项目,消耗更多的设备内存,并导致抽象层低效率。对于要求功耗低的简单应用,将RF接口驱动程序与低于1GHzPhy中间件隔离并直接利用它可能是有益的。
低于1GHz Phy中间件由高层 (radio.c) 和低层 (radio_driver.c) 组成。高级驱动程序提供了许多有用的函数,这些函数抽象了低层无线功能,例如RadioInit() ,RadioSetTxConfig() 和RadioSend() 。然而,尽管这些函数很方便,但它们的代价是效率低下,比如冗余的函数调用和过度依赖诸如音序器和定时器服务器之类的实用程序。低层驱动程序简单地实现参考手册 中概述的 SUBGHZSPI 命令,并提供低于1GHz无线寄存器的定义。以牺牲一些质量属性(如可维护性和可移植性)为代价,使用该驱动程序进行编码直接允许程序员对其应用程序进行更大的控制。
详细演示如何将这个低层与低于 1GHz Phy 中间件隔离开来,并直接添加到 STM32CubeIDE 项目的操作过程, 请查看「链接」。
要求: 要准确地跟随演示教程,需要以下项目。
STM32CubeIDE (版本1.8.0)STM32CubeWL MCU Package (版本1.1.0)NUCLEO-WL55JC1NUCLEO-WL55JC1 - STM32WL Nucleo-64 开发板
应用程序示例
作为以独立方式使用低于1GHz Phy驱动程序的示例,我们创建了两个示例程序(可在GitHub Repository 上获得)。这些示例复制了STM32CubeWL MCU Package 中SubGHz_Phy_PingPong示例的高级功能。也就是说,它们都实现了图1所示的状态机。这两个示例之间的唯一区别是一个使用LoRa调制解调器,而另一个使用FSK调制解调器。
图 1: 低层无线驱动乒乓样例项目有限状态机
两个NUCLEO-WL55JC1 板需要运行这些示例,其中一个将充当主机,而另一个将充当从机。最初,两个板都处于主状态,以随机间隔发送“PING”消息并等待响应。最终,两个板同步,因此只有一个设备发送“PING”消息,另一个设备发送“PONG”消息作为响应。要执行该应用程序,请按照前一节提供的步骤创建一个项目,该项目包含低于1GHz 无线驱动程序。然后,只需将项目的main.c 文件的内容替换为GitHub Repository 中的一个 文件的内容,具体取决于你希望在示例中使用哪种调制方案。最后,构建项目并使用它对两个Nucleo板进行编程。
注意,这些示例与SubGHz_Phy_PingPong示例兼容。也就是说,一块板可以用上述应用程序编程,另一块板可以用SubGHz_Phy_PingPong应用程序编程,它们将按预期一起工作。然而,为了利用GFSK调制,必须首先对SubGHz_Phy_PingPong示例进行稍微修改。打开subghz_phy_app.h 文件,修改第一个define指令如下:
#define USE_MODEM_LORA 0 //1
#define USE_MODEM_FSK 1 //0
#define REGION_US915 //REGION_EU868
然后,在radio.c 中找到RadioRandom() 函数,注释掉RadioSetModem(MODEM_LORA); 这一行不仅不需要获得随机数,还会擦除之前初始化步骤中设置的无线配置。因此,在这种情况下,它被认为是一个bug,不应该被包括在内。SubGHz_Phy_PingPong示例现在准备编译并烧写到NUCLEO-WL55JC1 板之一。另一个板应该根据上述说明使用GitHub Repository 中的main_gfsk.c 文件的内容进行编程。
在初始化和执行图1所示的有限状态机之前,通过调用清单1中定义的radioInit() 函数来初始化无线。该函数使用与SubGHz_Phy_PingPong示例相同的无线配置,但有一个例外。在参考手册 第6.1节的末尾,它说:
SMPS需要时钟才能正常工作。如果由于任何原因这个时钟停止,设备可能会被破坏。为了避免这种情况,使用时钟检测,当出现时钟故障时,关闭SMPS并启用LDO。SMPS时钟检测通过低于1GHz无线 SUBGHZ_SMPSC0R.CLKDE使能。缺省情况下,SMPS时钟检测功能处于关闭状态,开启SMPS前必须开启时钟检测功能。
尽管有这个警告,低于1GHz Phy中间件的高层和低层都没有启用SMPS时钟检测。因为DCDC_ENABLE 是在radio_config.h 中定义的,所以SUBGRF_SetRegulatorMode() 函数将启用SMPS降压转换器。因此,在此函数调用之前,手动启用SMPS时钟检测。
详细main_gfsk.c 资料,请查看「链接」
更多应用示例相关技术内容,请查看以下内容:
Nordic-Semiconductor的nPM1100和nRF5x的应用示例 「链接」使用 STM32 来控制 NeoPixels 「链接」为 Renesas ZMOD4510 室外空气质量传感器,配备 Machinechat 「链接」使用 Seeed 的 LoRa-E 5模块,为 LoRaWAN 网络开发风速/风向传感器 「链接」在 LoRaWAN 专用网络中添加无线 Modbus RS485-LN Dragino LoRa 接口 「链接」最后,如果你喜欢这篇文章,快分享给更多的小伙伴吧! 切记点个赞哦!
Windows 11中卸载驱动程序的几种方法,总有一种适合你
设备驱动程序是允许Windows与硬件设备通信的程序。没有它们,计算机将无法运行内部的某些组件。如果你PC上的其中一个设备驱动程序引发了问题,你可能希望完全删除它。
Windows 11使消除不需要的设备驱动程序变得相当容易。你可以从设备管理器、设置应用程序、控制面板或命令提示符终端卸载驱动程序。我们将详细介绍如何使用所有这些工具。
使用设备管理器卸载驱动程序
设备管理器是一个方便的实用程序,允许你管理安装在系统上的各种硬件设备。你还可以使用它轻松地从计算机中卸载驱动程序。下面是如何做到这一点。
1、右键单击开始图标或按Windows键+X打开超级用户菜单。然后,从列表中选择设备管理器。
2、在“设备管理器”窗口中,找到要删除的驱动程序。右键单击它并选择卸载设备。
3、出现提示时选择卸载。
4、完成这些步骤后,你的计算机将从PC中删除指定的驱动程序。
通过设置应用程序卸载驱动程序
在Windows 11中卸载驱动程序的另一个选项是使用设置应用程序。它就像从Windows卸载应用程序一样简单。下面是你可以遵循的步骤。
1、打开“开始”菜单,然后单击齿轮形图标以启动“设置”应用程序。或者,你可以按Windows键+I来实现相同的目的。
2、使用左侧窗格导航到“应用”选项卡。然后,单击“应用和功能”。
3、向下滚动或使用顶部的搜索栏来定位要删除的驱动程序。单击它旁边的三点菜单图标,然后选择卸载。
4、再次选择卸载以确认。
通过控制面板卸载驱动程序
尽管微软打算很快让控制面板退役,但它仍然是在Windows上进行系统级更改的流行选项。如果你是喜欢控制面板的资深Windows用户,则可以采用以下步骤来删除设备驱动程序。
1、按Windows键+R打开“运行”对话框。在框中键入control,然后按回车键。
2、使用右上角的下拉菜单将视图类型更改为“小”或“大”图标。然后,单击程序和功能。
3、从列表中找到并选择不需要的驱动程序。然后,单击顶部的卸载选项。
4、当出现用户帐户控制(UAC)提示时,选择是。
从那里,按照屏幕上的提示删除驱动程序。
使用命令提示卸载驱动程序
命令提示符是Windows上可用的两个命令行解释器之一。如果你是命令行的高手,则可能已经在使用命令提示符来运行批处理文件、解决系统问题和执行各种其他任务。但你知道你也可以使用它从Windows PC卸载驱动程序吗?我们将向你展示如何操作。
1、单击任务栏上的搜索图标或按Windows键+S打开搜索菜单。在搜索框中键入cmd,然后选择以管理员身份运行。
2、当出现用户帐户控制(UAC)提示时,选择是。
3、粘贴以下命令,然后按回车键查看电脑上可用驱动程序的列表。
Dism /online /Get-Drivers /Format:Table
4、记下要卸载的驱动程序的已发布名称。
5、最后,运行以下命令以删除驱动程序。
pnputil /delete-driver [Published Name] /uninstall /force
将上述命令中的[Published Name]替换为上一步中记录的名称。
在下面的示例中,我们尝试删除三星电子调制解调器驱动程序。因此,这是我们使用的命令:
pnputil /delete-driver oem52.inf /uninstall /force
运行上述命令后,Windows将从PC中删除指定的驱动程序。类似地,如果需要,可以使用上述命令卸载更多驱动程序。
删除没有的驱动程序
Windows 11 PC可能包含不再使用的设备的驱动程序。删除旧的或未使用的驱动程序是至关重要的,以便你的系统平稳运行。幸运的是,Windows 11提供了几种卸载设备驱动程序的方法。
相关问答
Audio 总线上的 调制解调器 设备 驱动 打不上啊-ZOL问答出现这种情况有两种可能一你的机器有没有声音要是没有声音的话那就是声卡驱动你下个叫UAA的驱动一个补丁KB888111打完补丁再装声卡驱动第二你的机器有...
win7系统怎样安装 调制解调器驱动 - 173****3386 的回答 - 懂得右击【我的电脑】图标,执行【属性】命令,单击【设备管理器】按钮;执行没有安装驱动的硬件的【扫描检测硬件改动】命令;扫描后会自动弹出【硬件更新...
拨号时显示没有 调制解调器 无法拨号连接?用网线宽带上网跟用电话线拨号上网是两码事。在设备管理器里面查看有没有“调制解调器”,这一项目下有没有带感叹号或红叉的设备,如有感叹号,说明调制解调器驱...
有个电缆 调制解调器 ,怎么上网?需要猫吗?你可以上网了。如果是...调解器就是猫。首先将电视的宽带插座和猫的宽带信号接口用信号线连起来,接着把猫的网线接口和路由器的WAN口连接(你需要一个路由)。...
拨号上网为什么无法打开,显示 调制解调器 是不可用的设备?用网线宽带上网跟用电话线拨号上网是两码事。在设备管理器里面查看有没有“调制解调器”,这一项目下有没有带感叹号或红叉的设备,如有感叹号,说明调制解调器驱...
win7 调制解调器 错误651 驱动 正常?硬件原因既然提示调制解调器错误,那么我们来看下网卡是否有问题,很可能在驱动安装上有些问题,我们可以试试通用的驱动或者是专用网卡驱动;远程访问记事簿文...
电脑宽带连接连不上,显示宽带 调制解调器 出现连接问题,怎么处...确保你的电脑的无线或有线连接驱动是最新的?有时候过时的驱动可能导致连接不稳定。更新后重新连接看能否解决问题首先,检查下路由器是否正常工作,重启一下试...
路由器尝试重启 调制解调器 啥意思?1、重启调制解调器(俗称猫,英文名modem);2、更换一个猫,重新拨号上网;3、重新安装网卡驱动程序;4、更换一块网卡;5、查杀电脑病毒,全盘杀毒;6、打...1、...
笔记本 驱动 英文名字和官方名字?MotherBroadDriver主板驱动displaycardDriver显卡驱动NicDriver网卡驱动SoundDriver声卡驱动DVD-ROMDriverDVD驱动Mo...
计算机 驱动 方式?1、芯片组驱动:主板芯片整合主板的功能,如果不安装该驱动,会导致主板无法发挥应有性能,进而影响整个平台性能。2、声卡驱动:无论集声还是独声,均需要安装...