无线模块 发送.docx
- 文档编号:24637577
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:25
- 大小:20.25KB
无线模块 发送.docx
《无线模块 发送.docx》由会员分享,可在线阅读,更多相关《无线模块 发送.docx(25页珍藏版)》请在冰豆网上搜索。
无线模块发送
#include
#defineINT8Uunsignedchar
#defineINT16Uunsignedint
#defineWRITE_BURST0x40//连续写入
#defineREAD_SINGLE0x80//读
#defineREAD_BURST0xC0//连续读
#defineBYTES_IN_RXFIFO0x7F//接收缓冲区的有效字节数
#defineCRC_OK0x80//CRC校验通过位标志
//无线模块引脚定义
#defineGDO0P3DIR&=~BIT1//GDO0
#defineMISOP3DIR&=~BIT3//MISO
#defineCSN1P3OUT|=BIT0;//CSN=1
#defineCSN0P3OUT&=~BIT0;//CSN=0
#defineGDO21P3OUT|=BIT2;//GDO2=1
#defineGDO20P3OUT&=~BIT2;//GDO2=0
#defineSCK1P3OUT|=BIT4;//SCK=1
#defineSCK0P3OUT&=~BIT4;//SCK=0
#defineMOSI1P3OUT|=BIT5;//MOSI=1
#defineMOSI0P3OUT&=~BIT5;//MOSI=0
//18B20引脚定义
#defineDQ1P1OUT|=BIT6
#defineDQ0P1OUT&=~BIT6
#defineDQ_inP1DIR&=~BIT6
#defineDQ_outP1DIR|=BIT6
#defineDQ_val(P1IN&BIT6)
//1602液晶引脚定义
#defineDataDirP4DIR
#defineDataPortP4OUT
#defineBusy0x80
#defineCtrlDirP5DIR
#defineCLR_RSP5OUT&=~BIT0;//RS=P5.0
#defineSET_RSP5OUT|=BIT0;
#defineCLR_RWP5OUT&=~BIT1;//RW=P5.1
#defineSET_RWP5OUT|=BIT1;
#defineCLR_ENP5OUT&=~BIT2;//EN=P5.2
#defineSET_ENP5OUT|=BIT2;
#definedlP3OUT&=~BIT7;//灯亮
#definedmP3OUT|=BIT7;//灯灭
#defineNum_of_Results32
INT8URxBuf[8]={0};
INT8UTxBuf[8]={1,2,3,4,5,6,7,8};//8字节,如果需要更长的数据包,请正确设置
INT8Uleng=0;
INT8Ua,b,ptr[4];
INT8UdN[10]={0,1,2,3,4,5,6,7,8,9};
INT8Ushuzi[]={"0123456789."};
INT8Uscandata[10]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//*****************************************************************************************
//INT8UPaTabel[8]={0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60};
INT8UPaTabel[8]={0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0};//修改发射功率
//*****************************************************************************************
voidSpiInit(void);
voidCpuInit(void);
voidRESET_CC1100(void);
voidPOWER_UP_RESET_CC1100(void);
voidhalSpiWriteReg(INT8Uaddr,INT8Uvalue);
voidhalSpiWriteBurstReg(INT8Uaddr,INT8U*buffer,INT8Ucount);
voidhalSpiStrobe(INT8Ustrobe);
INT8UhalSpiReadReg(INT8Uaddr);
voidhalSpiReadBurstReg(INT8Uaddr,INT8U*buffer,INT8Ucount);
INT8UhalSpiReadStatus(INT8Uaddr);
voidhalRfWriteRfSettings(void);
voidhalRfSendPacket(INT8U*txBuffer,INT8Usize);
INT8UhalRfReceivePacket(INT8U*rxBuffer,INT8U*length);
//*****************************************************************************************
//CC1100STROBE,CONTROLANDSTATUSREGSITER
#defineCCxxx0_IOCFG20x00//GDO2outputpinconfiguration
#defineCCxxx0_IOCFG10x01//GDO1outputpinconfiguration
#defineCCxxx0_IOCFG00x02//GDO0outputpinconfiguration
#defineCCxxx0_FIFOTHR0x03//RXFIFOandTXFIFOthresholds
#defineCCxxx0_SYNC10x04//Syncword,highINT8U
#defineCCxxx0_SYNC00x05//Syncword,lowINT8U
#defineCCxxx0_PKTLEN0x06//Packetlength
#defineCCxxx0_PKTCTRL10x07//Packetautomationcontrol
#defineCCxxx0_PKTCTRL00x08//Packetautomationcontrol
#defineCCxxx0_ADDR0x09//Deviceaddress
#defineCCxxx0_CHANNR0x0A//Channelnumber
#defineCCxxx0_FSCTRL10x0B//Frequencysynthesizercontrol
#defineCCxxx0_FSCTRL00x0C//Frequencysynthesizercontrol
#defineCCxxx0_FREQ20x0D//Frequencycontrolword,highINT8U
#defineCCxxx0_FREQ10x0E//Frequencycontrolword,middleINT8U
#defineCCxxx0_FREQ00x0F//Frequencycontrolword,lowINT8U
#defineCCxxx0_MDMCFG40x10//Modemconfiguration
#defineCCxxx0_MDMCFG30x11//Modemconfiguration
#defineCCxxx0_MDMCFG20x12//Modemconfiguration
#defineCCxxx0_MDMCFG10x13//Modemconfiguration
#defineCCxxx0_MDMCFG00x14//Modemconfiguration
#defineCCxxx0_DEVIATN0x15//Modemdeviationsetting
#defineCCxxx0_MCSM20x16//MainRadioControlStateMachineconfiguration
#defineCCxxx0_MCSM10x17//MainRadioControlStateMachineconfiguration
#defineCCxxx0_MCSM00x18//MainRadioControlStateMachineconfiguration
#defineCCxxx0_FOCCFG0x19//FrequencyOffsetCompensationconfiguration
#defineCCxxx0_BSCFG0x1A//BitSynchronizationconfiguration
#defineCCxxx0_AGCCTRL20x1B//AGCcontrol
#defineCCxxx0_AGCCTRL10x1C//AGCcontrol
#defineCCxxx0_AGCCTRL00x1D//AGCcontrol
#defineCCxxx0_WOREVT10x1E//HighINT8UEvent0timeout
#defineCCxxx0_WOREVT00x1F//LowINT8UEvent0timeout
#defineCCxxx0_WORCTRL0x20//WakeOnRadiocontrol
#defineCCxxx0_FREND10x21//FrontendRXconfiguration
#defineCCxxx0_FREND00x22//FrontendTXconfiguration
#defineCCxxx0_FSCAL30x23//Frequencysynthesizercalibration
#defineCCxxx0_FSCAL20x24//Frequencysynthesizercalibration
#defineCCxxx0_FSCAL10x25//Frequencysynthesizercalibration
#defineCCxxx0_FSCAL00x26//Frequencysynthesizercalibration
#defineCCxxx0_RCCTRL10x27//RCoscillatorconfiguration
#defineCCxxx0_RCCTRL00x28//RCoscillatorconfiguration
#defineCCxxx0_FSTEST0x29//Frequencysynthesizercalibrationcontrol
#defineCCxxx0_PTEST0x2A//Productiontest
#defineCCxxx0_AGCTEST0x2B//AGCtest
#defineCCxxx0_TEST20x2C//Varioustestsettings
#defineCCxxx0_TEST10x2D//Varioustestsettings
#defineCCxxx0_TEST00x2E//Varioustestsettings
//Strobecommands
#defineCCxxx0_SRES0x30//Resetchip.
#defineCCxxx0_SFSTXON0x31//Enableandcalibratefrequencysynthesizer(ifMCSM0.FS_AUTOCAL=1).
//IfinRX/TX:
Gotoawaitstatewhereonlythesynthesizeris
//running(forquickRX/TXturnaround).
#defineCCxxx0_SXOFF0x32//Turnoffcrystaloscillator.
#defineCCxxx0_SCAL0x33//Calibratefrequencysynthesizerandturnitoff
//(enablesquickstart).
#defineCCxxx0_SRX0x34//EnableRX.PerformcalibrationfirstifcomingfromIDLEand
//MCSM0.FS_AUTOCAL=1.
#defineCCxxx0_STX0x35//InIDLEstate:
EnableTX.Performcalibrationfirstif
//MCSM0.FS_AUTOCAL=1.IfinRXstateandCCAisenabled:
//OnlygotoTXifchannelisclear.
#defineCCxxx0_SIDLE0x36//ExitRX/TX,turnofffrequencysynthesizerandexit
//Wake-On-Radiomodeifapplicable.
#defineCCxxx0_SAFC0x37//PerformAFCadjustmentofthefrequencysynthesizer
#defineCCxxx0_SWOR0x38//StartautomaticRXpollingsequence(Wake-on-Radio)
#defineCCxxx0_SPWD0x39//EnterpowerdownmodewhenCSngoeshigh.
#defineCCxxx0_SFRX0x3A//FlushtheRXFIFObuffer.
#defineCCxxx0_SFTX0x3B//FlushtheTXFIFObuffer.
#defineCCxxx0_SWORRST0x3C//Resetrealtimeclock.
#defineCCxxx0_SNOP0x3D//Nooperation.Maybeusedtopadstrobecommandstotwo
//INT8Usforsimplersoftware.
#defineCCxxx0_PARTNUM0x30
#defineCCxxx0_VERSION0x31
#defineCCxxx0_FREQEST0x32
#defineCCxxx0_LQI0x33
#defineCCxxx0_RSSI0x34
#defineCCxxx0_MARCSTATE0x35
#defineCCxxx0_WORTIME10x36
#defineCCxxx0_WORTIME00x37
#defineCCxxx0_PKTSTATUS0x38
#defineCCxxx0_VCO_VC_DAC0x39
#defineCCxxx0_TXBYTES0x3A
#defineCCxxx0_RXBYTES0x3B
#defineCCxxx0_PATABLE0x3E
#defineCCxxx0_TXFIFO0x3F
#defineCCxxx0_RXFIFO0x3F
//RF_SETTINGSisadatastructurewhichcontainsallrelevantCCxxx0registers
typedefstructS_RF_SETTINGS
{
INT8UFSCTRL2;//自已加的
INT8UFSCTRL1;//Frequencysynthesizercontrol.
INT8UFSCTRL0;//Frequencysynthesizercontrol.
INT8UFREQ2;//Frequencycontrolword,highINT8U.
INT8UFREQ1;//Frequencycontrolword,middleINT8U.
INT8UFREQ0;//Frequencycontrolword,lowINT8U.
INT8UMDMCFG4;//Modemconfiguration.
INT8UMDMCFG3;//Modemconfiguration.
INT8UMDMCFG2;//Modemconfiguration.
INT8UMDMCFG1;//Modemconfiguration.
INT8UMDMCFG0;//Modemconfiguration.
INT8UCHANNR;//Channelnumber.
INT8UDEVIATN;//Modemdeviationsetting(whenFSKmodulationisenabled).
INT8UFREND1;//FrontendRXconfiguration.
INT8UFREND0;//FrontendRXconfiguration.
INT8UMCSM0;//MainRadioControlStateMachineconfiguration.
INT8UFOCCFG;//FrequencyOffsetCompensationConfiguration.
INT8UBSCFG;//BitsynchronizationConfiguration.
INT8UAGCCTRL2;//AGCcontrol.
INT8UAGCCTRL1;//AGCcontrol.
INT8UAGCCTRL0;//AGCcontrol.
INT8UFSCAL3;//Frequencysynthesizercalibration.
INT8UFSCAL2;//Frequencysynthesizercalibration.
INT8UFSCAL1;//Frequencysynthesizercalibration.
INT8UFSCAL0;//Frequencysynthesizercalibration.
INT8UFSTEST;//Frequencysynthesizercalibrationcontrol
INT8UTEST2;//Varioustestsettings.
INT8UTEST1;//Varioustestsettings.
INT8UTEST0;//Varioustestsettings.
INT8UIOCFG2;//GDO2outputpinconfiguration
INT8UIOCFG0;//GDO0outputpinconfiguration
INT8UPKTCTRL1;//Packetautomationcontrol.
INT8UPKTCTRL0;//Packetautomationcontrol.
INT8UADDR;//Deviceaddress.
INT8UPKTLEN;//Packetlength.
}RF_SETTINGS;
/////////////////////////////////////////////////////////////////
constRF_SETTINGSrfSettings=
{
0x00,
0x08,//FSCTRL1Frequencysynthesizercontrol.
0x00,//FSCTRL0Frequencysynthesizercontrol.
0x10,//FREQ2Frequencycontrolword,highbyte.
0xA7,//FREQ1Frequencycontrolword,middlebyte.
0x62,//FREQ0Frequencycontrolword,lowbyte.
0x5B,//MDMCFG4Modemconfiguration.
//0xf6,//MDMCFG4changbyallen
0xF8,//MDMCFG3Modemconfiguration.
//0x83,//MDMCFG3changbyallendatarate=2.398K
0x03,//MDMCFG2Modemconfiguration.
0x22,//MDMCFG1Modemconfiguration.
0xF8,//MDMCFG0Modemconfiguration.
0x00,//CHANNRChannelnumber.
0x47,//DEVIATNModemdeviationsetting(whenFSKmodulationisenabled).
0xB6,//FREND1FrontendRXconfiguration.
0x10,//FREND0FrontendRXconfiguration.
0x18,//MCSM0MainRadioControlStateMachineconfiguration.
0x1D,//FOCCFGFrequencyOffsetCompensationConfiguration.
0x1C,//BSCFGBitsynchronizationConfiguration.
0xC7,//AGCCTRL2AGCcontrol.
0x00,//AGCCTRL1AGCcontrol.
0xB2,//AGCCTRL0AGCcontrol.
0xEA,//FSCAL3Frequencysynthesizer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线模块 发送 无线 模块