K_A28_004 基于STM32等单片机驱动SI4432对发SI4432实现数据传输 OLED显示

news2024/10/2 12:35:33

K_A28_004 基于STM32等单片机驱动SI4432对发SI4432实现数据传输 OLED显示

  • 所有资源导航
  • 一、资源说明
  • 二、基本参数
    • 参数
    • 引脚说明
  • 三、驱动说明
    • 时序:
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.1、STC89C52RC+SI4432无线模块
      • 1.2、STM32F103C8T6+SI4432无线模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

请添加图片描述

所有资源导航

其他资料目录 直戳跳转

一、资源说明

单片机型号测试条件模块名称代码功能
STC89C52RC晶振11.0592MSI4432无线模块STC89C52RC驱动SI4432无线模块 串口与OLED0.96双显示
STM32F103C8T6晶振8M/系统时钟72MSI4432无线模块STM32F103C8T6驱动SI4432无线模块 串口与OLED0.96双显示

二、基本参数

参数

请添加图片描述

引脚说明

SI4432模块引脚说明
VDD电源+ 3.3V
GNDGND 电源负极
SDN除关闭模式外 SDN=0,当 SDN=1 芯片将完全关 闭,寄存器所用数据将丢失
NIRQ中断状态输出
NSELSPI 使能
SCLKSPI 时钟
SDISPI 数据输入
SDOSPI 数据输出

三、驱动说明

时序:

请添加图片描述

请添加图片描述
请添加图片描述

对应程序:

以51为例

uint8_t SPI_RW(uint8_t byte)
{

	uint8_t bit_ctr;

	for(bit_ctr=0; bit_ctr<8; bit_ctr++)
	{
		if(byte & 0x80)
			MOSI = 1;
		else
			MOSI = 0;																 
		byte = (byte << 1);                      
		SCK = 1;                                   
		byte |= MISO;                             
		SCK = 0;                                
	}
	return(byte);                              
}

uint8_t SPI_RW_Reg(uint8_t addr, uint8_t SPI_data)
{
	uint8_t status;
	
	NSS = 0;
	SPI_RW(addr);
	status = SPI_RW(SPI_data);
	NSS = 1;
	
	return(status);
}

void SPI_Read_Buf(uint8_t addr, uint8_t *data_, uint8_t number)
{
	int number_ctr;
	
	NSS = 0;
	SPI_RW(addr);
	for(number_ctr=0;number_ctr<number;number_ctr++)
	data_[number_ctr] = SPI_RW(0);
	NSS = 1;
}

void SPI_Write_Buf(uint8_t addr, uint8_t *SPI_data, uint8_t number)
{
	uint8_t number_ctr;
	NSS = 0;  
	SPI_RW(addr);   
	for(number_ctr=0; number_ctr<number; number_ctr++)
	SPI_RW(*SPI_data++);
	NSS = 1;
}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+SI4432无线模块

//SI4432发射模块引脚定义

sbit SDNN= P1 ^ 0;	//SDN
sbit NIRQ= P1 ^ 1;	//IRQ
sbit NSS = P1 ^ 2;  //NSEL
sbit SCK = P1 ^ 3; //SCLK
sbit MOSI = P1 ^ 4;//SDI
sbit MISO = P1 ^ 5;//SDO


//SI4432接收模块引脚定义
sbit SDNN= P1 ^ 0;	//SDN
sbit NIRQ= P1 ^ 1;	//IRQ
sbit NSS = P1 ^ 2;  //NSEL
sbit SCK = P1 ^ 3; //SCLK
sbit MOSI = P1 ^ 4;//SDI
sbit MISO = P1 ^ 5;//SDO


//定义OLED0.96端口
sbit SCL=P1^6; //串行时钟
sbit SDA=P1^7; //串行数据

1.2、STM32F103C8T6+SI4432无线模块

//SI4432发射模块引脚定义
//IRQ
#define NIRQ_IOPORT                                GPIOA
#define NIRQ_PIN                                   GPIO_Pin_2
//SDN
#define SDNN_IOPORT                                GPIOA
#define SDNN_PIN                                   GPIO_Pin_3

/*!
 * SX1276 SPI definitions
 */
 //NSEL
#define NSS_IOPORT                                  GPIOA
#define NSS_PIN                                     GPIO_Pin_4

