久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3126|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

CC2500-stm8的驅(qū)動代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:315951 發(fā)表于 2018-4-25 10:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include <STM8S103F.h>
//#include <STM8S903K.h>
#include "COMM.h"
unsigned char FreqID =7;     
unsigned char  bSend=0;
unsigned char timeout=0;
/*初始化IO*/
void port_init()
{
        //DDR寄存器設(shè)置方向 0輸入  1輸出
        //PC3 PC4  PC6 PC7 PD2輸出PC5 PD3輸入
        PC_DDR =0xD8;
        PC_CR1 =0xD8;//推挽輸出,PC5懸空輸入
        PC_CR2=0x00;
        //PC_ODR=0XD8;
  PA_DDR=0XFF;
        PA_CR1=0XFF;
        PA_CR2=0;
        //PB4 PB5輸出,PB4控制LED
        PB_DDR =0xFF;
        PB_CR1= 0xFF;
        PB_CR2=0;
        //PB_ODR=0XFF;
       
        //PD2 YB30 SDI PD3        YB30 SDO PD4接外部P1蜂鳴器
        PD_DDR = 0x14;
        PD_CR1=0x14;
        PD_CR2=0;
       

        //其他IO 左邊 P1 到P4 設(shè)置 成輸入,右邊P5到P8設(shè)置成輸出       
}
volatile unsigned char a=0;

/************************************************************************************
PC5中斷函數(shù),無線接收中斷
*************************************************************************************/
@far @interrupt void YB30INT (void)
{
        unsigned char dd,rsi;
        int i=0;
        PC_CR2=0x00;    //關(guān)PC中斷
        if (bSend==1)
        P5=1; //發(fā)送有中斷,點LED
        //CC_Idle();//新加測試 PA模塊 老的和新的。           
        dd=CC_RdStatus(0x35);   //讀狀態(tài)寄存器
        if (dd==17) CC_ClrRx(); //清除接收緩沖區(qū)和接收錯誤相關(guān)標(biāo)志
        if (dd==22) CC_ClrTx(); //清除發(fā)送緩沖區(qū)和發(fā)送錯誤相關(guān)標(biāo)志
        dd=CC_RdStatus(0x3B)&0x7f;//CCxxx0_RXBYTES 讀數(shù)據(jù)長度
        if (dd==0)//V1.1 ?-ê?if (bSendOk==0) 長度 0
        {
       
                CC_RxOn();//        進入接收狀態(tài)  
    TX=0;RX=1;               
        }
        else  //長度不為0
        {
          SerData[0]=0;
                CC_RdPacket(); //讀數(shù)據(jù)包
                CC_RxOn();
                if ((bRcvOk==1)&&(SerData[0]<62))
                {
                        //復(fù)制數(shù)據(jù),用于在主程序里顯示和修改,SerData 用來在RF中斷里判斷
                        //memcpy(RFData,SerData,SerData[0]);
                        //xieyi_panduan();//解析協(xié)議       
            bRcvOk=0;
                                                rsi = CC_RssiCh(Rssi);
                                                //if ((bSend==0)&&(rsi<58)) //26 CC2500+PA  67
                                                if (SerData[0]==10)
                                                P5=1;
                                                timeout=0;
                                               
                }
        }

//PC_CR2=0x20;    //開PC5中斷
       
}
void TXtest(void)
{
          unsigned char n=0;
                        ///發(fā)射的
                P5=0;
                CC_Init();
                CC_Chan(227);
                Delay_ms(20);
                //如果是CC2500+PA+LNA 模塊,把開關(guān)打到接收這邊
                 RX=0;TX=1;
                 Delay_ms(5);
                bSend =1;
                PC_CR2=0X0;
                CC_SendPacket(SerData,10);
                while(!nIRQ)
                {
                        if (n++>10)
                                break;
                        Delay_ms(2);
          };
                while(nIRQ)
                {
                        if (n++>10)
                                break;
                        Delay_ms(2);
          };
                //發(fā)成功了,開關(guān)不接上
                RX=0;TX=0;
                //PC_CR2=0X20;
                P5=1;
}

