亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cc1100_rx.c

?? CC1100收發程序,用STC單片機對CC1100做控制
?? C
?? 第 1 頁 / 共 2 頁
字號:
//*****************************************************************************************
//函數名:void halSpiWriteReg(INT8U addr, INT8U value)
//輸入:地址和配置字
//輸出:無
//功能描述:SPI寫寄存器
//*****************************************************************************************
void halSpiWriteReg(INT8U addr, INT8U value) 
{
    CSN = 0;
    while (MISO);
    SpiTxRxByte(addr);		//寫地址
    SpiTxRxByte(value);		//寫入配置
    CSN = 1;
}

//*****************************************************************************************
//函數名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
//輸入:地址,寫入緩沖區,寫入個數
//輸出:無
//功能描述:SPI連續寫配置寄存器
//*****************************************************************************************
void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
{
    INT8U i, temp;
	temp = addr | WRITE_BURST;
    CSN = 0;
    while (MISO);
    SpiTxRxByte(temp);
    for (i = 0; i < count; i++)
 	{
        SpiTxRxByte(buffer[i]);
    }
    CSN = 1;
}

//*****************************************************************************************
//函數名:void halSpiStrobe(INT8U strobe)
//輸入:命令
//輸出:無
//功能描述:SPI寫命令
//*****************************************************************************************
void halSpiStrobe(INT8U strobe) 
{
    CSN = 0;
    while (MISO);
    SpiTxRxByte(strobe);		//寫入命令
    CSN = 1;
}





//*****************************************************************************************
//函數名:INT8U halSpiReadReg(INT8U addr)
//輸入:地址
//輸出:該寄存器的配置字
//功能描述:SPI讀寄存器
//*****************************************************************************************
INT8U halSpiReadReg(INT8U addr) 
{
	INT8U temp, value;
    temp = addr|READ_SINGLE;//讀寄存器命令
	CSN = 0;
	while (MISO);
	SpiTxRxByte(temp);
	value = SpiTxRxByte(0);
	CSN = 1;
	return value;
}


//*****************************************************************************************
//函數名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
//輸入:地址,讀出數據后暫存的緩沖區,讀出配置個數
//輸出:無
//功能描述:SPI連續寫配置寄存器
//*****************************************************************************************
void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
{
    INT8U i,temp;
	temp = addr | READ_BURST;		//寫入要讀的配置寄存器地址和讀命令
    CSN = 0;
    while (MISO);
	SpiTxRxByte(temp);   
    for (i = 0; i < count; i++) 
	{
        buffer[i] = SpiTxRxByte(0);
    }
    CSN = 1;
}


//*****************************************************************************************
//函數名:INT8U halSpiReadReg(INT8U addr)
//輸入:地址
//輸出:該狀態寄存器當前值
//功能描述:SPI讀狀態寄存器
//*****************************************************************************************
INT8U halSpiReadStatus(INT8U addr) 
{
    INT8U value,temp;
	temp = addr | READ_BURST;		//寫入要讀的狀態寄存器的地址同時寫入讀命令
    CSN = 0;
    while (MISO);
    SpiTxRxByte(temp);
	value = SpiTxRxByte(0);
	CSN = 1;
	return value;
}