#define SPI_INTERFACE                               SPI1
#define SPI_CLK                                     RCC_APB2Periph_SPI1
//SCLK
#define SPI_PIN_SCK_PORT                            GPIOA
#define SPI_PIN_SCK_PORT_CLK                        RCC_APB2Periph_GPIOA
#define SPI_PIN_SCK                                 GPIO_Pin_5
//SDO
#define SPI_PIN_MISO_PORT                           GPIOA
#define SPI_PIN_MISO_PORT_CLK                       RCC_APB2Periph_GPIOA
#define SPI_PIN_MISO                                GPIO_Pin_6
//SDI
#define SPI_PIN_MOSI_PORT                           GPIOA
#define SPI_PIN_MOSI_PORT_CLK                       RCC_APB2Periph_GPIOA
#define SPI_PIN_MOSI                                GPIO_Pin_7


		
//SI4432接收模块引脚定义
//IRQ
#define NIRQ_IOPORT                                GPIOA
#define NIRQ_PIN                                   GPIO_Pin_2
//SDN
#define SDNN_IOPORT                                GPIOA
#define SDNN_PIN                                   GPIO_Pin_3

/*!
 * SX1276 SPI definitions
 */
 //NSEL
#define NSS_IOPORT                                  GPIOA
#define NSS_PIN                                     GPIO_Pin_4

#define SPI_INTERFACE                               SPI1
#define SPI_CLK                                     RCC_APB2Periph_SPI1
//SCLK
#define SPI_PIN_SCK_PORT                            GPIOA
#define SPI_PIN_SCK_PORT_CLK                        RCC_APB2Periph_GPIOA
#define SPI_PIN_SCK                                 GPIO_Pin_5
//SDO
#define SPI_PIN_MISO_PORT                           GPIOA
#define SPI_PIN_MISO_PORT_CLK                       RCC_APB2Periph_GPIOA
#define SPI_PIN_MISO                                GPIO_Pin_6
//SDI
#define SPI_PIN_MOSI_PORT                           GPIOA
#define SPI_PIN_MOSI_PORT_CLK                       RCC_APB2Periph_GPIOA
#define SPI_PIN_MOSI                                GPIO_Pin_7


//定义OLED0.96端口
	/*STM32F103C8T6芯片的硬件I2C: PB6 -- SCL; PB7 -- SDA */
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
	

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 ( 滑到最后添加个人号)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

/************************************************************************************

//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   :SI443模块(发射)测试程序
//  测试条件   : STC89C52RC   晶振11.0592

SI443模块-----------------------------STC89C52RC
VCC-----------------------------------3.3V
GND-----------------------------------GND
SDN ----------------------------------P1.0
NIRQ----------------------------------P1.1
NSEL ---------------------------------P1.2
SCLK----------------------------------P1.3
SDI ----------------------------------P1.4
SDO-----------------------------------P1.5
*************************************************************************************/

//STC89C52RC+SI4432接收模块   
/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   :SI443模块(接收)测试程序
//  测试条件   : STC89C52RC   晶振11.0592

SI443模块-----------------------------STC89C52RC
VCC-----------------------------------3.3V
GND-----------------------------------GND
SDN ----------------------------------P1.0
NIRQ----------------------------------P1.1
NSEL ---------------------------------P1.2
SCLK----------------------------------P1.3
SDI ----------------------------------P1.4
SDO-----------------------------------P1.5


OLED0.96------------------------------STC89C52RC
VCC-----------------------------------3.3V
GND-----------------------------------GND
SCL---------------------------------- P1.6
SDA---------------------------------- P1.7
*************************************************************************************/

STM32F103C8T6

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   :SI443模块(发射)测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟72M

SI443模块-----------------------------STM32F103C8T6
VCC-----------------------------------3.3V
GND-----------------------------------GND
SDN ----------------------------------GPIOA_3
NIRQ----------------------------------GPIOA_2
NSEL ---------------------------------GPIOA_4
SCLK----------------------------------GPIOA_5
SDI ----------------------------------GPIOA_7
SDO-----------------------------------GPIOA_6
*************************************************************************************/

