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:
- <p>//Define output pins
- void GPIO_setAsOutputPin(uint8_t selectedPort,
- uint16_t selectedPins) {
- uint16_t baseAddress = GPIO_PORT_TO_BASE[selectedPort];</p><p> #ifndef NDEBUG
- if(baseAddress == 0xFFFF)
- {
- return;
- }
- #endif</p><p> // Shift by 8 if port is even (upper 8-bits)
- if((selectedPort & 1) ^ 1)
- {
- selectedPins <<= 8;
- }</p><p> HWREG16(baseAddress + OFS_PASEL0) &= ~selectedPins;
- HWREG16(baseAddress + OFS_PASEL1) &= ~selectedPins;
- HWREG16(baseAddress + OFS_PADIR) |= selectedPins;</p><p> return;
- }</p><p>
- </p><p>
- </p><p>Init_GPIO();
- GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);
- GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN2);</p><font size="5"><p>void Init_GPIO(void)
- {
- // Set all GPIO pins to output low to prevent floating input and reduce power consumption
- GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P5, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P6, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P7, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P8, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setOutputLowOnPin(GPIO_PORT_P9, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P3, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P5, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P6, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P7, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P8, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsOutputPin(GPIO_PORT_P9, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7);
- GPIO_setAsInputPin(GPIO_PORT_P3, GPIO_PIN5);
- // Configure button S1 (P1.1) interrupt
- GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN1, GPIO_HIGH_TO_LOW_TRANSITION);
- GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);
- GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN1);
- GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1);
- // Configure button S2 (P1.2) interrupt
- GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN2, GPIO_HIGH_TO_LOW_TRANSITION);
- GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN2);
- GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN2);
- GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN2);
- // Set P4.1 and P4.2 as Secondary Module Function Input, LFXT.
- GPIO_setAsPeripheralModuleFunctionInputPin(
- GPIO_PORT_PJ,
- GPIO_PIN4 + GPIO_PIN5,
- GPIO_PRIMARY_MODULE_FUNCTION
- );
- // Disable the GPIO power-on default high-impedance mode
- // to activate previously configured port settings
- PMM_unlockLPM5();</p><p>}</p></font><p>
- </p>
|