//*****************************************************************************************
//函數名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
//輸入:無
//輸出:無
//功能描述:配置CC1100的寄存器
//*****************************************************************************************
void halRfWriteRfSettings(void) 
{
	halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL2);//自已加的
    // Write register settings
    halSpiWriteReg(CCxxx0_FSCTRL1,  rfSettings.FSCTRL1);
    halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL0);
    halSpiWriteReg(CCxxx0_FREQ2,    rfSettings.FREQ2);
    halSpiWriteReg(CCxxx0_FREQ1,    rfSettings.FREQ1);
    halSpiWriteReg(CCxxx0_FREQ0,    rfSettings.FREQ0);
    halSpiWriteReg(CCxxx0_MDMCFG4,  rfSettings.MDMCFG4);
    halSpiWriteReg(CCxxx0_MDMCFG3,  rfSettings.MDMCFG3);
    halSpiWriteReg(CCxxx0_MDMCFG2,  rfSettings.MDMCFG2);
    halSpiWriteReg(CCxxx0_MDMCFG1,  rfSettings.MDMCFG1);
    halSpiWriteReg(CCxxx0_MDMCFG0,  rfSettings.MDMCFG0);
    halSpiWriteReg(CCxxx0_CHANNR,   rfSettings.CHANNR);
    halSpiWriteReg(CCxxx0_DEVIATN,  rfSettings.DEVIATN);
    halSpiWriteReg(CCxxx0_FREND1,   rfSettings.FREND1);
    halSpiWriteReg(CCxxx0_FREND0,   rfSettings.FREND0);
    halSpiWriteReg(CCxxx0_MCSM0 ,   rfSettings.MCSM0 );
    halSpiWriteReg(CCxxx0_FOCCFG,   rfSettings.FOCCFG);
    halSpiWriteReg(CCxxx0_BSCFG,    rfSettings.BSCFG);
    halSpiWriteReg(CCxxx0_AGCCTRL2, rfSettings.AGCCTRL2);
	halSpiWriteReg(CCxxx0_AGCCTRL1, rfSettings.AGCCTRL1);
    halSpiWriteReg(CCxxx0_AGCCTRL0, rfSettings.AGCCTRL0);
    halSpiWriteReg(CCxxx0_FSCAL3,   rfSettings.FSCAL3);
	halSpiWriteReg(CCxxx0_FSCAL2,   rfSettings.FSCAL2);
	halSpiWriteReg(CCxxx0_FSCAL1,   rfSettings.FSCAL1);
    halSpiWriteReg(CCxxx0_FSCAL0,   rfSettings.FSCAL0);
    halSpiWriteReg(CCxxx0_FSTEST,   rfSettings.FSTEST);
    halSpiWriteReg(CCxxx0_TEST2,    rfSettings.TEST2);
    halSpiWriteReg(CCxxx0_TEST1,    rfSettings.TEST1);
    halSpiWriteReg(CCxxx0_TEST0,    rfSettings.TEST0);
    halSpiWriteReg(CCxxx0_IOCFG2,   rfSettings.IOCFG2);
    halSpiWriteReg(CCxxx0_IOCFG0,   rfSettings.IOCFG0);    
    halSpiWriteReg(CCxxx0_PKTCTRL1, rfSettings.PKTCTRL1);
    halSpiWriteReg(CCxxx0_PKTCTRL0, rfSettings.PKTCTRL0);
    halSpiWriteReg(CCxxx0_ADDR,     rfSettings.ADDR);
    halSpiWriteReg(CCxxx0_PKTLEN,   rfSettings.PKTLEN);
}






//*****************************************************************************************
//函數名:void halRfSendPacket(INT8U *txBuffer, INT8U size)
//輸入:發送的緩沖區,發送數據個數
//輸出:無
//功能描述:CC1100發送一組數據
//*****************************************************************************************
void halRfSendPacket(INT8U *txBuffer, INT8U size) 
{
	halSpiWriteReg(CCxxx0_TXFIFO, size);
    halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size);	//寫入要發送的數據

    halSpiStrobe(CCxxx0_STX);		//進入發送模式發送數據

    // Wait for GDO0 to be set -> sync transmitted
    while (!GDO0);

    // Wait for GDO0 to be cleared -> end of packet
    while (GDO0);
	halSpiStrobe(CCxxx0_SFTX);
}



INT8U halRfReceivePacket(INT8U *rxBuffer, INT8U *length) 
{
    INT8U status[2];
    INT8U packetLength;

    halSpiStrobe(CCxxx0_SRX);		//進入接收狀態
    while (!GDO0);
    while (GDO0);
    if ((halSpiReadStatus(CCxxx0_RXBYTES) & BYTES_IN_RXFIFO)) //如果接的字節數不為0
	{
        packetLength = halSpiReadReg(CCxxx0_RXFIFO);//讀出第一個字節,此字節為該幀數據長度
        if (packetLength <= *length) 		//如果所要的有效數據長度小于等于接收到的數據包的長度
		{
            halSpiReadBurstReg(CCxxx0_RXFIFO, rxBuffer, packetLength); //讀出所有接收到的數據
            *length = packetLength;				//把接收數據長度的修改為當前數據的長度
        
            // Read the 2 appended status bytes (status[0] = RSSI, status[1] = LQI)
            halSpiReadBurstReg(CCxxx0_RXFIFO, status, 2); 	//讀出CRC校驗位
            return (status[1] & CRC_OK);			//如果校驗成功返回接收成功
        }
		 else 
		{
            *length = packetLength;
            halSpiStrobe(CCxxx0_SFRX);		//清洗接收緩沖區
            return 0;
        }
    } 
	else
 	return 0;
}

