NRF24L01配置功能函数.zip
NRF24L01不一样的配置方式,方便简洁明了,一个函数配置出所有你想要的功能。由结构体打包函数,每个参数设置都有注释说明,傻瓜式配置。
------------------NRF24L01函数目录———————————————
typedef struct
{
u8 NRF24L01_Mode;//模式 接收,发送模式 NRF24L01_TXMode NRF24L01_RXMode
u8 NRF24L01_Shield_Interrupt;//屏蔽中断 MASK_RX_DR MASK_TX_DS MASK_MAX_RT EN_MASK
u8 NRF24L01_ENCRCO8_16;//使能CRC校验 EN_CRC8 EN_CRC16 CRC_NO
u8 NRF24L01_ENACK;//使能自动应答 EN_CH0~EN_CH5
u8 NRF24L01_ENRX;//使能接收通道 EN_CH0~EN_CH5
u8 NRF24L01_AddrWide;//设置所有通道的接收/发送地址宽度 3~5字节 AddrWide_3~AddrWide_5
u8 NRF24L01_ResendDelay;//重发延时 (('0000'+1)250+86)us//0~15
u8 NRF24L01_ResendCount;//重发次数 0~15次
u8 NRF24L01_RF_CHf;//设置工作通道频率 0~125
u8 NRF24L01_RF_Speed;//数据传输率 0-1Mbps,1-2Mbps //RF_Speed1Mbps RF_Speed2Mbps
u8 NRF24L01_RF_PWR;//发送功率 0,-6,-12,-18dBm// RF_PWR_18dBm RF_PWR_12dBm RF_PWR_6dBm RF_PWR0dBm
u8 NRF24L01_RXADDR_P0[5];//通道0接收地址
u8 NRF24L01_RXADDR_P1[5];//通道1接收地址
u8 NRF24L01_RXADDR_P2_P5[4];//通道2~5接收地址(每字节表各通道最低字节),
//高4字节与NRF24L01_RXADDR_P1[5]高4字节相等(不可修改)
u8 NRF24L01_TXADDR[5];//发送地址(ShockBurst模式下NRF24L01_RXADDR_P0[5]与此地址相等)
u8 NRF24L01_RX_PW[6];//(0~5通道)接收数据通道有效数据宽度 (1~32)
}NRF24L01_InitTypeDef;
//初始化为接收模式
void NRF24L01_RXInit();
//NRF24L01功能初始化
void NRF24L01_Init(NRF24L01_InitTypeDef *NRF24L01_InitStructure);
//SPI读写一字节数据
u8 NRF24L01_SPIR_WByte(u8 dat);
//SPI读NRF24L01寄存器
u8 NRF24L01_ReadReg(u8 RegAddr);
//SPI写NRF24L01寄存器
u8 NRF24L01_WriteReg(u8 RegAddr,u8 dat);
//读取RXFIFO寄存器的值
//寄存器地址//读取数据存放变量//读取数据长度//用于接收
u8 NRF24L01_ReadRxDate(u8 RegAddr,u8 *RxDate,u8 DateLen);
//写入TXFIFO寄存器的值
//寄存器地址//写入数据存放变量//读取数据长度//用于发送
u8 NRF24L01_WriteTxDate(u8 RegAddr,u8 *TxDate,u8 DateLen);
STC单片机UART功能函数.zip
STC单片机的串口UART1,2,3,4的配置。几乎适用于所有STC单片机,4个串口可同时配置使用,函数由结构体封装打包好,非常方便。
--------------------------STC_UART函数目录--------------------------
//注意:若主循环正在打印突然跳到中断中恰好又掉用printf1,2,3,4,恢复后会使主循环中的打印错误
//printf与printf1,2,3,4, 相互独立,可同时用且互不影响
//自定义printf1,2,3,4打印函数,打印字符最长限制
#define CMD_BUFFER_LEN 50
//#define UART_Printfx //注释则不使用重定向打印函数
//--------------------------------------------------------------------------------
//UART1,2,3,4初始化
void UART1_Init(u32 BaudRate);
void UART2_Init(u32 BaudRate);
void UART3_Init(u32 BaudRate);
void UART4_Init(u32 BaudRate);
//UART1,2,3,4串口打印函数
void printf1 (char *fmt, ...); //变参函数
void printf2 (char *fmt, ...);
void printf3 (char *fmt, ...);
void printf4 (char *fmt, ...);
//UART1,2,3,4发送单个字符
void UART1_SendByte(char dat);
void UART2_SendByte(char dat);
void UART3_SendByte(char dat);
void UART4_SendByte(char dat);
//UART1,2,3,4发送字符串
void UART1_SendStr(char *TI_Dat);
void UART2_SendStr(char *TI_Dat);
void UART3_SendStr(char *TI_Dat);
void UART4_SendStr(char *TI_Dat);
//UART1,2,3,4接收Leng个字符
void UART1_ReceiveStr(u8 Leng,u8 *dat);
void UART2_ReceiveStr(u8 Leng,u8 *dat);
void UART3_ReceiveStr(u8 Leng,u8 *dat);
void UART4_ReceiveStr(u8 Leng,u8 *dat);
//获取期待值 NULL 表示无效的
bit UART_extract(u8 *Puf_0,u8 *Puf_1,u32 time); //从串口中获取所期待的数据 NULL 表示无效的
//计算指针所指数组元素个数 //警告; count(0);返回的是2原因不明
unsigned char count(u8 *p);
void UART_Send_Str(char *s); // 发送字符串
void UART_Send_Num(unsigned long dat); // 发送数值
void UART_Send_StrNum(char *inf,unsigned long dat); // 发送字符串+数值
void UART_Send_Hex(unsigned int hex); // 发送16进制(整数范围)
void UART_Send_binary(unsigned char dat); // 发送2进制
void UART_Send_Enter();
void UART_Send_Byte(unsigned char dat);
//UART初始化
void UART_Init(u8 UARTx, UART_InitTypeDef *UART_InitStructure);
STC15系列万能delay延时函数.zip
STC15系列万能delay延时。为了方便51单片机在不同晶振频率下,延时函数能正常使用而打包的延时函数。改变频率后只需改变一下宏定义即可。
delay.h
#ifndef _DELAY_H
#define _DELAY_H
//注意时钟频率设置正确
//------------------------------------------
//晶振
#define xtal_0 5529600L //05.5290MHz
#define xtal_1 6000000L //06.0000MHz
#define xtal_2 8000000L //08.0000MHz
#define xtal_3 11059200L //11.0592MHz
#define xtal_4 12000000L //12.0000MHz
#define xtal_5 18432000L //18.4320MHz
#define xtal_6 22118400L //22.1184MHz
#define xtal_7 24000000L //24.0000MHz
#define xtal_8 27000000L //27.0000MHz
#define xtal_9 30000000L //30.0000MHz
#define xtal_10 33000000L //33.0000MHz
#define xtal_11 33177600L //33.1776MHz
//-----------------------------------------
//时钟配置
#define OSC xtal_3 //晶振频率
void delay_us(unsigned int _us); //1us
void delay_50us(unsigned int _50us);//50us
void delay_ms(unsigned int _ms); //1ms
void _1ms();
void _50us();
void _1us();
#endif
LCD12864驱动程序 (并口通信,带字库版本ST7920,内含简单的画点、线、圆、矩形和三角形函数以及任意尺寸图像显示。
LCD12864驱动程序 (并口通信,带字库版本ST7920,内含简单的画点、线、圆、矩形和三角形函数以及任意尺寸图像显示。
资料内附带有完整的Keil 工程文件,并且每个函数都带有完整而详细的注释。到手可用无需修改与调。试
需要注意的地方:如果您使用的是其他型号的单片机例如:STC12,STC15等时,需要你设置一下单片机IO口的模式,否则会无法正常显示。