新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR 串口使用

        AVR 串口使用

        作者: 時間:2016-12-03 來源:網絡 收藏
        #include

        #define uchar unsigned char
        #define uint unsigned int
        #define BUFFER_LENGTH 11


        unsignedcharReceive_Calc=0;
        unsignedcharUART_Receive_Buffer[11]={0};
        unsignedcharUART_Send_Buffer[]={w,F,0,0,V,0,A,0,0,R,0};

        //###########################################################
        /*串口初始化函數*/
        voidUart_Init(void)
        {
        UCSRA=(1<UCSRB=(1<UCSRC=(1<
        UBRRH=0x00;// 設置波特率寄存器低位字節
        UBRRL=95;//9600 (7.3728MHz) // 設置波特率寄存器高位字節

        SREG_I=1;// 開總中斷
        DDRD_Bit1=1;// 配置TX 為輸出(很重要)
        }
        //###########################################################
        /*發送一個字符數據,查詢方式*/
        voidUart_Transmit_Char(unsignedchardata)
        {
        while(!(UCSRA&(1<// 也可以寫成 while(UCSRA_UDRE==0);
        UDR=data;// 發送數據
        }
        //###########################################################
        /*發送字符串*/
        voidUart_Transmit_String(unsignedchar*ptr)
        {
        unsignedchari;
        i=BUFFER_LENGTH;
        while(i--)
        {
        Uart_Transmit_Char(*ptr++);
        }
        }
        //###########################################################
        /*中斷接收*/
        #pragma vector=USART_RXC_vect
        __interruptvoidUSART_RXC_Server(void)
        {
        UART_Receive_Buffer[Receive_Calc++]=UDR;// 將收到的值賦值給變量
        if(Receive_Calc>=11)
        {
        Receive_Calc=0;
        }
        }
        //###########################################################
        /*主函數*/
        voidmain(void)
        {
        Uart_Init();
        while(1)
        {
        Uart_Transmit_Char(0x0d);
        Uart_Transmit_Char(0x0a);
        }
        }


        關鍵詞: AVR串口使

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 苍梧县| 张家界市| 乌兰浩特市| 崇仁县| 嫩江县| 吉木萨尔县| 德格县| 蓝田县| 静海县| 永州市| 射洪县| 五华县| 香格里拉县| 两当县| 甘肃省| 平乐县| 长沙县| 于都县| 光泽县| 太保市| 江川县| 合山市| 平阳县| 稻城县| 湘潭市| 密云县| 唐河县| 三都| 嵊泗县| 石屏县| 福海县| 依安县| 炎陵县| 正定县| 乌拉特中旗| 铜梁县| 田林县| 伊宁县| 亚东县| 嘉黎县| 阿坝县|