四、nRF24L01无线通信系统的调试与实现
4.1 nRF24L01无线通信系统调试 4.1.1 硬件调试
图4-1 nRF2401无线通信调试图
在实物连接完成后,对线路进行检查。看nRF2401的电源是否正确连接在了STM32开发板的3.3V电源上,地线是否正确连接在开发板地线,然后其他6脚分别和PA4~PA7和PB0~PB1相连接。 4.1.2软件调试
软件的调试主要是在Keil上进行,初步编译完成后,生成相关的.hex文件,将hex烧入STM32开发板中,检查软件是否实现了自己想要的功能。检测程序功能效果,再经过编译修改,最终得到理想的程序代码。软件调试建立在硬件调试成功的基础之上。
4.2 nRF2401无线通信系统总体调试
1. 按下矩阵键盘,观察数码管是否正确显示对应的数值。 2. 观察接收端是否同步显示对应数值。
20
五、总结
5.1 nRF2401无线通信系统的功能实现
本文设计了一个无线通信系统系统,以低成本、高性能和高可靠性为目标,有针对性的选择硬件芯片型号,反复设计与调试软件程序,最终实现数据的收发,本系统成功实现了预计的功能。本系统的实物结构如图5-1所示。
图5-1 nRF2401无线通信系统实物图
5.2 nRF2401无线通信系统功能展示 5.2.1 发送数据
按下发送方的3所对应的按键,并按下发送键,接受方显示对应的数字。
21
图5-2 发送数据
5.2.2 接受数据
再由原接收方发送数据,原发送方接受数据。
22
图5-3 接受数据
5.2.3 最远有效通信距离
经测试,本系统最远有效通信距离可达5.5米。 5.3结论
通过nRF2401的点对点相结合的无线通信,nRF2401无线通信系统实现了数据的收发,并在数码管上将数据展现给用户。通过现场测试与应用证明了该系统的可用性
23
附录
部分程序源代码 主控函数 int main(void) {
u8 t,n1,i; u8 tx_buf[33]; u8 rx_buf[33];
Stm32_Clock_Init(9); //系统时钟设置 delay_init(72); //延时初始化 exti_init(); LED_Init();
//初始化与LED连接的硬件接口
uart_init(72,9600); //串口初始化为9600
KEY_Init(); //初始化与按键连接的硬件接口
Matrix_Keyboard_Init(); SEG_Init(); NRF24L01_Init(); GPIOC->ODR|=0X0f; GPIOD->ODR|=0XFf;
while(NRF24L01_Check())//检测不到24L01
{
GPIOC->ODR=0Xf0; } while(1) {
RX_Mode();
24