測試程式碼高亮-CSDN預設皮膚
C++語言:
MSP430F5438A的SPI通訊例程
01 //===========================================================================//
02 // //
03 // 檔案: MAIN.C //
04 // 說明: BW-DK5438開發板微控制器SPI埠實驗程式 //
05 // 設定SPI埠工作模式,通過SPI埠傳送資料 //
06 // 可在P3.1/P3.3埠觀察資料、時鐘波形 //
07 // 編譯: IAR Embedded Workbench IDE for MSP430 v4.21 //
08 // 版本: v1.1 //
09 // 編寫: JASON.ZHANG //
10 // 版權: 北京拓普博維電子技術有限公司 //
11 // //
12 //===========================================================================//
13
14 #include "msp430x54x.h"
15 #include <stdlib.h>
16 #include <stdio.h>
17 #include <string.h>
18 #include "PIN_DEF.H"
19
20 #define FLL_FACTOR 649 // FLL_FACTOR: DCO倍頻係數
21 char event, RXBuffer[2] ;
22
23
24 //***************************************************************************//
25 // //
26 // 初始化主時鐘: MCLK = XT1×(FLL_FACTOR+1) //
27 // //
28 //***************************************************************************//
29 void Init_CLK(void)
30 {
31 WDTCTL = WDTPW + WDTHOLD ; // 關看門狗
32 P7SEL |= 0x03 ; // 埠選擇外部低頻晶振XT1
33 UCSCTL6 &=~XT1OFF ; // 使能外部晶振
34 UCSCTL6 |= XCAP_3 ; // 設定內部負載電容
35 UCSCTL3 |= SELREF_2 ; // DCOref = REFO
36 UCSCTL4 |= SELA_0 ; // ACLK = XT1
37 __bis_SR_register(SCG0) ; // 關閉FLL控制迴路
38 UCSCTL0 = 0x0000 ; // 設定DCOx, MODx
39 UCSCTL1 = DCORSEL_7 ; // 設定DCO振盪範圍
40 UCSCTL2 = FLLD__1 + FLL_FACTOR ; // Fdco = ( FLL_FACTOR + 1)×FLLRef = (649 + 1) * 32768 = 21.2992MHz
41 __bic_SR_register(SCG0) ; // 開啟FLL控制迴路
42 __delay_cycles(1024000) ;
43 do
44 {
45 UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 錯誤標誌
46 SFRIFG1 &= ~OFIFG ;
47 }while(SFRIFG1&OFIFG) ; // 檢測振盪器錯誤標誌
48 }
49
50 //***************************************************************************//
51 // //
52 // Init_Port(void): 設定IO埠 //
53 // //
54 //***************************************************************************//
55 void Init_Port(void)
56 {
57 P5DIR |= POWER ; // 主電源
58 MAIN_POWER_ON ;
59 P7DIR |= LED_PWR ; // 發光二極體電源
60 P7OUT &=~LED_PWR ;
61 INTERNAL_PULL_UP ; // 使能鍵盤埠內部上拉電阻
62 ROW_IN_COL_OUT ; // 設定行輸入,列輸出0
63 }
64
65 //***************************************************************************//
66 // //
67 // Init_SPI(void): 設定SPI埠 //
68 // //
69 //***************************************************************************//
70 void Init_SPI(void)
71 {
72 P8OUT |= LCD_NCS ; // SPI埠複用,DisableTFT液晶埠
73 P8DIR |= LCD_NCS ;
74 P3OUT |= NCS25 ;
75 P3DIR |= NCS25 ;
76 P3SEL &= 0xF0 ;
77 P3SEL |= 0x0E ; // // P3.1/2/3功能選擇為SPI
78 UCB0CTL1 |= UCSWRST ; // 復位SPI狀態機
79 UCB0CTL0 |= UCMST+UCSYNC+UCCKPL+UCMSB ; // 3-pin, 8-bit SPI master, Clock polarity high, MSB
80 UCB0CTL1 |= UCSSEL_2 ; // 選擇SCK參考源為SMCLK
81 UCB0BR0 = 0x02 ; // SCK = SMCK/2
82 UCB0BR1 = 0 ;
83 UCB0CTL1 &=~UCSWRST ; // SPI狀態機使能
84 }
85
86
87 void main( void )
88 {
89 WDTCTL = WDTPW + WDTHOLD ;
90 Init_CLK() ;
91 Init_Port() ;
92 Init_SPI() ;
93 for(;;)
94 {
95 UCB0TXBUF = 0x55 ;
96 __delay_cycles(280) ;
97 }
98 }
02 // //
03 // 檔案: MAIN.C //
04 // 說明: BW-DK5438開發板微控制器SPI埠實驗程式 //
05 // 設定SPI埠工作模式,通過SPI埠傳送資料 //
06 // 可在P3.1/P3.3埠觀察資料、時鐘波形 //
07 // 編譯: IAR Embedded Workbench IDE for MSP430 v4.21 //
08 // 版本: v1.1 //
09 // 編寫: JASON.ZHANG //
10 // 版權: 北京拓普博維電子技術有限公司 //
11 // //
12 //===========================================================================//
13
14 #include "msp430x54x.h"
15 #include <stdlib.h>
16 #include <stdio.h>
17 #include <string.h>
18 #include "PIN_DEF.H"
19
20 #define FLL_FACTOR 649 // FLL_FACTOR: DCO倍頻係數
21 char event, RXBuffer[2] ;
22
23
24 //***************************************************************************//
25 // //
26 // 初始化主時鐘: MCLK = XT1×(FLL_FACTOR+1) //
27 // //
28 //***************************************************************************//
29 void Init_CLK(void)
30 {
31 WDTCTL = WDTPW + WDTHOLD ; // 關看門狗
32 P7SEL |= 0x03 ; // 埠選擇外部低頻晶振XT1
33 UCSCTL6 &=~XT1OFF ; // 使能外部晶振
34 UCSCTL6 |= XCAP_3 ; // 設定內部負載電容
35 UCSCTL3 |= SELREF_2 ; // DCOref = REFO
36 UCSCTL4 |= SELA_0 ; // ACLK = XT1
37 __bis_SR_register(SCG0) ; // 關閉FLL控制迴路
38 UCSCTL0 = 0x0000 ; // 設定DCOx, MODx
39 UCSCTL1 = DCORSEL_7 ; // 設定DCO振盪範圍
40 UCSCTL2 = FLLD__1 + FLL_FACTOR ; // Fdco = ( FLL_FACTOR + 1)×FLLRef = (649 + 1) * 32768 = 21.2992MHz
41 __bic_SR_register(SCG0) ; // 開啟FLL控制迴路
42 __delay_cycles(1024000) ;
43 do
44 {
45 UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 錯誤標誌
46 SFRIFG1 &= ~OFIFG ;
47 }while(SFRIFG1&OFIFG) ; // 檢測振盪器錯誤標誌
48 }
49
50 //***************************************************************************//
51 // //
52 // Init_Port(void): 設定IO埠 //
53 // //
54 //***************************************************************************//
55 void Init_Port(void)
56 {
57 P5DIR |= POWER ; // 主電源
58 MAIN_POWER_ON ;
59 P7DIR |= LED_PWR ; // 發光二極體電源
60 P7OUT &=~LED_PWR ;
61 INTERNAL_PULL_UP ; // 使能鍵盤埠內部上拉電阻
62 ROW_IN_COL_OUT ; // 設定行輸入,列輸出0
63 }
64
65 //***************************************************************************//
66 // //
67 // Init_SPI(void): 設定SPI埠 //
68 // //
69 //***************************************************************************//
70 void Init_SPI(void)
71 {
72 P8OUT |= LCD_NCS ; // SPI埠複用,DisableTFT液晶埠
73 P8DIR |= LCD_NCS ;
74 P3OUT |= NCS25 ;
75 P3DIR |= NCS25 ;
76 P3SEL &= 0xF0 ;
77 P3SEL |= 0x0E ; // // P3.1/2/3功能選擇為SPI
78 UCB0CTL1 |= UCSWRST ; // 復位SPI狀態機
79 UCB0CTL0 |= UCMST+UCSYNC+UCCKPL+UCMSB ; // 3-pin, 8-bit SPI master, Clock polarity high, MSB
80 UCB0CTL1 |= UCSSEL_2 ; // 選擇SCK參考源為SMCLK
81 UCB0BR0 = 0x02 ; // SCK = SMCK/2
82 UCB0BR1 = 0 ;
83 UCB0CTL1 &=~UCSWRST ; // SPI狀態機使能
84 }
85
86
87 void main( void )
88 {
89 WDTCTL = WDTPW + WDTHOLD ;
90 Init_CLK() ;
91 Init_Port() ;
92 Init_SPI() ;
93 for(;;)
94 {
95 UCB0TXBUF = 0x55 ;
96 __delay_cycles(280) ;
97 }
98 }
相關文章
- 測試程式碼高亮
- 測試部落格園皮膚
- 寶塔皮膚切換預設PHP版本PHP
- 奧維雲網:2023年電視皮膚供應鏈預測之皮膚廠篇
- Omdia:解析和預測2022年iPhone OLED皮膚供應鏈iPhone
- Linux效能監測皮膚 | NETDATALinux
- Omdia:預測2021年中國大陸皮膚廠將新增每月12萬片的8.5代皮膚產能專注於IT皮膚生產
- hexo程式碼高亮Hexo
- 部落格園皮膚-我的部落格園皮膚設定教程
- nvidia控制皮膚怎麼調 nvidia控制皮膚怎麼設定
- Omdia:預測平板電腦用皮膚需求預計將下降至 2020 年水平
- IHS Markit:2019年皮膚需求成長預測將下調2.1%
- 【隨便寫寫】存一下皮膚程式碼
- 《java程式設計基礎》javaFX的佈局皮膚Java程式設計
- 如何使用Media Encoder中的「編碼」皮膚和「佇列」皮膚詳解佇列
- win10 如何禁用前皮膚插孔檢測 win10禁用前皮膚方法Win10
- django-ckeditor 程式碼高亮Django
- 如何實現程式碼高亮
- 程式碼高亮網站收集網站
- 20行Python程式碼爬取王者榮耀全英雄皮膚Python
- 測試程式碼
- win10怎麼禁用前皮膚插孔檢測_win10如何關閉前皮膚插孔檢測Win10
- Omdia:2021年11月皮膚出貨和價格預測分析(附下載)
- win10滑鼠指標皮膚如何設定_win10設定滑鼠指標皮膚步驟Win10指標
- nvidia控制皮膚沒有顯示設定 nvidia控制皮膚沒有顯示選項
- 小喬皮膚
- 部落格皮膚
- 寶塔皮膚
- MYSQL程式碼顯示測試測試MySql
- Runto:2023年10月液晶電視皮膚價格預測及波動追蹤
- Omdia:2021-2023 年預測液晶電視皮膚備貨中實力變遷
- 寶塔皮膚密碼的解決方案密碼
- TP二開淘客程式 New新皮膚
- 寶塔皮膚如何設定自定義404
- Omdia:預測2021年各應用類別大尺寸液晶顯示皮膚出貨量
- 修改VS的程式碼高亮顏色
- Atom 微信小程式檔案程式碼高亮微信小程式
- WebStorem 支援微信小程式 wepy 程式碼高亮WebREM微信小程式
- wampserver服務皮膚Server