stm32f103zet6nrf905
更多
STM32F103ZET6 与 nRF905 的配合使用指南:
1. 硬件连接
- SPI接口:
SCK(nRF905) → PA5 (STM32 SPI1 CLK)MOSI→ PA7 (SPI1 MOSI)MISO→ PA6 (SPI1 MISO)CSN(片选) → 自定义GPIO(如PB0)
- 控制引脚:
TRX_EN→ PB1(设置收发模式)TX_EN→ PB2(发送/接收模式选择)PWR→ PB3(电源使能)CD(载波检测) → PB4(可选中断)AM(地址匹配) → PB5(可选中断)
- 电源:确保nRF905供电在1.9-3.6V范围内,与STM32的3.3V电平兼容。
2. 软件配置(以标准外设库为例)
SPI初始化
void SPI1_Init(void) {
SPI_InitTypeDef SPI_InitStruct;
GPIO_InitTypeDef GPIO_InitStruct;
// 使能时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1, ENABLE);
// 配置SCK, MOSI, MISO引脚
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_6;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
// SPI参数
SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStruct.SPI_Mode = SPI_Mode_Master;
SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low; // 根据nRF905手册调整
SPI_InitStruct.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;
SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; // 9MHz (72MHz/8)
SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_Init(SPI1, &SPI_InitStruct);
SPI_Cmd(SPI1, ENABLE);
}
nRF905初始化
void nRF905_Init(void) {
// 配置控制引脚为输出
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStruct);
// 上电并进入待机模式
NRF905_PWR_UP(1);
NRF905_TRX_EN(0);
NRF905_TX_EN(0);
// 配置nRF905寄存器(示例)
uint8_t config[10] = {
0x00, // CH_NO: 频段设置(根据实际频率计算)
0x0C, // 输出功率+10dBm,自动重发,16位CRC
0x44, // 接收/发送地址长度4字节
0x20, // 接收有效数据长度32字节
0x20, // 发送有效数据长度32字节
0xCC, 0xCC, 0xCC, 0xCC, // 接收地址(4字节)
};
nRF905_WriteConfig(config);
}
3. 数据收发流程
发送数据
void nRF905_SendData(uint8_t *data, uint8_t len) {
NRF905_PWR_UP(1); // 上电
NRF905_TX_EN(1); // 进入发送模式
NRF905_TRX_EN(1); // 启动发送
// 写入目标地址和数据
nRF905_WriteTxAddress(0x12345678); // 目标地址(4字节)
nRF905_WriteTxPayload(data, len);
// 等待发送完成(或使用中断)
while (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5)); // 等待AM引脚变高
NRF905_TRX_EN(0); // 返回待机模式
}
接收数据(中断方式)
// 中断服务函数
void EXTI4_IRQHandler(void) {
if (EXTI_GetITStatus(EXTI_Line4) != RESET) {
uint8_t rx_data[32];
nRF905_ReadRxPayload(rx_data, 32);
// 处理接收到的数据...
EXTI_ClearITPendingBit(EXTI_Line4);
}
}
4. 常见问题
- 通信不稳定:
- 检查SPI时钟相位(CPHA/CPOL)是否匹配nRF905要求。
- 确保电源去耦电容(100nF)靠近芯片。
- 调整天线匹配电路(推荐50Ω阻抗)。
- 无法进入发送模式:
- 验证
TRX_EN和TX_EN引脚电平时序是否符合手册要求。 - 检查配置寄存器中的输出功率和频段设置。
- 验证
- 数据校验错误:
- 启用nRF905的CRC校验功能。
- 确保发送和接收方的地址配置一致。
建议:参考nRF905数据手册第8章“SPI时序”和第9章“配置流程”,结合STM32的SPI外设特性调整代码。调试时可通过逻辑分析仪抓取SPI波形,验证时序准确性。
国产APM32F103ZET6替换STM32F103ZET6经验分享
芯片,看了一些测评,有人推荐这一款APM32的单片机,价格比ST同型号的便宜,果断下单,以下是我使用APM32F103ZET6替换STM32F103ZET6的一些分享,参考了网上各路大神的资料后作的总结。 1 从手册
2022-06-08 11:43:42
基于STM32F103ZET6的无线语音控制小车设计
基于STM32F103ZET6无线语音控制小车设计与实现基于STM32F103ZET6无线语音控制小车设计与实现摘要:本文以STM32F103ZET6
2021-08-23 08:22:16
STM32F103ZET6的板载芯片
参考资料STM32F1数据手册:STM32F103ZET6.pdfSTM32F1中文手册:STM32F1xx中文参考手册.pdf开发板原理图:X
2021-08-11 07:54:49
stm32f103zet6和stm32f407zg spi通信
stm32f103zet6和stm32f407zg spi通信stm32f103zet6 master
2021-08-05 07:49:25
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览