//STM32F103C8T6+SI4432接收模块   
/************************************************************************************

//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   :SI443模块(接收)测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟72M

SI443模块-----------------------------STM32F103C8T6
VCC-----------------------------------3.3V
GND-----------------------------------GND
SDN ----------------------------------GPIOA_3
NIRQ----------------------------------GPIOA_2
NSEL ---------------------------------GPIOA_4
SCLK----------------------------------GPIOA_5
SDI ----------------------------------GPIOA_7
SDO-----------------------------------GPIOA_6


OLED0.96------------------------------STM32F103C8T6
VCC-----------------------------------3.3V
GND-----------------------------------GND
SCL---------------------------------- GPIOB_6
SDA---------------------------------- GPIOB_7	
*************************************************************************************/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于tensorflow和tensorflow-quantum的量子机器学习环境搭建, Mac环境下

量子神经网络&#xff08;Quantum neural networks, QNN&#xff09;及其变体量子卷积神经网络&#xff08;Quantum convolutional networks, QCNN&#xff09;&#xff0c;在内存和速度方面都有着高效的优势&#xff0c;能将经典向量由n维编码到log2^n个量子位&#xff0c;同时…

分子生物学 第四章 DNA的生物合成

文章目录第四章 DNA的生物合成第一节 DNA复制的一般特征1 DNA的半保留复制2 DNA的双向复制3 DNA的半不连续复制第二节 DNA复制的酶学1 DNA聚合酶1.1 原核生物DNA pol1.1.1 DNA pol I1.2 DNA pol II1.3 DNA pol III1.4 其它的DNA pol1.2 真核生物DNA聚合酶1.2.1 DNA pol α\alph…

深度学习基础入门篇[五]:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测

1.交叉熵损失函数 在物理学中&#xff0c;“熵”被用来表示热力学系统所呈现的无序程度。香农将这一概念引入信息论领域&#xff0c;提出了“信息熵”概念&#xff0c;通过对数函数来测量信息的不确定性。交叉熵&#xff08;cross entropy&#xff09;是信息论中的重要概念&am…

ITIL社群的内容及作用

官方网站 www.itilzj.com 文档资料: wenku.itilzj.com ITIL是全球范围内最为流行的IT服务管理框架之一&#xff0c;它能够帮助企业提高IT服务质量&#xff0c;提升业务价值。无论你是IT行业的从业者还是对ITIL感兴趣的人士&#xff0c;ITIL之家社群都将为你提供有价值的知识和经…

非关系型数据库---Redis安装与基本使用

一、数据库类型 关系数据库管理系统(RDBMS)非关系数据库管理系统(NoSQL) 按照预先设置的组织机构&#xff0c;将数据存储在物理介质上(即&#xff1a;硬盘上) 数据之间可以做无关联操作 (例如: 多表查询&#xff0c;嵌套查询&#xff0c;外键等) 主流的RDBMS软件&#xff1a;My…

java io流 概念 详解

IO流 当需要把内存中的数据存储到持久化设备上这个动作称为输出&#xff08;写&#xff09;Output操作。 当把持久设备上的数据读取到内存中的这个动作称为输入&#xff08;读&#xff09;Input操作。 因此我们把这种输入和输出动作称为IO操作。 学习目标: 一、文件类&#x…

张程伟:从开源项目到企业级数据库,云和恩墨 MogDB Uqbar 的技术探索与实践...

导语4月8日下午&#xff0c;为期两天的第十二届数据技术嘉年华&#xff08;DTC 2023&#xff09;在北京新云南皇冠假日酒店圆满落下帷幕。大会以“开源融合数字化——引领数据技术发展&#xff0c;释放数据要素价值”为主题&#xff0c;汇聚产学研各界精英到场交流。作为大会的…

电蚊拍欧盟CE认证EMC+LVD测试

电蚊拍&#xff08;Mosquito&#xff09;&#xff0c;主要由高频振荡电路、三倍压整流电路和高压电击网DW三部分组成。工作中&#xff0c;经升压电路在双层电网间产生1850V直流左右的高压电&#xff0c;两电网间的静电场有较强的吸附力&#xff0c;当蚊蝇等害虫接近电网时&…

系统集成路由器OSPF动态、综合路由配置

实验任务&#xff1a;动态路由协议RIP、OSPF协议的内容和特点动态路由RIP、OSPF实验&#xff0c;建立拓扑pc1>>R1>>R2>>R3>>pc2&#xff0c;使pc1与pc2能相互通信&#xff0c;并配置PC端静默接口。熟悉配置vlan间路由技术&#xff1a;多层交换机虚拟接…

