国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

MSP430 串口函數

發布時間:2008-10-22 21:56    發布者:MSP430
關鍵詞: MSP430 , 串口函數
#include #include void Usart0init() { char i=0; WDTCTL = WDTPW + WDTHOLD; // Stop WDT BCSCTL1 |= XTS; // ACLK = LFXT1 = HF XTAL do { IFG1 &= ~OFIFG; // Clear OSCFault flag for ( i = 0xFF; i > 0; i--); // Time for flag to set } while ((IFG1 & OFIFG) != 0); // OSCFault flag still set? BCSCTL2 |= SELM1+SELM0; // MCLK = LFXT1 (safe) UCTL0|=SWRST; //控制寄存器位 UCTL0|=CHAR; //UCTL0 = CHAR; // 8-bit character UTCTL0 = SSEL0; // UCLK = ACLK UBR00 = 0x41; // 8MHz 9600 UBR10 = 0x3; // 8MHz 9600 UMCTL0 = 0xa4; // 8MHz modulation UCTL0&=~SWRST; //選擇發送時鐘源置位 ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD IE1 |= URXIE0; // Enable USART0 RX/TX interrupt IE1 |= UTXIE0; IFG1=0X00; P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD P3DIR |= 0x10; // P3.4 output direction _EINT(); // Enable interrupts } // USART Receiver buffer #define RX_BUFFER_SIZE 8 char rx_buffer[RX_BUFFER_SIZE]; unsigned char rx_wr_index,rx_rd_index,rx_counter; // This flag is set on USART Receiver buffer overflow char rx_buffer_overflow; // USART Receiver interrupt service routine #pragma vector=USART0RX_VECTOR __interrupt void usart0_rx (void) { char status,data; status=URCTL0; data=RXBUF0; if ((status & (FE | PE | OE))==0) { _DINT(); rx_buffer[rx_wr_index]=data; if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) //如果接收緩沖區滿,則置位溢出,并且清除緩沖區 { rx_counter=0; rx_buffer_overflow=1; }; _EINT(); }; } #ifndef _DEBUG_TERMINAL_IO_ // Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index]; if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; _DINT(); --rx_counter; _EINT(); return data; } #endif // USART Transmitter buffer #define TX_BUFFER_SIZE 8 char tx_buffer[TX_BUFFER_SIZE]; unsigned char tx_wr_index,tx_rd_index,tx_counter; // USART Transmitter interrupt service routine #pragma vector=USART0TX_VECTOR __interrupt void usart0_tx (void) { if (tx_counter>0) { _DINT(); --tx_counter; TXBUF0=tx_buffer[tx_rd_index]; _EINT(); if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0; } } #ifndef _DEBUG_TERMINAL_IO_ // Write a character to the USART Transmitter buffer #define _ALTERNATE_PUTCHAR_ void putchar(char c)///將這個庫函數定向到串口 { while (tx_counter == TX_BUFFER_SIZE); //發送緩沖區滿,則等待 if (tx_counter || ((UTCTL0 & TXEPT)!=1)) { _DINT(); tx_buffer[tx_wr_index]=c; if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0; ++tx_counter; _EINT(); } else { TXBUF0=c; } } #endif
本文地址:http://www.qingdxww.cn/thread-2866-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • PIC18-Q71系列MCU概述
  • 5分鐘詳解定時器/計數器E和波形擴展!
  • 安靜高效的電機控制——這才是正確的方向!
  • 想要避免發生災難,就用MPLAB® SiC電源仿真器!
  • 貿澤電子(Mouser)專區

相關在線工具

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二三区国产 | 午夜影视网 | 俺也来国产精品欧美在线观看 | 富二代精产国品在线播放 | 日本网站在线播放 | 中文字幕欧美日韩高清 | 亚洲蜜芽在线精品一区 | 人间正道是沧桑全集免费下载高清 | 狠狠亚洲 | 欧美精品一区在线看 | 国产精品玖玖玖在线观看 | 国产成人禁片免费观看 | 最新亚洲一区二区三区四区 | 亚洲欧美另类一区 | 亚洲天堂成人在线 | 亚洲国产天堂久久综合图区 | 久久国产精品免费一区二区三区 | 国产v视频| 亚洲小视频在线播放 | 国产精品亚洲午夜一区二区三区 | 一区二区三区四区五区六区 | 国产高清一区二区三区四区 | 欧美卡1卡2卡三卡四免费 | 妈妈的朋友 magnet | 国产免费色视频 | 久久r这里只有精品 | 国产国语在线播放视频 | 人九九精品 | 色噜噜狠狠先锋影音久久 | 国产精品国产三级国产专不∫ | 国产专区视频 | 69黄色| 特级无码a级毛片特黄 | 2021久久最新国产精品 | 国产精品99久久久久久董美香 | 日本卡通动漫影院网站 | 国产a视频精品免费观看 | 国内精品91最新在线观看 | 欧美视频一二三区 | 国产导航在线 | 国产在线观看色 |