新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > atmega16串口通信

        atmega16串口通信

        作者: 時間:2016-12-01 來源:網絡 收藏

        USART 波特率寄存器- UBRRL和UBRRH

        UCSRC寄存器與UBRRH寄存器共用相同的I/O地址。

        • Bit 15 – URSEL: 寄存器選擇

        通過該位選擇訪問UCSRC 寄存器或UBRRH 寄存器。當讀UBRRH 時,該位為0 ;當寫UBRRH 時, URSEL 為0。

        • Bit 14:12 – 保留位

        這些位是為以后的使用而保留的。為了與以后的器件兼容,寫UBRRH 時將這些位清零。

        • Bit 11:0 – UBRR11:0: USART 波特率寄存器

        這個12 位的寄存器包含了USART 的波特率信息。其中UBRRH 包含了USART 波特率高4 位,UBRRL 包含了低8 位。波特率的改變將造成正在進行的數據傳輸受到破壞。寫UBRRL 將立即更新波特率分頻器。

        進行通信之前首先要對USART 進行初始化。初始化過程通常包括波特率的設定,幀結構的設定,以及根據需要使能接收器或發送器。對于中斷驅動的USART 操作,在初始化時首先要清零全局中斷標志位( 全局中斷被屏蔽)

        串口初始化:

        使用串口->使能接收 ->使能發送->波特率(本例使用 9600)->奇偶校驗(disable)->數據位數(8bit)->中斷(RX Complete interrupt)

        //ICC-AVR application builder : 2007-5-10 下午 08:51:56

        // Target : M16

        // Crystal: 11.059Mhz

        //UART0 initialisation

        // desired baud rate: 9600

        // actual: baud rate:9600 (0.0%)

        // char size: 8 bit

        // parity: Disabled

        void uart0_init(void)

        {

        UCSRB = 0x00; //disable while setting baud rate

        UCSRA = 0x00;

        UCSRC = 0x86;

        UBRRL = 0x47; //set baud rate lo

        UBRRH = 0x00; //set baud rate hi

        UCSRB = 0x98;

        }

        //省略了端口初始化

        //call this routine to initialise all peripherals

        void init_devices(void)

        {

        //stop errant interrupts until set up

        CLI(); //disable all interrupts

        port_init();

        uart0_init(); //注意這句 調用串口初始化

        MCUCR = 0x00;

        GICR = 0x00;

        TIMSK = 0x00; //timer interrupt sources

        SEI(); //re-enable interrupts

        //all peripherals are now initialised


        上一頁 1 2 3 下一頁

        關鍵詞: atmega16串口通

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 望江县| 建瓯市| 垦利县| 大足县| 雷州市| 阿拉善左旗| 隆昌县| 类乌齐县| 宁阳县| 平南县| 甘洛县| 宾阳县| 云南省| 阳原县| 突泉县| 天津市| 错那县| 平昌县| 山东省| 建宁县| 中阳县| 桓仁| 建水县| 无为县| 灵寿县| 宝丰县| 磴口县| 巴东县| 集安市| 紫金县| 阿拉善左旗| 大兴区| 安吉县| 巴里| 南安市| 甘洛县| 永宁县| 出国| 清远市| 珠海市| 宁夏|