基于STM32F103C8T6核心板的E01系列无线模块(nRF24L01P方案)和E01C系列无线模块(SI24R1芯片方案)的EBYTE官网例程移植。EBYTE官网例程是基于STM8L151编写,本次实验的目的是将该例程移植到常见的MCU型号STM32F103C8T6,实现基本的无线通信。电脑端的串口调试助手操作和显示数据收发。
2个E01系列的相同型号的无线模块(或者2个E01C系列的相同型号的无线模块);
2个USB转TTL转接板模块(CH340版本),例如E15-USB-T3型号转接板模块;
2个STM32F103C8T6最小系统板;
1个STM32烧录器(DAP-LINK或者ST-LINK等等);
1台电脑;
杜邦线若干;
STM32的开发软件(MDK_ARM,IAR或者STM32CubeIDE等等);
STM32CubeMX;
XCOM V2。6 串口调试助手;
CH340驱动;
视选择型号,参考厂家提供的模块手册。因为E01和E01C无线射频模块分别使用的nRF24L01P芯片方案和SI24R1射频方案,但是寄存器基本一致,操作方式也大致相同,所以驱动程序可以通用。
本次实验使用E01-ML01D无线模块,无线模块基于nRF24L01P方案,采用3.3V供电,最大发射功率0dBm,参考通信距100m。无线模块的寄存器和详细操作可以直接参考nRF24L01P的芯片手册。E01-ML01D无线模块示意及引脚定义如下图。
本次实验使用的STM32开发环境是MDK_ARM和STM32CubeMX,无线模块烧录器使用的是ST-LINK。涉及到的软件获取和安装方法这里不做介绍,建议参考网上的教程。注意,如果使用的大功率E01系列无线模块或者E01C系列无线模块,例如发射功率大于等于20dBm,需要考虑供电是否达到要求,本次使用的是E01-ML01D系列无线模块的发射电流在13mA,一般的STM32F103C8T6核心板都可以满足要求。
在亿佰特官网搜索E01-ML01D型号无线模块,在相关下载一栏,找到通信例程并下载解压。
①、打开STM32CubeMX,新建STM32F103C8T6工程,进入MCU配置
在Pinout & Configuration 一栏下展开System Core,分别配置SYS和RCC:
时钟配置完成后,回到Pinout & Configuration 一栏配置其他MCU外设。
选择USART1,配置USART1参数:
开启USART1全局中断:
选择SPI1,配置为全双工主机模式,射频芯片的SPI接口速率最大支持10M,所以MCU的SPI的速率要小于等于10M,CPOL选择Low,CPHA选择1Edge,NSS引脚控制选择Software。不启用SPI1的全局中断,所以NVIC Setting不设置。
直接点击MCU对应引脚,将其配置。将PA4作为SPI1的片选引脚,PB0作为E01-ML01D无线模块的CE引脚,PB1作为E01-ML01D无线模块的IRQ引脚。所以需要把PA4和 PB0 配置为GPIO_Output,PB1配置为GPIO_Input。配置引脚后,在GPIO选项中,会显示配置的这三个引脚配置详情。然后在GPIO选项中,需要配置GPIO引脚的其他参数。
这一步完成后,我们要使用的MCU外设已经基本完成配置,接下来是工程的设置和保存。
配置工程及代码生成配置,最后点击GENERATE CODE,等待进度条完成后会出现一个弹窗,选择Open Project 直接打开工程。接下来就是在MDK_ARM中的操作。
基于STM32F103C8T6核心板的无线模块代码移植教程方案请阅读下文《基于STM32方案的E01和E01C无线模块驱动移植案例教程2》。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多无线射频模块和无线通信技术资料,感兴趣的小伙伴可以登录我们的亿佰特官网进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 无锡办事处刘经理:13558641933
成都总部销售经理:
秦 科(无线模块):18884314654 冯子恒(无线模块):18828049434
蔡友银(无线模块):13882211021 葛宇龙(通信设备):19138800613
胡兵(外贸销售经理):18584911141、 sales06@ebyte.com
业务邮箱:support@cdebyte.com 全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号