新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CC2530串口接收發送數據

        CC2530串口接收發送數據

        作者: 時間:2016-11-09 來源:網絡 收藏
        CC2530 串口接收發送數據(查詢法)

        #include "ioCC2530.h"

        本文引用地址:http://www.104case.com/article/201611/318047.htm


        void initUART(void)
        {
        PERCFG&=~0x01;
        P0SEL |= 0x0C;

        U0CSR |= 0xC0;//串口接收使能
        U0UCR |= 0x00;//無奇偶校驗,1位停止位

        U0GCR |= 0x08;
        U0BAUD = 0x3b;//波特率:9600bps

        //IEN0 |=0X04;//開串口接收中斷 URX0IE = 1,
        }

        void setSysClk(void)
        {
        CLKCONCMD&=0xbf;
        asm("NOP");
        asm("NOP");
        asm("NOP");
        CLKCONCMD&=0xc0;
        asm("NOP");
        asm("NOP");
        asm("NOP");
        }

        void delay(void)
        {
        unsigned int i;
        unsigned char j;

        for(i=0;i<500;i++)
        {
        for(j=0;j<200;j++)
        {
        asm("NOP");
        asm("NOP");
        asm("NOP");
        }
        }
        }

        char receive (void)
        {
        char dat;

        while (!URX0IF );
        dat = U0DBUF;
        URX0IF = 0;

        return dat;
        }

        void send(int c)
        {
        U0DBUF=c;
        while (!UTX0IF);
        UTX0IF = 0;
        }

        void main()
        {
        setSysClk();
        initUART();

        while(1)
        {
        unsignedchar uartdat;

        uartdat=receive();
        uartdat=~uartdat;
        send(uartdat);
        }
        }

        -----------------------------------------------------

        CC2530 串口接收發送(中斷法)

        #include "ioCC2530.h"


        void initUART(void)
        {
        PERCFG&=~0x01;
        P0SEL |= 0x0C;

        U0CSR |= 0xC0;//串口接收使能
        U0UCR |= 0x00;//無奇偶校驗,1位停止位

        U0GCR |= 0x08;
        U0BAUD = 0x3b;//波特率:9600bps

        IEN0 |=0X04;//開串口接收中斷 URX0IE = 1,
        EA=1;
        }

        void setSysClk(void)
        {
        CLKCONCMD&=0xbf;
        asm("NOP");
        asm("NOP");
        asm("NOP");
        CLKCONCMD&=0xc0;
        asm("NOP");
        asm("NOP");
        asm("NOP");
        }

        void delay(void)
        {
        unsigned int i;
        unsigned char j;

        for(i=0;i<500;i++)
        {
        for(j=0;j<200;j++)
        {
        asm("NOP");
        asm("NOP");
        asm("NOP");
        }
        }
        }

        void send(int c)
        {
        U0DBUF=c;
        while (!UTX0IF);
        UTX0IF = 0;
        }

        void main()
        {
        setSysClk();
        initUART();

        while(1)
        {

        delay();
        delay();
        }
        }


        #pragma vector=URX0_VECTOR
        __interrupt void URX0_IRQ(void)
        {
        charuartdat;

        //while(!URX0IF);

        //URX0IF=0;


        uartdat=U0DBUF;
        uartdat=~uartdat;
        send(uartdat);

        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 汪清县| 吴堡县| 河北区| 慈溪市| 石家庄市| 商丘市| 融水| 池州市| 即墨市| 得荣县| 盐亭县| 岐山县| 桂林市| 高要市| 芦溪县| 古田县| 浮山县| 达日县| 吉首市| 乌审旗| 湟中县| 全椒县| 大丰市| 泽州县| 渝中区| 桐乡市| 金川县| 徐州市| 安塞县| 江油市| 搜索| 广东省| 高邑县| 隆回县| 宝坻区| 承德县| 辽阳市| 泰来县| 池州市| 太康县| 平潭县|