1.初始化UART0之前需要先初始化ACLK、SMCLK和MCLK。示例代碼中使用XT1,ACLK為32768,SMCLK和MCLK約為8MHZ。
2.UART的時鐘可以參考ACLK或者SMCLK,本例參考ACLK。由于參考ACLK時鐘,所以串口速率不能超過32768。選擇9600較為合適。
3.MSP430波特率的產(chǎn)生有兩種模式,低頻波特率產(chǎn)生和過采樣波特率產(chǎn)生。代碼中使用低頻波特率產(chǎn)生。
4.代碼的開頭調(diào)用了stdio,在函數(shù)中宏重寫了putchar函數(shù),定向到UART單字節(jié)輸出。
5.代碼初始化之后輸出 Hello MSP430,隨后直接反射串口接收到的數(shù)據(jù),例如發(fā)送123456即返回123456。
// 時鐘默認情況
// FLL時鐘 FLL選擇 XT1
// 輔助時鐘 ACLK選擇 XT1 32768Hz
// 主系統(tǒng)時鐘 MCLK選擇 DCOCLKDIV 8000000Hz
// 子系統(tǒng)時鐘 SMCLK選擇 DCOCLKDIV 8000000Hz
// UART時鐘選擇 ACLK
// 低頻波特率產(chǎn)生 9600-8-N-1
#include #include void clock_config(void); void select_xt1(void); void dco_config(void); void uart_config(void); int main(void) { clock_config(); // 初始化時鐘 uart_config(); _EINT(); P4DIR |= BIT0; // P4.0輸出 printf("Hello MSP430!rn"); while(1) { P4OUT ^= BIT0; __delay_cycles(1000000); } } void clock_config(void) { WDTCTL = WDTPW + WDTHOLD; // 停止看門狗 select_xt1(); // 選擇XT1 dco_config(); // ACLK = XT1 = 32.768K // MCLK = SMCLK = 8000K } void select_xt1(void) { // 啟動XT1 P7SEL |= 0x03; // P7.0 P7.1 外設功能 UCSCTL6 &= ~(XT1OFF); // XT1打開 UCSCTL6 |= XCAP_3; // 內(nèi)部電容 do { UCSCTL7 &= ~XT1LFOFFG; // 清楚XT1錯誤標記 }while (UCSCTL7&XT1LFOFFG); // 檢測XT1錯誤標記 } void dco_config(void) { __bis_SR_register(SCG0); // 禁止FLL功能 UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx UCSCTL1 = DCORSEL_5; // DCO最大頻率為16MHz UCSCTL2 = FLLD_1 + 243; // 設置DCO頻率為8MHz // MCLK = SMCLK= Fdcoclkdiv = (N+1)X(Ffllrefclk/n) // N為唯一需要計算的值 // Ffllrefclk FLL參考時鐘,默認為XT1 // n取默認值,此時為1 // (243 + 1) * 32768 = 8MHz __bic_SR_register(SCG0); // 使能FLL功能 // 必要延時 __delay_cycles(250000); // 清楚錯誤標志位 do { UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除所有振蕩器錯誤標志位 SFRIFG1 &= ~OFIFG; // 清除振蕩器錯誤 }while (SFRIFG1&OFIFG); // 等待清楚完成 } void uart_config(void) { P3SEL = 0x30; // 選擇P3.4和P3.5的復用功能 UCA0CTL1 |= UCSWRST; // 軟件復位 UCA0CTL1 |= UCSSEL_1; // 選擇ACLK時鐘 UCA0BR0 = 3; // 查表獲得 UCA0BR1 = 0; // UCA0BRX和UCA0MCTL數(shù)值 UCA0MCTL |= UCBRS_3 + UCBRF_0; // UCA0CTL1 &= ~UCSWRST; // UCA0IE |= UCRXIE; // 使能接收中斷 } int putchar(int ch) { UCA0TXBUF = ch; while(!(UCA0IFG & UCTXIFG)); return ch; } #pragma vector=USCI_A0_VECTOR __interrupt void USCI_A0_ISR(void) { switch(__even_in_range(UCA0IV,4)) { case 0:break; case 2: // 接收中斷 while (!(UCA0IFG&UCTXIFG)); // 等待發(fā)送完成 UCA0TXBUF = UCA0RXBUF; // 接收緩沖區(qū) break; case 4:break; // 發(fā)送中斷 default: break; } }
上一篇:MSP430F5438 定時器總結(jié)
下一篇:如何在FreeRTOS下實現(xiàn)低功耗——MSP430F5438平臺
推薦閱讀
史海拾趣
隨著公司的發(fā)展,EM Devices Corporation不斷加大對研發(fā)的投入,致力于推出更具創(chuàng)新性的產(chǎn)品。一次偶然的機會,公司的研發(fā)團隊發(fā)現(xiàn)了一種新型材料,它具有優(yōu)異的電氣性能和穩(wěn)定性。經(jīng)過數(shù)月的艱苦研發(fā),公司成功將這種材料應用于產(chǎn)品中,并推出了一款性能卓越的新型電子元件。這一創(chuàng)新產(chǎn)品不僅為公司帶來了豐厚的利潤,還進一步鞏固了公司在行業(yè)內(nèi)的領先地位。
在立足臺灣市場的同時,兆欣也積極拓展海外市場。他們通過參加國際展會、與海外客戶建立合作關系等方式,成功將產(chǎn)品打入國際市場。特別是在亞洲地區(qū),兆欣的產(chǎn)品受到了廣泛歡迎和認可。這種多元化的市場布局為公司的快速發(fā)展提供了有力支持。
Electro Adapter Inc公司(以下簡稱EA公司)的成立源于創(chuàng)始人對電子行業(yè)未來發(fā)展的深刻洞察。在創(chuàng)立初期,EA公司主要生產(chǎn)一些基本的電源適配器,面臨著激烈的市場競爭和資金短缺的雙重壓力。然而,創(chuàng)始人憑借其深厚的技術背景和敏銳的市場洞察力,不斷研發(fā)新產(chǎn)品,提升產(chǎn)品質(zhì)量,逐漸在市場上站穩(wěn)了腳跟。特別是在一次技術革新中,EA公司率先推出了一款高效能、低成本的適配器,贏得了客戶的青睞,也為公司的發(fā)展奠定了堅實的基礎。
在保持核心技術優(yōu)勢的同時,雙嶺電子也積極探索跨界合作的可能性。通過與國內(nèi)外知名企業(yè)和研發(fā)機構(gòu)的合作,公司成功將場效應半導體器件應用于傳感器、儀器儀表和自動化控制等領域。這種跨界合作不僅拓寬了公司的市場渠道,也提升了產(chǎn)品的附加值。同時,雙嶺電子還積極參與各類行業(yè)展會和交流活動,與業(yè)界同行建立了良好的合作關系。
在電子通信技術的浪潮中,EF Johnson Technologies Inc公司憑借其卓越的研發(fā)團隊,成功開發(fā)出一款新型無線通信設備,該設備在信號穩(wěn)定性和傳輸距離上均取得了重大突破。這一技術突破不僅讓EF Johnson在市場上獲得了顯著的競爭優(yōu)勢,也推動了整個行業(yè)的技術進步。隨著產(chǎn)品的廣泛應用,EF Johnson逐漸確立了其在無線通信領域的領先地位。
隨著產(chǎn)品線的不斷豐富和技術實力的不斷提升,Aborn Electronics開始積極尋求市場拓展。公司先后在國內(nèi)外多個地區(qū)設立了銷售網(wǎng)點和分支機構(gòu),并通過參加各類行業(yè)展會和論壇,加強與其他企業(yè)的交流與合作。同時,Aborn Electronics注重品牌建設,通過提升產(chǎn)品質(zhì)量和服務水平,逐漸樹立起了良好的企業(yè)形象和口碑。
本帖最后由 paulhyde 于 2014-9-15 09:22 編輯 經(jīng)過四天三夜的奮斗,競賽終于結(jié)束! 里面的酸甜苦辣咸嘗了個遍! 不過還是有很多的疑問在里面! 希望獲獎作品能上來展示一下! 讓大家共同學習! … 查看全部問答∨ |
|
為什么現(xiàn)在客戶總是要隔離型的LED驅(qū)動電源?--半島狂人 經(jīng)常在這看帖,看到有人說求購LED電源要隔離型的,或是有人問,也總是問隔離型的,他們的言下之意基本都是,不管什么LED樣的LED驅(qū)動,更不管用于何種廠合,反正就是隔離的比不隔離的好,反正隔離的貴一些,就是好,實際這是一種誤區(qū). &n ...… 查看全部問答∨ |
|
STM32可以把FLASH等待周期設置成1,速度更快,F(xiàn)LASH速度36MHZ 今天分別把紅牛板STM32103ZE和金牛板STM32F107VC的FLASH等待周期設置成1,即FLASH運行速度為36MHZ; 運行UCGUI的DEMO測試,103ZE用FSMC刷屏,提高不大,從6.1M PIXEL /S 提高到 6.3M PIXEL /S ;107VC用GPIO刷屏,提高較大,從1.82M PIXEL / ...… 查看全部問答∨ |
能量效率更高、功能更強的新型LED固態(tài)發(fā)光(SSL)產(chǎn)品的發(fā)展很快,被認為是照明市場上的主要革命性進步。在許多垂直應用中,如信號燈、汽車、LCD TV背光,LED已經(jīng)毫無爭議地成為傳統(tǒng)光源的替代產(chǎn)品。但對于范圍更廣的通用照明,LED還沒有被廣泛接受 ...… 查看全部問答∨ |
我準備使用TI研討會發(fā)的LM3S811套件,我看原理圖811的UART口,也就是PA0,PA1和板上另一個芯片的PA0.PA1通過0歐姆電阻相連,如果我要使用811的UART,把PA0,PA1引出到232芯片上進行串口通信時,會不會對另一個芯片產(chǎn)生影響,或者是應該如何把811的 ...… 查看全部問答∨ |
|