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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3221|回復: 0
收起左側

CC2500-stm8的驅動代碼

[復制鏈接]
ID:315951 發表于 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寄存器設置方向 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 設置 成輸入,右邊P5到P8設置成輸出       
}
volatile unsigned char a=0;

/************************************************************************************
PC5中斷函數,無線接收中斷
*************************************************************************************/
@far @interrupt void YB30INT (void)
{
        unsigned char dd,rsi;
        int i=0;
        PC_CR2=0x00;    //關PC中斷
        if (bSend==1)
        P5=1; //發送有中斷,點LED
        //CC_Idle();//新加測試 PA模塊 老的和新的。           
        dd=CC_RdStatus(0x35);   //讀狀態寄存器
        if (dd==17) CC_ClrRx(); //清除接收緩沖區和接收錯誤相關標志
        if (dd==22) CC_ClrTx(); //清除發送緩沖區和發送錯誤相關標志
        dd=CC_RdStatus(0x3B)&0x7f;//CCxxx0_RXBYTES 讀數據長度
        if (dd==0)//V1.1 ?-ê?if (bSendOk==0) 長度 0
        {
       
                CC_RxOn();//        進入接收狀態  
    TX=0;RX=1;               
        }
        else  //長度不為0
        {
          SerData[0]=0;
                CC_RdPacket(); //讀數據包
                CC_RxOn();
                if ((bRcvOk==1)&&(SerData[0]<62))
                {
                        //復制數據,用于在主程序里顯示和修改,SerData 用來在RF中斷里判斷
                        //memcpy(RFData,SerData,SerData[0]);
                        //xieyi_panduan();//解析協議       
            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;
                        ///發射的
                P5=0;
                CC_Init();
                CC_Chan(227);
                Delay_ms(20);
                //如果是CC2500+PA+LNA 模塊,把開關打到接收這邊
                 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);
          };
                //發成功了,開關不接上
                RX=0;TX=0;
                //PC_CR2=0X20;
                P5=1;
}

void RXtest(void)
{
   //如果是2500+PA+LNA 模塊,把開關打到接收這邊來;
         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); //設置頻道  
                        Delay_ms(1);
            CC_RxOn();// Enable RX.
            PC_CR2=0x20;
               
            //EXTI_CR2=0x02;//下降沿觸發
            EXTI_CR1=0x20;
                        P5=0;
         }
}
void main()
{
        unsigned char i=0;
        _asm("sim"); // 關全局中斷
//  CLK_CKDIVR=0x00; //16M

//        WDTCON = 0X00;  // 看門狗設置
        //CLK_ICKR = 0X07;        // 使用內部晶振, 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); //設置頻道
        Delay_ms(10);
        CC_RxOn();// Enable RX.
        TX=0;RX=1;
        //while(1);  

        PC_CR2=0x20;

        EXTI_CR2=0x02;//下降沿觸發
//        EXTI_CR1=0x20;
        //PC_CR2=0x10;//PC5中斷懸浮輸入
        //EXTI_CR1=0x10;
        //EXTI_CR1=0xff;//下降沿觸發 PC口
        //EXTI_CR2=0x02;//下降沿觸發
       
        P5=0;//關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, 下載次數: 15, 下載積分: 黑幣 -5

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费观看毛片 | 色一级片| 男人天堂网址 | 激情av在线 | 久久国产精品亚洲 | 国产三级电影网站 | caoporn视频在线 | 日日爽 | 岛国精品 | 欧美激情国产日韩精品一区18 | 日韩欧美在线播放 | 久久一二 | 黄视频免费 | 91p在线观看 | 欧美日韩一区二区视频在线观看 | av影音资源| 一区二区免费看 | 国产在线高清 | 色又黄又爽网站www久久 | 一区二区三区国产精品 | 午夜激情国产 | 在线一级片 | 国产一区二区三区 | 欧美精品福利 | 精品成人一区 | 毛片网站在线观看视频 | 国产精品美女久久久 | 91新视频| 亚洲精品二区 | 国产精品一区二区三 | 欧美精品一区二区三区在线四季 | 亚洲第一免费播放区 | 一区二区三区视频 | 成人国产精品 | 亚洲在线免费观看 | 夜夜操天天艹 | 日韩一区在线视频 | 精品麻豆剧传媒av国产九九九 | 久久久91精品国产一区二区精品 | 一区二区三区精品视频 | 精品视频一二区 |