Linux下驱动24G无线模块NRF24L01Word格式文档下载.docx
- 文档编号:15920629
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:12
- 大小:19.61KB
Linux下驱动24G无线模块NRF24L01Word格式文档下载.docx
《Linux下驱动24G无线模块NRF24L01Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Linux下驱动24G无线模块NRF24L01Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
(4)
//作者:
jammy-lee
//日期:
2010-01-11
#include<
linux/config.h>
linux/init.h>
linux/fs.h>
linux/module.h>
linux/kernel.h>
linux/delay.h>
linux/miscdevice.h>
linux/devfs_fs_kernel.h>
asm/uaccess.h>
asm/hardware.h>
asm/arch/regs-gpio.h>
typedefunsignedintuint16;
typedefunsignedcharuint8;
/*
//和引脚相关的宏定义
#defineCE
S3C2410_GPF3
#defineCE_OUTP
S3C2410_GPF3_OUTP
#defineSCK
S3C2410_GPF4
#defineSCK_OUTP
S3C2410_GPF4_OUTP
#defineMISO
S3C2410_GPG3
#defineMISO_INP
S3C2410_GPG3_INP
#defineIRQ
S3C2410_GPG0
#defineIRQ_OUTP
S3C2410_GPG0_OUTP
#defineMOSI
S3C2410_GPG5
#defineMOSI_OUTP
S3C2410_GPG5_OUTP
#defineCSN
S3C2410_GPG6
#defineCSN_OUTP
S3C2410_GPG6_OUTP
*/
#defineIRQ_INP
S3C2410_GPG0_INP
#defineDEVICE_NAME
"
NRF24L01"
//设备名称,在可以/proc/devices查看
#defineNRF24L01_MAJOR
241
//主设备号
#defineTxBufSize
32
uint8
TxBuf[TxBufSize]={
0x01,0x02,0x03,0x4,0x05,0x06,0x07,0x08,
0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,
0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,
0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,
};
//NRF24L01端口定义
#defineCE_OUT
s3c2410_gpio_cfgpin(CE,CE_OUTP)
//数据线设置为输出
#defineCE_UP
s3c2410_gpio_pullup(CE,1)
//打开上拉电阻
#defineCE_L
s3c2410_gpio_setpin(CE,0)
//拉低数据线电平
#defineCE_H
s3c2410_gpio_setpin(CE,1)
//拉高数据线电平
#defineSCK_OUT
s3c2410_gpio_cfgpin(SCK,SCK_OUTP)
#defineSCK_UP
s3c2410_gpio_pullup(SCK,1)
#defineSCK_L
s3c2410_gpio_setpin(SCK,0)
#defineSCK_H
s3c2410_gpio_setpin(SCK,1)
//拉高数据线电平
#defineMISO_IN
s3c2410_gpio_cfgpin(MISO,MISO_INP)
//数据线设置为输出
#defineMISO_UP
s3c2410_gpio_pullup(MISO,1)
#defineMISO_STU
s3c2410_gpio_getpin(MISO)
//数据状态
#defineIRQ_IN
s3c2410_gpio_cfgpin(IRQ,IRQ_INP)
#defineIRQ_UP
s3c2410_gpio_pullup(IRQ,1)
#defineIRQ_L
s3c2410_gpio_setpin(IRQ,0)
#defineIRQ_H
s3c2410_gpio_setpin(IRQ,1)
#defineMOSI_OUT
s3c2410_gpio_cfgpin(MOSI,MOSI_OUTP)
#defineMOSI_UP
s3c2410_gpio_pullup(MOSI,1)
//打开上拉电阻
#defineMOSI_L
s3c2410_gpio_setpin(MOSI,0)
#defineMOSI_H
s3c2410_gpio_setpin(MOSI,1)
#defineCSN_OUT
s3c2410_gpio_cfgpin(CSN,CSN_OUTP)
#defineCSN_UP
s3c2410_gpio_pullup(CSN,1)
#defineCSN_L
s3c2410_gpio_setpin(CSN,0)
#defineCSN_H
s3c2410_gpio_setpin(CSN,1)
//NRF24L01
#defineTX_ADR_WIDTH
5
//5uint8sTXaddresswidth
#defineRX_ADR_WIDTH
//5uint8sRXaddresswidth
#defineTX_PLOAD_WIDTH
32
//20uint8sTXpayload
#defineRX_PLOAD_WIDTH
uint8constTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};
//本地地址
uint8constRX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};
//接收地址
//NRF24L01寄存器指令
#defineREAD_REG
0x00
//读寄存器指令
#defineWRITE_REG
0x20
//写寄存器指令
#defineRD_RX_PLOAD
0x61
//读取接收数据指令
#defineWR_TX_PLOAD
0xA0
//写待发数据指令
#defineFLUSH_TX
0xE1
//冲洗发送FIFO指令
#defineFLUSH_RX
0xE2
//冲洗接收FIFO指令
#defineREUSE_TX_PL
0xE3
//定义重复装载数据指令
#defineNOP
0xFF
//保留
//SPI(nRF24L01)寄存器地址
#defineCONFIG
//配置收发状态,CRC校验模式以及收发状态响应方式
#defineEN_AA
0x01
//自动应答功能设置
#defineEN_RXADDR
0x02
//可用信道设置
#defineSETUP_AW
0x03
//收发地址宽度设置
#defineSETUP_RETR
0x04
//自动重发功能设置
#defineRF_CH
0x05
//工作频率设置
#defineRF_SETUP
0x06
//发射速率、功耗功能设置
#defineSTATUS
0x07
//状态寄存器
#defineOBSERVE_TX
0x08
//发送监测功能
#defineCD
0x09
//地址检测
#defineRX_ADDR_P0
0x0A
//频道0接收数据地址
#defineRX_ADDR_P1
0x0B
//频道1接收数据地址
#defineRX_ADDR_P2
0x0C
//频道2接收数据地址
#defineRX_ADD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 驱动 24 无线 模块 NRF24L01