1291 views|0 replies

2015

Posts

0

Resources
The OP
 

Getting Started with MSP430FR6989 LCD Functions [Copy link]

There is an LCD on the msp430fr6989 microcontroller on the official website of Texas Instruments. It has 40 pins, with 20 pins on each side. Those who have learned stm32 can quickly master the code written in the register mode of the LCD, but it is best for novices to get started with library functions if time is very tight. There are rows 0-7 on the board, divided into the upper and lower screens. There are LCDM1-LCDM20 in the columns, with a total of 8*20=160 segments. In the previous post, the definition of the pin is defined through the register, and if you want to make the running lights light up, you can write the register and address in a function, package it, and find the code directly on the official website. It is very rich and quick to learn. For example, the following:

  1. <p>//Define output pins
  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. GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);
  20. GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN2);</p><font size="5"><p>void Init_GPIO(void)
  21. {
  22. // Set all GPIO pins to output low to prevent floating input and reduce power consumption
  23. GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  24. GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  25. GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  26. GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  27. GPIO_setOutputLowOnPin(GPIO_PORT_P5, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  28. GPIO_setOutputLowOnPin(GPIO_PORT_P6, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  29. GPIO_setOutputLowOnPin(GPIO_PORT_P7, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  30. GPIO_setOutputLowOnPin(GPIO_PORT_P8, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  31. GPIO_setOutputLowOnPin(GPIO_PORT_P9, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  32. GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  33. GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  34. GPIO_setAsOutputPin(GPIO_PORT_P3, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  35. GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  36. GPIO_setAsOutputPin(GPIO_PORT_P5, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  37. GPIO_setAsOutputPin(GPIO_PORT_P6, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  38. GPIO_setAsOutputPin(GPIO_PORT_P7, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  39. GPIO_setAsOutputPin(GPIO_PORT_P8, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  40. GPIO_setAsOutputPin(GPIO_PORT_P9, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
  41. GPIO_setAsInputPin(GPIO_PORT_P3, GPIO_PIN5);
  42. // Configure button S1 (P1.1) interrupt
  43. GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN1, GPIO_HIGH_TO_LOW_TRANSITION);
  44. GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);
  45. GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);
  46. GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1);
  47. // Configure button S2 (P1.2) interrupt
  48. GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN2, GPIO_HIGH_TO_LOW_TRANSITION);
  49. GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN2);
  50. GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN2);
  51. GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN2);
  52. // Set P4.1 and P4.2 as Secondary Module Function Input, LFXT.
  53. GPIO_setAsPeripheralModuleFunctionInputPin(
  54. GPIO_PORT_PJ,
  55. GPIO_PIN4 + GPIO_PIN5,
  56. GPIO_PRIMARY_MODULE_FUNCTION
  57. );
  58. // Disable the GPIO power-on default high-impedance mode
  59. // to activate previously configured port settings
  60. PMM_unlockLPM5();</p><p>}</p></font><p>
  61. </p>
This post is from Microcontroller MCU
 

Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list