STM32L-Discovery LCD driver is code compele but untested
This commit is contained in:
parent
c7bf6bf65a
commit
dfaa61731b
|
@ -4781,3 +4781,5 @@
|
|||
should set the POLLNVAL event and return immediately (2013-5-23).
|
||||
* libc/misc/lib_slcdencode.c and lib_slcddecode.c: Add logic to marshal
|
||||
and serialized special SLCD intermixed with normal ASCII data (2013-5-23)
|
||||
* configs/stm32ldiscovery/src/stm32_lcd.c: STM32L-Discovery's segment LCD
|
||||
is code complete but completely untested (2013-5-23).
|
||||
|
|
|
@ -500,7 +500,7 @@ config STM32_CAN1
|
|||
default n
|
||||
select CAN
|
||||
select STM32_CAN
|
||||
depends on !STM32_VALUELINE
|
||||
depends on !STM32_VALUELINE && !STM32_STM32L15XX
|
||||
|
||||
config STM32_CAN2
|
||||
bool "CAN2"
|
||||
|
@ -586,11 +586,6 @@ config STM32_I2C3
|
|||
depends on STM32_STM32F20XX || STM32_STM32F40XX
|
||||
select STM32_I2C
|
||||
|
||||
config STM32_IWDG
|
||||
bool "IWDG"
|
||||
default n
|
||||
select WATCHDOG
|
||||
|
||||
config STM32_OTGFS
|
||||
bool "OTG FS"
|
||||
default n
|
||||
|
@ -664,6 +659,7 @@ config STM32_SYSCFG
|
|||
config STM32_TIM1
|
||||
bool "TIM1"
|
||||
default n
|
||||
depends on !STM32_STM32L15XX
|
||||
|
||||
config STM32_TIM2
|
||||
bool "TIM2"
|
||||
|
@ -693,7 +689,7 @@ config STM32_TIM7
|
|||
config STM32_TIM8
|
||||
bool "TIM8"
|
||||
default n
|
||||
depends on !STM32_VALUELINE
|
||||
depends on !STM32_VALUELINE && !STM32_STM32L15XX
|
||||
|
||||
config STM32_TIM9
|
||||
bool "TIM9"
|
||||
|
@ -767,14 +763,14 @@ config STM32_USART3
|
|||
config STM32_UART4
|
||||
bool "UART4"
|
||||
default n
|
||||
depends on !STM32_STM32F30XX
|
||||
depends on !STM32_STM32F30XX &&!STM32_STM32L15XX
|
||||
select ARCH_HAVE_UART4
|
||||
select STM32_USART
|
||||
|
||||
config STM32_UART5
|
||||
bool "UART5"
|
||||
default n
|
||||
depends on !STM32_STM32F30XX
|
||||
depends on !STM32_STM32F30XX &&!STM32_STM32L15XX
|
||||
select ARCH_HAVE_UART5
|
||||
select STM32_USART
|
||||
|
||||
|
@ -805,6 +801,16 @@ config STM32_USB
|
|||
depends on (STM32_STM32F10XX && !STM32_VALUELINE) || STM32_STM32L15XX || STM32_STM32F30XX
|
||||
select USBDEV
|
||||
|
||||
config STM32_LCD
|
||||
bool "Segment LCD"
|
||||
default n
|
||||
depends on STM32_STM32L15XX
|
||||
|
||||
config STM32_IWDG
|
||||
bool "IWDG"
|
||||
default n
|
||||
select WATCHDOG
|
||||
|
||||
config STM32_WWDG
|
||||
bool "WWDG"
|
||||
default n
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
# define LCD_CR_BIAS_1TO4 (0 << LCD_CR_BIAS_SHIFT) /* 00: Bias 1/4 */
|
||||
# define LCD_CR_BIAS_1TO2 (1 << LCD_CR_BIAS_SHIFT) /* 01: Bias 1/2 */
|
||||
# define LCD_CR_BIAS_1TO3 (2 << LCD_CR_BIAS_SHIFT) /* 10: Bias 1/3 */
|
||||
#define LCD_CR_MUX_SEG (1 << 7) /* Bit 7: Mux segment enable
|
||||
#define LCD_CR_MUX_SEG (1 << 7) /* Bit 7: Mux segment enable */
|
||||
/* Bits 8-31 Reserved */
|
||||
|
||||
/* LCD frame control register */
|
||||
|
@ -181,7 +181,7 @@
|
|||
# define LCD_FCR_PS_DIV8192 (13 << LCD_FCR_PS_SHIFT) /* 0011: ck_ps = LCDCLK/8192 */
|
||||
# define LCD_FCR_PS_DIV16384 (14 << LCD_FCR_PS_SHIFT) /* 0011: ck_ps = LCDCLK/16384 */
|
||||
# define LCD_FCR_PS_DIV32768 (15 << LCD_FCR_PS_SHIFT) /* 0011: ck_ps = LCDCLK/32768 */
|
||||
/* Bits 26-31 Reserved
|
||||
/* Bits 26-31 Reserved */
|
||||
|
||||
/* LCD status register */
|
||||
|
||||
|
@ -191,14 +191,14 @@
|
|||
#define LCD_SR_UDD (1 << 3) /* Bit 3: Update Display Done */
|
||||
#define LCD_SR_RDY (1 << 4) /* Bit 4: Ready flag */
|
||||
#define LCD_SR_FCRSF (1 << 5) /* Bit 5: LCD Frame Control Register Synchronization flag */
|
||||
/* Bits 6-31 Reserved
|
||||
/* Bits 6-31 Reserved */
|
||||
|
||||
/* LCD clear register */
|
||||
|
||||
/* Bit 0 Reserved */
|
||||
#define LCD_CLR_SOFC (1 << 1) /* Bit 1: Start of frame flag clear */
|
||||
/* Bit 2 Reserved */
|
||||
#define LCD_CLR_UDDC (1 << 2) /* Bit 3: Update display done clear
|
||||
#define LCD_CLR_UDDC (1 << 2) /* Bit 3: Update display done clear */
|
||||
/* Bits 31:2-31 Reserved */
|
||||
|
||||
/* LCD display memory, COMn, S00-S31 */
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
README
|
||||
======
|
||||
|
||||
This README discusses issues unique to NuttX configurations for the
|
||||
STMicro STM32L-Discovery development board. The STM32L-Discovery board
|
||||
is based on the STM32L152RBT6 MCU (128KB FLASH and 16KB of SRAM).
|
||||
This README discusses issues unique to NuttX configurations for the
|
||||
STMicro STM32L-Discovery development board. The STM32L-Discovery board
|
||||
is based on the STM32L152RBT6 MCU (128KB FLASH and 16KB of SRAM).
|
||||
|
||||
The STM32L-Discovery and 32L152CDISCOVERY kits are functionally
|
||||
equivalent. The difference is the internal Flash memory size (STM32L152RBT6
|
||||
with 128 Kbytes or STM32L152RCT6 with 256 Kbytes).
|
||||
The STM32L-Discovery and 32L152CDISCOVERY kits are functionally
|
||||
equivalent. The difference is the internal Flash memory size (STM32L152RBT6
|
||||
with 128 Kbytes or STM32L152RCT6 with 256 Kbytes).
|
||||
|
||||
Both boards feature:
|
||||
Both boards feature:
|
||||
|
||||
- An ST-LINK/V2 embedded debug tool interface,
|
||||
- LCD (24 segments, 4 commons),
|
||||
- LEDs,
|
||||
- Pushbuttons,
|
||||
- A linear touch sensor, and
|
||||
- Four touchkeys.
|
||||
- An ST-LINK/V2 embedded debug tool interface,
|
||||
- LCD (24 segments, 4 commons),
|
||||
- LEDs,
|
||||
- Pushbuttons,
|
||||
- A linear touch sensor, and
|
||||
- Four touchkeys.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
@ -395,107 +395,114 @@ NXFLAT Toolchain
|
|||
LEDs
|
||||
====
|
||||
|
||||
The STM32L-Discovery board has four LEDs. Two of these are controlled by
|
||||
logic on the board and are not available for software control:
|
||||
The STM32L-Discovery board has four LEDs. Two of these are controlled by
|
||||
logic on the board and are not available for software control:
|
||||
|
||||
LD1 COM: LD2 default status is red. LD2 turns to green to indicate that
|
||||
communications are in progress between the PC and the ST-LINK/V2.
|
||||
LD2 PWR: Red LED indicates that the board is powered.
|
||||
LD1 COM: LD2 default status is red. LD2 turns to green to indicate
|
||||
that communications are in progress between the PC and the
|
||||
ST-LINK/V2.
|
||||
LD2 PWR: Red LED indicates that the board is powered.
|
||||
|
||||
And two LEDs can be controlled by software:
|
||||
And two LEDs can be controlled by software:
|
||||
|
||||
User LD3: Green LED is a user LED connected to the I/O PB7 of the STM32L152
|
||||
MCU.
|
||||
User LD4: Blue LED is a user LED connected to the I/O PB6 of the STM32L152
|
||||
MCU.
|
||||
User LD3: Green LED is a user LED connected to the I/O PB7 of the
|
||||
STM32L152 MCU.
|
||||
User LD4: Blue LED is a user LED connected to the I/O PB6 of the
|
||||
STM32L152 MCU.
|
||||
|
||||
These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
|
||||
defined. In that case, the usage by the board port is defined in
|
||||
include/board.h and src/up_leds.c. The LEDs are used to encode OS-related
|
||||
events as follows:
|
||||
These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
|
||||
defined. In that case, the usage by the board port is defined in
|
||||
include/board.h and src/up_leds.c. The LEDs are used to encode OS-related
|
||||
events as follows:
|
||||
|
||||
SYMBOL Meaning LED state
|
||||
LED3 LED4
|
||||
------------------- ----------------------- -------- --------
|
||||
LED_STARTED NuttX has been started OFF OFF
|
||||
LED_HEAPALLOCATE Heap has been allocated OFF OFF
|
||||
LED_IRQSENABLED Interrupts enabled OFF OFF
|
||||
LED_STACKCREATED Idle stack created ON OFF
|
||||
LED_INIRQ In an interrupt No change
|
||||
LED_SIGNAL In a signal handler No change
|
||||
LED_ASSERTION An assertion failed No change
|
||||
LED_PANIC The system has crashed OFF Blinking
|
||||
LED_IDLE STM32 is is sleep mode Not used
|
||||
SYMBOL Meaning LED state
|
||||
LED3 LED4
|
||||
------------------- ----------------------- -------- --------
|
||||
LED_STARTED NuttX has been started OFF OFF
|
||||
LED_HEAPALLOCATE Heap has been allocated OFF OFF
|
||||
LED_IRQSENABLED Interrupts enabled OFF OFF
|
||||
LED_STACKCREATED Idle stack created ON OFF
|
||||
LED_INIRQ In an interrupt No change
|
||||
LED_SIGNAL In a signal handler No change
|
||||
LED_ASSERTION An assertion failed No change
|
||||
LED_PANIC The system has crashed OFF Blinking
|
||||
LED_IDLE STM32 is is sleep mode Not used
|
||||
|
||||
Serial Console
|
||||
==============
|
||||
|
||||
The STM32L-Discovery has no on-board RS-232 driver. Further, there are no
|
||||
USART pins that do not conflict with the on board resources, in particular,
|
||||
the LCD: Most USART pins are available if the LCD is enabled; USART2 may be
|
||||
used if either the LCD or the on-board LEDs are disabled.
|
||||
The STM32L-Discovery has no on-board RS-232 driver. Further, there are no
|
||||
USART pins that do not conflict with the on board resources, in particular,
|
||||
the LCD: Most USART pins are available if the LCD is enabled; USART2 may
|
||||
be used if either the LCD or the on-board LEDs are disabled.
|
||||
|
||||
PA9 USART1_TX LCD glass COM1 P2, pin 22
|
||||
PA10 USART1_RX LCD glass COM2 P2, pin 21
|
||||
PB6 USART1_TX LED Blue P2, pin 8
|
||||
PB7 USART1_RX LED Green P2, pin 7
|
||||
PA9 USART1_TX LCD glass COM1 P2, pin 22
|
||||
PA10 USART1_RX LCD glass COM2 P2, pin 21
|
||||
PB6 USART1_TX LED Blue P2, pin 8
|
||||
PB7 USART1_RX LED Green P2, pin 7
|
||||
|
||||
PA2 USART2_TX LCD SEG1 P1, pin 17
|
||||
PA3 USART2_RX LCD SEG2 P1, pin 18
|
||||
PA2 USART2_TX LCD SEG1 P1, pin 17
|
||||
PA3 USART2_RX LCD SEG2 P1, pin 18
|
||||
|
||||
PB10 USART3_TX LCD SEG6 P1, pin 22
|
||||
PB11 USART3_RX LCD SEG7 P1, pin 23
|
||||
PC10 USART3_TX LCD SEG22 P2, pin 15
|
||||
PC11 USART3_RX LCD SEG23 P2, pin 14
|
||||
PB10 USART3_TX LCD SEG6 P1, pin 22
|
||||
PB11 USART3_RX LCD SEG7 P1, pin 23
|
||||
PC10 USART3_TX LCD SEG22 P2, pin 15
|
||||
PC11 USART3_RX LCD SEG23 P2, pin 14
|
||||
|
||||
GND and (external) 5V are available on both P1 and P2. Note: These signals
|
||||
may be at lower voltage levels and, hence, may not properly drive an external
|
||||
RS-232 transceiver.
|
||||
NOTES:
|
||||
|
||||
NOTE: The crystal X3 is not installed on the STM32L3-Discovery. As a
|
||||
result, the HSE clock is not availabled and the less acurate HSI must be
|
||||
used. This may limit the accuracy of the computed baud, especially at
|
||||
higher BAUD. The HSI is supposedly calibrated in the factory to within 1%
|
||||
at room temperatures so perhaps this not a issue.
|
||||
- GND and (external) 5V are available on both P1 and P2. Note: These
|
||||
signals may be at lower voltage levels and, hence, may not properly
|
||||
drive an external RS-232 transceiver.
|
||||
|
||||
I have had no problems using the USART1 with PA9 and PA10 with a 3.3-5V
|
||||
RS-232 transceiver module at 57600 baud. I have not tried higher baud rates.
|
||||
- The crystal X3 is not installed on the STM32L3-Discovery. As a result,
|
||||
the HSE clock is not availabled and the less acurate HSI must be used.
|
||||
This may limit the accuracy of the computed baud, especially at higher
|
||||
BAUD. The HSI is supposedly calibrated in the factory to within 1% at
|
||||
room temperatures so perhaps this not a issue.
|
||||
|
||||
There is no support for a USB serial connector on the STM32L-Discovery board.
|
||||
The STM32L152 does support USB, but the USB pins are "free I/O" on the board
|
||||
and no USB connector is provided. So the use of a USB console is not option.
|
||||
If you need console output, you will need to disable either LCD (and use any
|
||||
USART) or the LEDs (and use USART1)
|
||||
- According to the STM32L-Discovery User Manual, the LCD should be removed
|
||||
from its socket if you use any of the LCD pins for any other purpose.
|
||||
|
||||
I have had no problems using the USART1 with PA9 and PA10 with a 3.3-5V
|
||||
RS-232 transceiver module at 57600 baud. I have not tried higher baud
|
||||
rates.
|
||||
|
||||
- There is no support for a USB serial connector on the STM32L-Discovery
|
||||
board. The STM32L152 does support USB, but the USB pins are "free I/O"
|
||||
on the board and no USB connector is provided. So the use of a USB
|
||||
console is not option. If you need console output, you will need to
|
||||
disable either LCD (and use any USART) or the LEDs (and use USART1)
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
STM32 ST-LINK Utility
|
||||
---------------------
|
||||
For simply writing to FLASH, I use the STM32 ST-LINK Utility. At least
|
||||
version 2.4.0 is required (older versions do not recognize the STM32 F3
|
||||
device). This utility is available from free from the STMicro website.
|
||||
STM32 ST-LINK Utility
|
||||
---------------------
|
||||
For simply writing to FLASH, I use the STM32 ST-LINK Utility. At least
|
||||
version 2.4.0 is required (older versions do not recognize the STM32 F3
|
||||
device). This utility is available from free from the STMicro website.
|
||||
|
||||
Debugging
|
||||
---------
|
||||
If you are going to use a debugger, you should make sure that the following
|
||||
settings are selection in your configuration file:
|
||||
Debugging
|
||||
---------
|
||||
If you are going to use a debugger, you should make sure that the following
|
||||
settings are selection in your configuration file:
|
||||
|
||||
CONFIG_DEBUG_SYMBOLS=y : Enable debug symbols in the build
|
||||
CONFIG_ARMV7M_USEBASEPRI=y : Use the BASEPRI register to disable interrupts
|
||||
CONFIG_DEBUG_SYMBOLS=y : Enable debug symbols in the build
|
||||
CONFIG_ARMV7M_USEBASEPRI=y : Use the BASEPRI register to disable interrupts
|
||||
|
||||
OpenOCD
|
||||
-------
|
||||
I am told that OpenOCD will work with the ST-Link, but I have never tried
|
||||
it.
|
||||
OpenOCD
|
||||
-------
|
||||
I am told that OpenOCD will work with the ST-Link, but I have never tried
|
||||
it.
|
||||
|
||||
https://github.com/texane/stlink
|
||||
--------------------------------
|
||||
This is an open source server for the ST-Link that I have never used.
|
||||
https://github.com/texane/stlink
|
||||
--------------------------------
|
||||
This is an open source server for the ST-Link that I have never used.
|
||||
|
||||
Atollic GDB Server
|
||||
------------------
|
||||
You can use the Atollic IDE, but I have never done that either.
|
||||
Atollic GDB Server
|
||||
------------------
|
||||
You can use the Atollic IDE, but I have never done that either.
|
||||
|
||||
STM32L-Discovery-specific Configuration Options
|
||||
===============================================
|
||||
|
@ -693,20 +700,20 @@ STM32L-Discovery-specific Configuration Options
|
|||
Configurations
|
||||
==============
|
||||
|
||||
Each STM32L-Discovery configuration is maintained in a sub-directory and
|
||||
can be selected as follow:
|
||||
Each STM32L-Discovery configuration is maintained in a sub-directory and
|
||||
can be selected as follow:
|
||||
|
||||
cd tools
|
||||
./configure.sh STM32L-Discovery/<subdir>
|
||||
cd -
|
||||
. ./setenv.sh
|
||||
|
||||
If this is a Windows native build, then configure.bat should be used
|
||||
instead of configure.sh:
|
||||
If this is a Windows native build, then configure.bat should be used
|
||||
instead of configure.sh:
|
||||
|
||||
configure.bat STM32L-Discovery\<subdir>
|
||||
|
||||
Where <subdir> is one of the following:
|
||||
Where <subdir> is one of the following:
|
||||
|
||||
nsh:
|
||||
---
|
||||
|
@ -739,3 +746,9 @@ Where <subdir> is one of the following:
|
|||
CONFIG_HOST_WINDOWS=y : Builds under Windows
|
||||
CONFIG_WINDOWS_CYGWIN=y : Using Cygwin
|
||||
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows
|
||||
|
||||
5. To enable SLCD support:
|
||||
|
||||
CONFIG_ARCH_LEDS=y : Disable LED support
|
||||
CONFIG_LIB_SLCDCODEC=y : Enable the SLCD CODEC
|
||||
CONFIG_STM32_LCD=y : Enable the SLCD
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
############################################################################
|
||||
# configs/stm32f3discovery/nsh/Make.defs
|
||||
# configs/stm32l1discovery/nsh/Make.defs
|
||||
#
|
||||
# Copyright (C) 2013 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/bash
|
||||
# configs/stm32f3discovery/nsh/setenv.sh
|
||||
# configs/stm32l1discovery/nsh/setenv.sh
|
||||
#
|
||||
# Copyright (C) 2013 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -186,38 +186,38 @@
|
|||
* PC11 LCD_SEG41 LCD SEG23
|
||||
*/
|
||||
|
||||
#define BOARD_LCD_COM0 GPIO_LCD_COM0 /* PA8 */
|
||||
#define BOARD_LCD_COM1 GPIO_LCD_COM1 /* PA9 */
|
||||
#define BOARD_LCD_COM2 GPIO_LCD_COM2 /* PA10 */
|
||||
#define BOARD_LCD_COM3 GPIO_LCD_COM3 /* PB9 */
|
||||
#define BOARD_LCD_SEG0 GPIO_LCD_SEG0 /* PA1 */
|
||||
#define BOARD_LCD_SEG1 GPIO_LCD_SEG1 /* PA2 */
|
||||
#define BOARD_LCD_SEG2 GPIO_LCD_SEG2 /* PA3 */
|
||||
#define BOARD_LCD_SEG3 GPIO_LCD_SEG7 /* PB3 */
|
||||
#define BOARD_LCD_SEG4 GPIO_LCD_SEG8 /* PB4 */
|
||||
#define BOARD_LCD_SEG5 GPIO_LCD_SEG9 /* PB5 */
|
||||
#define BOARD_LCD_SEG6 GPIO_LCD_SEG10 /* PB10 */
|
||||
#define BOARD_LCD_SEG7 GPIO_LCD_SEG11 /* PB11 */
|
||||
#define BOARD_LCD_SEG8 GPIO_LCD_SEG12 /* PB12 */
|
||||
#define BOARD_LCD_SEG9 GPIO_LCD_SEG13 /* PB13 */
|
||||
#define BOARD_LCD_SEG10 GPIO_LCD_SEG14 /* PB14 */
|
||||
#define BOARD_LCD_SEG11 GPIO_LCD_SEG15 /* PB15 */
|
||||
#define BOARD_LCD_SEG12 GPIO_LCD_SEG17 /* PA15 */
|
||||
#define BOARD_LCD_SEG13 GPIO_LCD_SEG16 /* PB8 */
|
||||
#define BOARD_LCD_SEG14 GPIO_LCD_SEG18 /* PC0 */
|
||||
#define BOARD_LCD_SEG15 GPIO_LCD_SEG19 /* PC1 */
|
||||
#define BOARD_LCD_SEG16 GPIO_LCD_SEG20 /* PC2 */
|
||||
#define BOARD_LCD_SEG17 GPIO_LCD_SEG21 /* PC3 */
|
||||
#define BOARD_LCD_SEG18 GPIO_LCD_SEG24 /* PC6 */
|
||||
#define BOARD_LCD_SEG19 GPIO_LCD_SEG25 /* PC7 */
|
||||
#define BOARD_LCD_SEG20 GPIO_LCD_SEG26 /* PC8 */
|
||||
#define BOARD_LCD_SEG21 GPIO_LCD_SEG27 /* PC9 */
|
||||
#define BOARD_LCD_SEG22 GPIO_LCD_SEG40 /* PC10 */
|
||||
#define BOARD_LCD_SEG23 GPIO_LCD_SEG41 /* PC11 */
|
||||
#define BOARD_SLCD_COM0 GPIO_LCD_COM0 /* PA8 */
|
||||
#define BOARD_SLCD_COM1 GPIO_LCD_COM1 /* PA9 */
|
||||
#define BOARD_SLCD_COM2 GPIO_LCD_COM2 /* PA10 */
|
||||
#define BOARD_SLCD_COM3 GPIO_LCD_COM3 /* PB9 */
|
||||
#define BOARD_SLCD_SEG0 GPIO_LCD_SEG0 /* PA1 */
|
||||
#define BOARD_SLCD_SEG1 GPIO_LCD_SEG1 /* PA2 */
|
||||
#define BOARD_SLCD_SEG2 GPIO_LCD_SEG2 /* PA3 */
|
||||
#define BOARD_SLCD_SEG3 GPIO_LCD_SEG7 /* PB3 */
|
||||
#define BOARD_SLCD_SEG4 GPIO_LCD_SEG8 /* PB4 */
|
||||
#define BOARD_SLCD_SEG5 GPIO_LCD_SEG9 /* PB5 */
|
||||
#define BOARD_SLCD_SEG6 GPIO_LCD_SEG10 /* PB10 */
|
||||
#define BOARD_SLCD_SEG7 GPIO_LCD_SEG11 /* PB11 */
|
||||
#define BOARD_SLCD_SEG8 GPIO_LCD_SEG12 /* PB12 */
|
||||
#define BOARD_SLCD_SEG9 GPIO_LCD_SEG13 /* PB13 */
|
||||
#define BOARD_SLCD_SEG10 GPIO_LCD_SEG14 /* PB14 */
|
||||
#define BOARD_SLCD_SEG11 GPIO_LCD_SEG15 /* PB15 */
|
||||
#define BOARD_SLCD_SEG12 GPIO_LCD_SEG17 /* PA15 */
|
||||
#define BOARD_SLCD_SEG13 GPIO_LCD_SEG16 /* PB8 */
|
||||
#define BOARD_SLCD_SEG14 GPIO_LCD_SEG18 /* PC0 */
|
||||
#define BOARD_SLCD_SEG15 GPIO_LCD_SEG19 /* PC1 */
|
||||
#define BOARD_SLCD_SEG16 GPIO_LCD_SEG20 /* PC2 */
|
||||
#define BOARD_SLCD_SEG17 GPIO_LCD_SEG21 /* PC3 */
|
||||
#define BOARD_SLCD_SEG18 GPIO_LCD_SEG24 /* PC6 */
|
||||
#define BOARD_SLCD_SEG19 GPIO_LCD_SEG25 /* PC7 */
|
||||
#define BOARD_SLCD_SEG20 GPIO_LCD_SEG26 /* PC8 */
|
||||
#define BOARD_SLCD_SEG21 GPIO_LCD_SEG27 /* PC9 */
|
||||
#define BOARD_SLCD_SEG22 GPIO_LCD_SEG40 /* PC10 */
|
||||
#define BOARD_SLCD_SEG23 GPIO_LCD_SEG41 /* PC11 */
|
||||
|
||||
#define BOARD LCD_NCOM 4
|
||||
#define BOARD LCD_NSEG 24
|
||||
#define BOARD_LCD_NGPIOS 28
|
||||
#define BOARD_SLCD_NCOM 4
|
||||
#define BOARD_SLCD_NSEG 24
|
||||
#define BOARD_SLCD_NGPIOS 28
|
||||
|
||||
/****************************************************************************************************
|
||||
* Public Types
|
||||
|
|
|
@ -150,8 +150,8 @@
|
|||
#define ASCII_LBRACKET 0x5b /* Left bracket ([) */
|
||||
#define ASCII_BACKSLASH 0x5c /* Back slash (\) */
|
||||
#define ASCII_RBRACKET 0x5d /* Right bracket (]) */
|
||||
#define ASCII_CARET 0x5c /* Caret (^) */
|
||||
#define ASCII_CIRCUMFLEX 0x5c /* Circumflex (^) */
|
||||
#define ASCII_CARET 0x5e /* Caret (^) */
|
||||
#define ASCII_CIRCUMFLEX 0x5e /* Circumflex (^) */
|
||||
#define ASCII_UNDERSCORE 0x5f /* Underscore (_) */
|
||||
|
||||
#define ASCII_RSQUOT 0x60 /* Closing single quote */
|
||||
|
|
|
@ -66,8 +66,8 @@ enum slcdcode_e
|
|||
* ASCII BKSP and DEL values.
|
||||
*/
|
||||
|
||||
SLCDCODE_FWDDEL, /* DELete (forward delete) N characters moving cursor */
|
||||
SLCDCODE_BACKDEL, /* Backspace (backward delete) N characters */
|
||||
SLCDCODE_FWDDEL, /* DELete (forward delete) N characters moving text */
|
||||
SLCDCODE_BACKDEL, /* Backspace (backward delete) N characters moving cursor */
|
||||
SLCDCODE_ERASE, /* Erase N characters from the cursor position */
|
||||
SLCDCODE_ERASEEOL, /* Erase from the cursor position to the end of line */
|
||||
SLCDCODE_CLEAR, /* Home the cursor and erase the entire display */
|
||||
|
|
|
@ -330,19 +330,21 @@ enum slcdret_e slcd_decode(FAR struct lib_instream_s *stream,
|
|||
return slcd_reget(state, pch, parg);
|
||||
}
|
||||
|
||||
/* Put the character in the reget buffer because there is on more way
|
||||
* that we can fail.
|
||||
*/
|
||||
|
||||
state->buf[NDX_CODE5] = (uint8_t)ch;
|
||||
state->nch = NCH_CODE5;
|
||||
|
||||
/* Verify the special CLCD action code */
|
||||
|
||||
if (ch < (int)FIRST_SLCDCODE || ch > (int)LAST_SLCDCODE)
|
||||
{
|
||||
/* Not a special command code.. put the character in the reget
|
||||
* buffer.
|
||||
/* Not a special command code. Return the ESC now and the rest
|
||||
* of the characters later.
|
||||
*/
|
||||
|
||||
state->buf[NDX_CODE5] = (uint8_t)ch;
|
||||
state->nch = NCH_CODE5;
|
||||
|
||||
/* Return the ESC now and the next two characters later. */
|
||||
|
||||
return slcd_reget(state, pch, parg);
|
||||
}
|
||||
|
||||
|
@ -351,6 +353,15 @@ enum slcdret_e slcd_decode(FAR struct lib_instream_s *stream,
|
|||
code = CODE_RETURN(ch);
|
||||
count = slcd_nibble(state->buf[NDX_COUNTH]) << 4;
|
||||
slcd_nibble(state->buf[NDX_COUNTL]);
|
||||
|
||||
/* All count values must be greater than 0 or something is wrong */
|
||||
|
||||
if (count < 1)
|
||||
{
|
||||
/* Return the ESC now and the rest of the characters later. */
|
||||
|
||||
return slcd_reget(state, pch, parg);
|
||||
}
|
||||
}
|
||||
|
||||
/* We have successfully parsed the the entire escape sequence. Return the
|
||||
|
|
Loading…
Reference in New Issue