void RXtest(void)
{
   //如果是2500+PA+LNA 模塊,把開關(guān)打到接收這邊來;
         TX=0;RX=1;
   //接收的
                PC_CR2=0X20;
                CC_RxOn();
                Delay_ms(10);
                //while(!nIRQ);
                //while(nIRQ);
                //CC_RdPacket();
        //        if (SerData[0]==5)
        //        P5=1;
                //PC_CR2=0X20;
                if (timeout++>3)
         {
                  P5=0;
                         CC_Init();         //初始化無線 模塊
                        P5=0;
                        //CC_Test();
            CC_Chan(227); //設(shè)置頻道  
                        Delay_ms(1);
            CC_RxOn();// Enable RX.
            PC_CR2=0x20;
               
            //EXTI_CR2=0x02;//下降沿觸發(fā)
            EXTI_CR1=0x20;
                        P5=0;
         }
}
void main()
{
        unsigned char i=0;
        _asm("sim"); // 關(guān)全局中斷
//  CLK_CKDIVR=0x00; //16M

//        WDTCON = 0X00;  // 看門狗設(shè)置
        //CLK_ICKR = 0X07;        // 使用內(nèi)部晶振, 8M crystal
       

         port_init();          // IO 口初始化

//P5=1;//點LED
TX=0;
RX=1;
RX=0;
TX=1;
//Delay_ms(255);
//P5=0;
nSEL=0;
nSEL=1;
nSEL=0;
RF433_CS_UP;
RF433_CS_DN;
RF433_SPCK_UP;
RF433_SPCK_DN;

//#define RF433_MISO ((AT91F_PIO_GetInput(AT91C_BASE_PIOA)& (AT91C_PIO_PA27))==(AT91C_PIO_PA27))//0x00010000


RF433_MOSI_UP;
RF433_MOSI_DN;

        //TestSI4432();
        CC_Init();         //初始化無線 模塊
        CC_Test();
        CC_Chan(227); //設(shè)置頻道
        Delay_ms(10);
        CC_RxOn();// Enable RX.
        TX=0;RX=1;
        //while(1);  

        PC_CR2=0x20;

        EXTI_CR2=0x02;//下降沿觸發(fā)
//        EXTI_CR1=0x20;
        //PC_CR2=0x10;//PC5中斷懸浮輸入
        //EXTI_CR1=0x10;
        //EXTI_CR1=0xff;//下降沿觸發(fā) PC口
        //EXTI_CR2=0x02;//下降沿觸發(fā)
       
        P5=0;//關(guān)LED
   _asm("rim");
        // TXtest();
  //CC_Idle();
        while(1)
        {               
         TXtest();
                //CC_Cmd(0x33);
                //CC_Idle();
                //RXtest();
                 Delay_ms(50);
                P5=0;
                bSend =0;
               
        }       
}

void Delay_us(int t)
{
  while(t--)
  {
   _asm("nop");
         _asm("nop");
         _asm("nop");
         _asm("nop");
         _asm("nop");
         _asm("nop");
         _asm("nop");
         _asm("nop");
         _asm("nop");
         _asm("nop");
  }
}
void Delay_ms(unsigned char time)
{
        unsigned char i,k;
        for(k = 0; k< time; k++)
        {
                for(i = 0; i<130; i++)
                {
                        _asm("nop");
                        _asm("nop");
                }
        }               
       
}

CC2500-stm8.rar

126.24 KB, 下載次數(shù): 15, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区和二区 | 色吧色综合 | 精品免费视频一区二区 | 久久99久久99久久 | 国产免费一区二区 | 国产精品视频久久 | 99热国产免费 | 99热这里有精品 | 国产三级精品三级在线观看四季网 | 亚洲精品99 | 欧美综合一区二区 | 成人免费淫片aa视频免费 | 在线免费中文字幕 | 中文一区 | 一级毛片大全免费播放 | 亚洲欧美中文日韩在线v日本 | 亚洲国产精品人人爽夜夜爽 | a视频在线观看 | 午夜爱爱毛片xxxx视频免费看 | 中文字幕亚洲区一区二 | 国产一区二区三区 | 黄网站涩免费蜜桃网站 | 国产午夜精品一区二区三区在线观看 | 色桃网 | 欧美激情一区二区三区 | 男人影音 | 在线国产精品一区 | 夜夜骚 | 日韩成人一区 | 男女精品网站 | 伊人网在线综合 | 精品视频一区二区三区 | 亚洲一区二区三区四区五区中文 | 国内毛片毛片毛片毛片 | 日本色综合 | 日韩一区二区三区视频 | 综合网视频 | 97免费视频在线观看 | 网站黄色在线免费观看 | 成人免费三级电影 | 国产成人综合在线 |