落地“旅游+”数字赋能:实现智慧旅游协同创新发展

经济的蓬勃发展&#xff0c;与之带来的是消费水平的不断提升&#xff0c;旅行已经成为我们日常生活中不可缺少的一项。在过去三年间&#xff0c;我们由于或这或那的原因&#xff0c;并无法真正实现一场说走就走的旅程。大家在过去的三年算是憋狠了&#xff0c;所以在今年&#…

计算专题(小计算题)

考点&#xff1a; 1.沟通渠道的总量为 n*(n-1)/2&#xff0c;其中 n 代表干系人的数量。 2.决策树计算/自制和外购决策-----EMV。 3.盈亏平衡计算。&#xff08;刚好不亏也不赚&#xff09; 【案例】假设某IT服务企业&#xff0c;其固定成本为30万元&#xff0c;每项服务的变…

用于测试FDIA在现实约束下可行性的FDIA建模框架(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 信息通信技术的发展和智能设备的引入使电力系统逐渐演变为电力信息物理系统&#xff0c;而信息层与物理层之间的深度耦合也加剧…

HashMap死循环详解

目录 一、数据插入原理 二、导致死循环的原因 三、解决方案 一、数据插入原理 由于JDK1.7中&#xff0c;HashMap的底层存储结构采用的是数组链表的方法 插入数据时候采用的是头插法 二、导致死循环的原因 此时线程T1&#xff0c;T2节点同时指向A节点&#xff0c;同时线程T1…

Spring Boot 整合 Swagger 教程详解

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

小白必看,吐血整理Facebook新手指南(二)

上篇文章咱们讲了关于FB广告的类型&#xff0c;今天咱们再来详细讲下如何设置FB广告、注意事项以及如何借助强大的工具&#xff08;SaleSmartly、ss客服&#xff09;监控广告效果、承接广告流量。话不多说&#xff0c;直接上干货选择你的目标 首先&#xff0c;前往您的广告管理…

虚拟化服务器和普通服务器的区别

随着云计算技术的快速普及&#xff0c;虚拟化技术作为其中的一项核心技术&#xff0c;也越来越受到了企业和个人用户的关注。虚拟化服务器相较于传统的物理服务器&#xff0c;具备更高的灵活性和可扩展性&#xff0c;但同时也存在一些不足之处。那么虚拟化服务器的优缺点有哪些…

[STM32F103C8T6]基于stm32的循迹,跟随,避障智能小车

目录 1.小车驱动主要是通过L9110S模块来驱动电机 motor.c 2.我们可以加入串口控制电机驱动(重写串口接收回调函数&#xff0c;和重定向printf) Uart.c main.c 3.点动功能 uart.c main.c 为什么使用的是HAL_Delay()要设置滴答定时器的中断优先级呢&#xff1f; 4.小车…

如何在 Mac上运行 Windows程序?

在Mac 上运行 Windows的工具 在 Mac 上运行 Windows-无需重启即可在您的 Intel 或 Apple M 系列 Mac 上运行 Windows的工具来了,非常强悍和使用,有需要的朋友可以参考一下。 主要功能 运行快速、操作简单、功能强大的应用程序,无需重启即可在您的 Intel 或 Apple M 系列 M…

基于 VITA57.1 的 2 路 125MSPS AD 采集、2 路 250MSPS DA 回放 FMC 子卡模块

板卡概述 FMC150_V30 是一款基于 VITA57.1 规范的 2 路 125MSPS 采样率 16 位分辨率 AD 采集、2 路 250MSPS 采样率 16 位分辨率 DA 回放 FMC 子卡模块。该模块遵循 VITA57.1 规范&#xff0c;可直接与符合 VITA57.1 规范的 FPGA 载卡配合使用&#xff0c;板卡 ADC 器件采用 AD…

接口自动化两大神器:正则提取器和jsonpath提取器

一、前言 在开展接口测试的过程中&#xff0c;我们会发现很多接口需要依赖前面的接口&#xff0c;需要我们动态从前面的接口返回中提取数据&#xff0c;也就是我们通常说的关联。 关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数&#xff0c;用来传递给下…