找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6267|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

快速入門msp430fr6989之lcd功能篇

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
【注】德州儀器的官網(wǎng)上的msp430fr6989單片機(jī)上有一塊lcd,其有40個(gè)引腳,分別兩邊各有20個(gè)引腳排布。學(xué)過stm32的能很快掌握lcd的寄存器模式下寫成的代碼,但是新手最好入門庫函數(shù)一類,如果時(shí)間很緊迫的情況下。板上是0-7的行,分為上半屏和下半屏。列有LCDM1-LCDM20,總共有8*20=160個(gè)segment。在前面的帖子中,對(duì)引腳的定義是通過寄存器進(jìn)行定義的,而如果我要讓流水燈亮起來就可以把寄存器及地址寫在一個(gè)函數(shù)內(nèi),包裝起來,直接在官網(wǎng)上找的代碼,很豐富,學(xué)這個(gè)很快。比如以下:
  1. <p>//定義輸出引腳
  2. void GPIO_setAsOutputPin(uint8_t selectedPort,
  3.                          uint16_t selectedPins) {
  4.     uint16_t baseAddress = GPIO_PORT_TO_BASE[selectedPort];</p><p>    #ifndef NDEBUG
  5.     if(baseAddress == 0xFFFF)
  6.     {
  7.         return;
  8.     }
  9.     #endif</p><p>    // Shift by 8 if port is even (upper 8-bits)
  10.     if((selectedPort & 1) ^ 1)
  11.     {
  12.         selectedPins <<= 8;
  13.     }</p><p>    HWREG16(baseAddress + OFS_PASEL0) &= ~selectedPins;
  14.     HWREG16(baseAddress + OFS_PASEL1) &= ~selectedPins;
  15.     HWREG16(baseAddress + OFS_PADIR) |= selectedPins;</p><p>    return;
  16. }</p><p>
  17. </p><p>
  18. </p><p>Init_GPIO();
  19.   

  20. GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);
  21. GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN2);</p><font size="5"><p>void Init_GPIO(void)
  22. {
  23.   // Set all GPIO pins to output low to prevent floating input and reduce power consumption
  24.   GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  25.   GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  26.   GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  27.   GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  28.   GPIO_setOutputLowOnPin(GPIO_PORT_P5, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  29.   GPIO_setOutputLowOnPin(GPIO_PORT_P6, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  30.   GPIO_setOutputLowOnPin(GPIO_PORT_P7, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  31.   GPIO_setOutputLowOnPin(GPIO_PORT_P8, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  32.   GPIO_setOutputLowOnPin(GPIO_PORT_P9, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  33.   
  34.   GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  35.   GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  36.   GPIO_setAsOutputPin(GPIO_PORT_P3, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  37.   GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  38.   GPIO_setAsOutputPin(GPIO_PORT_P5, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  39.   GPIO_setAsOutputPin(GPIO_PORT_P6, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  40.   GPIO_setAsOutputPin(GPIO_PORT_P7, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  41.   GPIO_setAsOutputPin(GPIO_PORT_P8, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  42.   GPIO_setAsOutputPin(GPIO_PORT_P9, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  43.   
  44.   GPIO_setAsInputPin(GPIO_PORT_P3, GPIO_PIN5);
  45.   
  46.   // Configure button S1 (P1.1) interrupt
  47.   GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN1, GPIO_HIGH_TO_LOW_TRANSITION);
  48.   GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);
  49.   GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);
  50.   GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1);
  51.   
  52.   // Configure button S2 (P1.2) interrupt
  53.   GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN2, GPIO_HIGH_TO_LOW_TRANSITION);
  54.   GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN2);
  55.   GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN2);
  56.   GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN2);
  57.   
  58.   // Set P4.1 and P4.2 as Secondary Module Function Input, LFXT.
  59.   GPIO_setAsPeripheralModuleFunctionInputPin(
  60.                                              GPIO_PORT_PJ,
  61.                                              GPIO_PIN4 + GPIO_PIN5,
  62.                                              GPIO_PRIMARY_MODULE_FUNCTION
  63.                                                );
  64.   
  65.   // Disable the GPIO power-on default high-impedance mode
  66.   // to activate previously configured port settings
  67.   PMM_unlockLPM5();</p><p>}</p></font><p>
  68. </p>
復(fù)制代碼
下面有開箱的源代碼!窘股虡I(yè)用途】

1.JPG (14.12 KB, 下載次數(shù): 201)

1.JPG

2.JPG (50.97 KB, 下載次數(shù): 187)

2.JPG

3.JPG (24.09 KB, 下載次數(shù): 204)

3.JPG

4.JPG (49.66 KB, 下載次數(shù): 198)

4.JPG

5.JPG (61.78 KB, 下載次數(shù): 202)

5.JPG

6.JPG (100.81 KB, 下載次數(shù): 189)

6.JPG

7.JPG (104.65 KB, 下載次數(shù): 192)

7.JPG

8.JPG (106.71 KB, 下載次數(shù): 179)

8.JPG

9.JPG (97.66 KB, 下載次數(shù): 176)

9.JPG

10.JPG (57.39 KB, 下載次數(shù): 171)

10.JPG

11.JPG (68.78 KB, 下載次數(shù): 196)

11.JPG

12.JPG (63.87 KB, 下載次數(shù): 221)

12.JPG

13.JPG (57.19 KB, 下載次數(shù): 178)

13.JPG

14.JPG (57.56 KB, 下載次數(shù): 207)

14.JPG

15.JPG (49.11 KB, 下載次數(shù): 177)

15.JPG

16.JPG (44.47 KB, 下載次數(shù): 257)

16.JPG

17.JPG (54.74 KB, 下載次數(shù): 185)

17.JPG

18.JPG (57.35 KB, 下載次數(shù): 175)

18.JPG

19.JPG (93.68 KB, 下載次數(shù): 165)

19.JPG

20.JPG (53.3 KB, 下載次數(shù): 179)

20.JPG

21.JPG (36.26 KB, 下載次數(shù): 179)

21.JPG

22.JPG (30.67 KB, 下載次數(shù): 189)

22.JPG

23.JPG (44.98 KB, 下載次數(shù): 185)

23.JPG

OutOfBox_MSP430FR6989.7z

1.49 MB, 下載次數(shù): 38, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:628019 發(fā)表于 2019-10-23 12:44 | 只看該作者
不行,你這下載的東西是官方的樣例,,初學(xué)者,你貼的圖也不過。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:64765 發(fā)表于 2020-6-25 16:15 | 只看該作者
好資料,學(xué)習(xí)了,謝謝分享。
回復(fù)

使用道具 舉報(bào)

地板
ID:64765 發(fā)表于 2020-6-29 14:32 | 只看該作者
給力,太好了,謝謝樓主分享。
回復(fù)

使用道具 舉報(bào)

5#
ID:497627 發(fā)表于 2020-7-29 11:01 | 只看該作者
可以提一個(gè)題外話的問題嗎?FR6989的中斷需要開全局嗎,我寫了個(gè)定時(shí)器中斷的實(shí)驗(yàn),但是中斷跳不進(jìn)去
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表