/******************************************************************************************
*******************************************************************************************
************************************中斷服務程序*********************************************
*******************************************************************************************
******************************************************************************************/
/*void Timer0ISR(void) interrupt 1
{
	EA = 0;
	TH0+=TIMER0H;
	TL0+=TIMER0L;
	TimerCount++;
	timer[0]++;
	timer[1]++;
	EA = 1;
}
*/



/******************************************************************************************
*******************************************************************************************
******************************************主程序*******************************************
*******************************************************************************************
******************************************************************************************/
main(void)
{
	INT8U leng;
	INT8U arrTx[4];
	INT8U arrRx[4];
	CpuInit();
	POWER_UP_RESET_CC1100();
	halRfWriteRfSettings();
	halSpiWriteBurstReg(CCxxx0_PATABLE, PaTabel, 8);
//	LED1 = 0;
	delay(60000);
//	LED1 = 1;
	delay(30000);
	arrTx[0] = 0xBB;
	arrTx[1] = 0xAA;
	arrTx[2] = 0x55;
	arrTx[3] = 0x09;
	leng = 3;
	while(1)
	{
/*		halRfSendPacket(arrTx,4);
		LED2 = 0;
		delay(10000);
		LED2 = 1;
		delay(20000);*/
		if(halRfReceivePacket(arrRx,&leng))
		{
		//	LED2 = 0;
			delay(10000);
		//	LED2 = 1;
			halSpiStrobe(CCxxx0_SFRX);
			SendCh(arrRx[0]);
			SendCh(arrRx[1]);
			SendCh(arrRx[2]);
			SendCh(arrRx[3]);
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区国产二区| 欧美视频一区二区三区| 中文字幕综合网| 欧美群妇大交群中文字幕| 紧缚奴在线一区二区三区| 日产国产高清一区二区三区| 3d动漫精品啪啪一区二区竹菊| 国产真实乱偷精品视频免| 亚洲蜜臀av乱码久久精品蜜桃| 欧美亚洲国产一卡| 亚洲精品欧美专区| 欧美日韩电影在线| 成人免费毛片app| 午夜精品福利一区二区三区av| 久久久91精品国产一区二区三区| 91精彩视频在线| 九九视频精品免费| 亚洲国产精品久久不卡毛片| 国产亚洲1区2区3区| 色噜噜久久综合| 精品一区二区久久久| 玉足女爽爽91| 国产丝袜在线精品| 在线观看日韩国产| 日日欢夜夜爽一区| 久久色成人在线| 欧美日韩aaa| 不卡的av中国片| 午夜av电影一区| 亚洲欧美激情视频在线观看一区二区三区| 日韩视频永久免费| 99re在线视频这里只有精品| 精品影院一区二区久久久| 香蕉久久一区二区不卡无毒影院| 国产精品系列在线| 日韩一区欧美小说| 欧美日韩一区二区电影| 色婷婷精品久久二区二区蜜臂av| 精品一区二区在线视频| 婷婷六月综合亚洲| 亚洲精品v日韩精品| 中文字幕av一区 二区| 欧美精品一二三四| 欧美探花视频资源| 色综合天天综合| www.久久久久久久久| 国产高清精品网站| 国产一区二区在线影院| 蜜乳av一区二区| 亚洲地区一二三色| 亚洲美女精品一区| 国产色产综合色产在线视频 | 亚洲亚洲精品在线观看| 久久人人爽人人爽| 精品国产一区二区在线观看| 日韩欧美一区中文| 欧美一级黄色录像| 欧美一区二区三区婷婷月色| 97久久超碰国产精品| 成人99免费视频| 国产一区二区在线免费观看| 美女久久久精品| 一区二区三区在线看| 一区二区三区国产| 亚洲午夜精品久久久久久久久| 亚洲综合丝袜美腿| 视频一区中文字幕国产| 麻豆国产精品一区二区三区| 日本成人在线不卡视频| 麻豆中文一区二区| 国产在线视频一区二区三区| 午夜视频在线观看一区二区三区| 中文一区二区完整视频在线观看| 国产欧美综合在线观看第十页| 欧美电影免费观看高清完整版在 | 国产日韩av一区| 日本一区二区三区免费乱视频 | 国产女主播一区| 国产精品久久久久婷婷二区次| 中文字幕日韩av资源站| 亚洲色图视频网| 专区另类欧美日韩| 亚洲美女免费视频| 亚洲午夜久久久久久久久电影院 | 日韩三级在线免费观看| 欧美一区二区三区日韩视频| 欧美sm极限捆绑bd| 日韩欧美国产成人一区二区| 日韩精品最新网址| 国产欧美一区二区精品仙草咪| 亚洲欧美日韩国产中文在线| 亚洲视频在线一区| 亚洲成人综合网站| 国产一区二区三区国产| 97精品视频在线观看自产线路二| 成人午夜伦理影院| 亚洲欧美一区二区三区久本道91| 亚洲第一成人在线| 成人一级片网址| 欧美视频完全免费看| 91精品国模一区二区三区| 欧美人与z0zoxxxx视频| 欧美一级电影网站| 久久久久久久久久久久久女国产乱 | 成人精品视频一区| 欧美在线免费视屏| 久久免费电影网| 亚洲一级片在线观看| 国产精品亚洲а∨天堂免在线| 91久久人澡人人添人人爽欧美| 欧美日韩夫妻久久| 2020国产精品自拍| 亚洲国产视频在线| 不卡av在线免费观看| 91精品国产综合久久香蕉的特点 | 91浏览器入口在线观看| 日韩视频在线一区二区| 亚洲综合色视频| 国产成人精品免费网站| 欧美探花视频资源| 国产亚洲一本大道中文在线| 一区二区三区中文字幕精品精品 | 国产成人av一区二区三区在线观看| 欧美日韩在线播放三区四区| 国产欧美日韩三级| 久久精品国产免费看久久精品| 国产在线不卡一卡二卡三卡四卡| 国产一区美女在线| 欧美日韩久久久| 久久精品亚洲精品国产欧美| 青青草成人在线观看| 欧美亚男人的天堂| 亚洲三级免费观看| 在线播放91灌醉迷j高跟美女| 国产三级三级三级精品8ⅰ区| 亚洲永久免费视频| 色一情一乱一乱一91av| 国产精品成人免费精品自在线观看| 麻豆视频观看网址久久| 欧美区视频在线观看| 亚洲精品成人精品456| 日韩欧美的一区| 亚洲蜜臀av乱码久久精品| jlzzjlzz亚洲女人18| 国产清纯在线一区二区www| 国产一区二区精品久久99| 日韩免费在线观看| 午夜影院久久久| 91麻豆精品国产91久久久 | 色综合天天综合| 一区二区三区在线观看视频 | 欧美一区二区三区免费| 人人爽香蕉精品| 精品免费国产二区三区 | 欧美日韩在线综合| 日韩av不卡一区二区| 精品乱人伦小说| 丁香啪啪综合成人亚洲小说 | 欧美r级电影在线观看| 国产激情一区二区三区桃花岛亚洲| 国产精品素人一区二区| 色噜噜狠狠色综合中国| 日韩激情视频在线观看| 精品国产91洋老外米糕| 成人免费看黄yyy456| 一区二区三区.www| 91精品国产91久久综合桃花| 国产在线不卡一区| 成人午夜电影久久影院| 国产精品久久三| 欧美一区二视频| 成人黄色网址在线观看| 午夜影院在线观看欧美| 久久综合九色综合97_久久久 | 色88888久久久久久影院按摩| 日本视频免费一区| 欧美国产日韩精品免费观看| 色综合天天天天做夜夜夜夜做| 三级久久三级久久| 中文字幕+乱码+中文字幕一区| 欧美丝袜第三区| 国产一区亚洲一区| 一区二区欧美视频| 精品国产一区二区三区av性色 | 久久精品国产99国产精品| 日韩一区欧美小说| 日韩片之四级片| 91官网在线观看| 国产99久久精品| 奇米影视在线99精品| 亚洲视频在线一区二区| 337p粉嫩大胆色噜噜噜噜亚洲 | 日韩免费观看高清完整版在线观看| 成人深夜在线观看| 免费日韩伦理电影| 一区二区成人在线| 国产欧美一区在线| 91精品国模一区二区三区| 色噜噜狠狠色综合欧洲selulu| 国产麻豆日韩欧美久久|