oled stuff
This commit is contained in:
parent
bab3d71bf7
commit
5605a3d1d5
@ -80,10 +80,10 @@ void MX_SPI3_Init(void)
|
||||
hspi3.Init.Mode = SPI_MODE_MASTER;
|
||||
hspi3.Init.Direction = SPI_DIRECTION_2LINES;
|
||||
hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||
hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
|
||||
hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
|
||||
hspi3.Init.CLKPolarity = SPI_POLARITY_HIGH;
|
||||
hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
|
||||
hspi3.Init.NSS = SPI_NSS_SOFT;
|
||||
hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
|
||||
hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
|
||||
hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||
hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||
hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||
|
100
cube/Makefile
100
cube/Makefile
@ -1,4 +1,4 @@
|
||||
# Processed by ../tools/insertMyCode.sh
|
||||
# Processed by ../tools/insertMyCode.sh
|
||||
##########################################################################################################################
|
||||
# File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Thu Nov 19 18:53:40 CET 2020]
|
||||
##########################################################################################################################
|
||||
@ -36,37 +36,37 @@ BUILD_DIR = build
|
||||
# source
|
||||
######################################
|
||||
# C sources
|
||||
C_SOURCES = \
|
||||
User/Src/cmdHandler.c User/Src/eeprom.c User/Src/frontend.c User/Src/logger.c User/Src/loopCtrl.c User/Src/main2.c User/Src/mbusComm.c User/Src/mbusParserExt.c User/Src/mqttComm.c User/Src/ports.c User/Src/ringbuffer.c User/Src/show.c User/Src/utils.c User/Src/wizHelper.c hottislib/PontCoopScheduler.c \
|
||||
libmbus/mbus/mbus-protocol.c \
|
||||
Core/Src/main.c \
|
||||
Core/Src/gpio.c \
|
||||
Core/Src/adc.c \
|
||||
Core/Src/spi.c \
|
||||
Core/Src/usart.c \
|
||||
Core/Src/stm32f1xx_it.c \
|
||||
Core/Src/stm32f1xx_hal_msp.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c \
|
||||
C_SOURCES = \
|
||||
User/Src/oled.c User/Src/cmdHandler.c User/Src/eeprom.c User/Src/frontend.c User/Src/logger.c User/Src/loopCtrl.c User/Src/main2.c User/Src/mbusComm.c User/Src/mbusParserExt.c User/Src/mqttComm.c User/Src/ports.c User/Src/ringbuffer.c User/Src/show.c User/Src/utils.c User/Src/wizHelper.c hottislib/PontCoopScheduler.c \
|
||||
libmbus/mbus/mbus-protocol.c \
|
||||
Core/Src/main.c \
|
||||
Core/Src/gpio.c \
|
||||
Core/Src/adc.c \
|
||||
Core/Src/spi.c \
|
||||
Core/Src/usart.c \
|
||||
Core/Src/stm32f1xx_it.c \
|
||||
Core/Src/stm32f1xx_hal_msp.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
|
||||
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c \
|
||||
Core/Src/system_stm32f1xx.c
|
||||
|
||||
# ASM sources
|
||||
ASM_SOURCES = \
|
||||
ASM_SOURCES = \
|
||||
startup_stm32f103xe.s
|
||||
|
||||
|
||||
@ -110,8 +110,8 @@ MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)
|
||||
AS_DEFS =
|
||||
|
||||
# C defines
|
||||
C_DEFS = \
|
||||
-DUSE_HAL_DRIVER \
|
||||
C_DEFS = \
|
||||
-DUSE_HAL_DRIVER \
|
||||
-DSTM32F103xE
|
||||
|
||||
|
||||
@ -119,18 +119,18 @@ C_DEFS = \
|
||||
AS_INCLUDES =
|
||||
|
||||
# C includes
|
||||
C_INCLUDES = \
|
||||
-Ihottislib \
|
||||
-Ipubsubc/src \
|
||||
-Ilibmbus \
|
||||
-IUser/Inc \
|
||||
-IioLibrary_Driver/Internet/DHCP \
|
||||
-IioLibrary_Driver/Ethernet \
|
||||
-ICore/Inc \
|
||||
-IDrivers/STM32F1xx_HAL_Driver/Inc \
|
||||
-IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy \
|
||||
-IDrivers/CMSIS/Device/ST/STM32F1xx/Include \
|
||||
-IDrivers/CMSIS/Include \
|
||||
C_INCLUDES = \
|
||||
-Ihottislib \
|
||||
-Ipubsubc/src \
|
||||
-Ilibmbus \
|
||||
-IUser/Inc \
|
||||
-IioLibrary_Driver/Internet/DHCP \
|
||||
-IioLibrary_Driver/Ethernet \
|
||||
-ICore/Inc \
|
||||
-IDrivers/STM32F1xx_HAL_Driver/Inc \
|
||||
-IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy \
|
||||
-IDrivers/CMSIS/Device/ST/STM32F1xx/Include \
|
||||
-IDrivers/CMSIS/Include \
|
||||
-IDrivers/CMSIS/Include
|
||||
|
||||
|
||||
@ -169,17 +169,17 @@ all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET
|
||||
# list of objects
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,w5500.a pubsubc.a)
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,w5500.a pubsubc.a)
|
||||
# list of ASM program objects
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
||||
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
||||
|
||||
$(BUILD_DIR)/w5500.a:
|
||||
(cd ioLibrary_Driver && $(MAKE) && cp w5500.a ../$(BUILD_DIR) && cd ..)
|
||||
|
||||
$(BUILD_DIR)/pubsubc.a:
|
||||
(cd pubsubc && $(MAKE) && cp pubsubc.a ../$(BUILD_DIR) && cd ..)
|
||||
|
||||
$(BUILD_DIR)/w5500.a:
|
||||
(cd ioLibrary_Driver && $(MAKE) && cp w5500.a ../$(BUILD_DIR) && cd ..)
|
||||
|
||||
$(BUILD_DIR)/pubsubc.a:
|
||||
(cd pubsubc && $(MAKE) && cp pubsubc.a ../$(BUILD_DIR) && cd ..)
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
||||
|
||||
|
226
cube/User/Inc/oled-fonts.h
Normal file
226
cube/User/Inc/oled-fonts.h
Normal file
@ -0,0 +1,226 @@
|
||||
/*
|
||||
* oled-fonts.h
|
||||
*
|
||||
* Created on: May 29, 2017
|
||||
* Author: wn
|
||||
*/
|
||||
|
||||
#ifndef OLED_FONTS_H_
|
||||
#define OLED_FONTS_H_
|
||||
|
||||
|
||||
/*
|
||||
* Code found at http://www.instructables.com/id/How-to-use-OLED-display-arduino-module/
|
||||
* Thank you very much!
|
||||
* Adapted from Arduino to STM32 HAL by wollud1969
|
||||
*/
|
||||
|
||||
|
||||
|
||||
const unsigned char F6x8[][6] =
|
||||
{
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
|
||||
{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
|
||||
{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
|
||||
{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
|
||||
{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $
|
||||
{ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // %
|
||||
{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
|
||||
{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // '
|
||||
{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (
|
||||
{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )
|
||||
{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *
|
||||
{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +
|
||||
{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // ,
|
||||
{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // -
|
||||
{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // .
|
||||
{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // /
|
||||
{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0
|
||||
{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1
|
||||
{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
|
||||
{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3
|
||||
{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4
|
||||
{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
|
||||
{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6
|
||||
{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
|
||||
{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
|
||||
{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9
|
||||
{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
|
||||
{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
|
||||
{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
|
||||
{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
|
||||
{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
|
||||
{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?
|
||||
{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @
|
||||
{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A
|
||||
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B
|
||||
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C
|
||||
{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D
|
||||
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E
|
||||
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F
|
||||
{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G
|
||||
{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H
|
||||
{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I
|
||||
{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J
|
||||
{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K
|
||||
{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L
|
||||
{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M
|
||||
{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N
|
||||
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O
|
||||
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P
|
||||
{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q
|
||||
{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R
|
||||
{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
|
||||
{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T
|
||||
{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U
|
||||
{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V
|
||||
{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W
|
||||
{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
|
||||
{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
|
||||
{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
|
||||
{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [ 91
|
||||
{ 0x00, 0x02, 0x04 ,0x08, 0x10, 0x20 }, // \92
|
||||
{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]
|
||||
{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
|
||||
{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _
|
||||
{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // '
|
||||
{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
|
||||
{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b
|
||||
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
|
||||
{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d
|
||||
{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
|
||||
{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f
|
||||
{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g
|
||||
{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h
|
||||
{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i
|
||||
{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j
|
||||
{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k
|
||||
{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l
|
||||
{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m
|
||||
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n
|
||||
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o
|
||||
{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p
|
||||
{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q
|
||||
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r
|
||||
{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
|
||||
{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t
|
||||
{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u
|
||||
{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v
|
||||
{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w
|
||||
{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
|
||||
{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y
|
||||
{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z
|
||||
{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 } // horiz lines
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const unsigned char F8X16[]=
|
||||
{
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
|
||||
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!1
|
||||
0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"2
|
||||
0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//#3
|
||||
0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$4
|
||||
0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//%5
|
||||
0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//&6
|
||||
0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'7
|
||||
0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//(8
|
||||
0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//)9
|
||||
0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//*10
|
||||
0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+11
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//,12
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//-13
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//.14
|
||||
0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,///15
|
||||
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//016
|
||||
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//117
|
||||
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//218
|
||||
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//319
|
||||
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//420
|
||||
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//521
|
||||
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//622
|
||||
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//723
|
||||
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//824
|
||||
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//925
|
||||
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:26
|
||||
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//;27
|
||||
0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//<28
|
||||
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//=29
|
||||
0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//>30
|
||||
0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//?31
|
||||
0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@32
|
||||
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A33
|
||||
0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B34
|
||||
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C35
|
||||
0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D36
|
||||
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E37
|
||||
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F38
|
||||
0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G39
|
||||
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H40
|
||||
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I41
|
||||
0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J42
|
||||
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K43
|
||||
0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L44
|
||||
0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M45
|
||||
0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N46
|
||||
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O47
|
||||
0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P48
|
||||
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q49
|
||||
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R50
|
||||
0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S51
|
||||
0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T52
|
||||
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U53
|
||||
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V54
|
||||
0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W55
|
||||
0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X56
|
||||
0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y57
|
||||
0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z58
|
||||
0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[59
|
||||
0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\60
|
||||
0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//]61
|
||||
0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^62
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_63
|
||||
0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//`64
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a65
|
||||
0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b66
|
||||
0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c67
|
||||
0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d68
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e69
|
||||
0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f70
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g71
|
||||
0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h72
|
||||
0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i73
|
||||
0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j74
|
||||
0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k75
|
||||
0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l76
|
||||
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m77
|
||||
0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n78
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o79
|
||||
0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p80
|
||||
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q81
|
||||
0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r82
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s83
|
||||
0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t84
|
||||
0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//unsigned char5
|
||||
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v86
|
||||
0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w87
|
||||
0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x88
|
||||
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y89
|
||||
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z90
|
||||
0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{91
|
||||
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//|92
|
||||
0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//}93
|
||||
0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~94
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* OLED_FONTS_H_ */
|
37
cube/User/Inc/oled.h
Normal file
37
cube/User/Inc/oled.h
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* oled.h
|
||||
*
|
||||
* Created on: May 29, 2017
|
||||
* Author: wn
|
||||
*/
|
||||
|
||||
#ifndef OLED_H_
|
||||
#define OLED_H_
|
||||
|
||||
|
||||
/*
|
||||
* Code found at http://www.instructables.com/id/How-to-use-OLED-display-arduino-module/
|
||||
* Thank you very much!
|
||||
* Adapted from Arduino to STM32 HAL by wollud1969
|
||||
*/
|
||||
|
||||
void oledInit(void);
|
||||
|
||||
void oled_CLS(void);
|
||||
void oled_Set_Pos(unsigned char x,unsigned char y);//Set the coordinate
|
||||
void oled_WrDat(unsigned char data); //Write Data
|
||||
void oled_P6x8Char(unsigned char x,unsigned char y,unsigned char ch);
|
||||
void oled_P6x8Str(unsigned char x,unsigned char y,char ch[]);
|
||||
void oled_P8x16Str(unsigned char x,unsigned char y,char ch[]);
|
||||
|
||||
void oled_PrintBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char bmp[]);
|
||||
void oled_Fill(unsigned char dat);
|
||||
//void oled_PrintValueC(unsigned char x, unsigned char y,char data);
|
||||
//void oled_PrintValueI(unsigned char x, unsigned char y, int data);
|
||||
//void oled_PrintValueF(unsigned char x, unsigned char y, float data, unsigned char num);
|
||||
void oled_PrintEdge(void);
|
||||
void oled_Cursor(unsigned char cursor_column, unsigned char cursor_row);
|
||||
void oled_PrintLine(void);
|
||||
|
||||
|
||||
#endif /* OLED_H_ */
|
@ -19,6 +19,7 @@
|
||||
#include <wizHelper.h>
|
||||
#include <mqttComm.h>
|
||||
#include <cmdHandler.h>
|
||||
#include <oled.h>
|
||||
|
||||
|
||||
void my_setup_1() {
|
||||
@ -37,6 +38,10 @@ void my_setup_2() {
|
||||
show(LED_GREEN, BLINK);
|
||||
logMsg("Application starting");
|
||||
|
||||
oledInit();
|
||||
oled_P8x16Str(0, 0, "App starting");
|
||||
|
||||
|
||||
eepromInit();
|
||||
|
||||
wizInit();
|
||||
|
526
cube/User/Src/oled.c
Normal file
526
cube/User/Src/oled.c
Normal file
@ -0,0 +1,526 @@
|
||||
/*
|
||||
* Code found at http://www.instructables.com/id/How-to-use-OLED-display-arduino-module/
|
||||
* Thank you very much!
|
||||
* Adapted from Arduino to STM32 HAL by wollud1969
|
||||
*/
|
||||
|
||||
#include <main.h>
|
||||
#include <spi.h>
|
||||
|
||||
#include <oled.h>
|
||||
#include <oled-fonts.h>
|
||||
#include <stm32f1xx_hal.h>
|
||||
|
||||
|
||||
|
||||
#define HIGH GPIO_PIN_SET
|
||||
#define LOW GPIO_PIN_RESET
|
||||
|
||||
|
||||
// DO: SPI Clk, D1: SPI Data
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static void __LEDPIN_RST(GPIO_PinState v) {
|
||||
HAL_GPIO_WritePin(Display_RES_GPIO_Port, Display_RES_Pin, v);
|
||||
}
|
||||
|
||||
static void __LEDPIN_DC(GPIO_PinState v) {
|
||||
HAL_GPIO_WritePin(Display_DC_GPIO_Port, Display_DC_Pin, v);
|
||||
}
|
||||
|
||||
static void __LEDPIN_CS(GPIO_PinState v) {
|
||||
HAL_GPIO_WritePin(Display_CS_GPIO_Port, Display_CS_Pin, v);
|
||||
}
|
||||
|
||||
void oled_WrDat(unsigned char data)
|
||||
{
|
||||
__LEDPIN_CS(LOW);
|
||||
__LEDPIN_DC(HIGH);
|
||||
|
||||
HAL_SPI_Transmit(&displaySpi, &data, 1, 0);
|
||||
|
||||
__LEDPIN_CS(HIGH);
|
||||
}
|
||||
void oled_WrCmd(unsigned char cmd)
|
||||
{
|
||||
__LEDPIN_CS(LOW);
|
||||
__LEDPIN_DC(LOW);
|
||||
|
||||
HAL_SPI_Transmit(&displaySpi, &cmd, 1, 0);
|
||||
|
||||
__LEDPIN_CS(HIGH);
|
||||
}
|
||||
void oled_Set_Pos(unsigned char x, unsigned char y)
|
||||
{
|
||||
oled_WrCmd(0xb0+y);
|
||||
oled_WrCmd(((x&0xf0)>>4)|0x10);
|
||||
oled_WrCmd((x&0x0f)|0x00);
|
||||
}
|
||||
|
||||
|
||||
void oled_Fill(unsigned char bmp_data)
|
||||
{
|
||||
unsigned char y,x;
|
||||
|
||||
for(y=0;y<8;y++)
|
||||
{
|
||||
oled_WrCmd(0xb0+y);
|
||||
oled_WrCmd(0x00);
|
||||
oled_WrCmd(0x10);
|
||||
for(x=0;x<128;x++)
|
||||
oled_WrDat(bmp_data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void oled_CLS(void)
|
||||
{
|
||||
unsigned char y,x;
|
||||
for(y=0;y<8;y++)
|
||||
{
|
||||
oled_WrCmd(0xb0+y);
|
||||
oled_WrCmd(0x00);
|
||||
oled_WrCmd(0x10);
|
||||
for(x=0;x<128;x++)
|
||||
oled_WrDat(0);
|
||||
}
|
||||
}
|
||||
|
||||
void oled_DLY_ms(unsigned int ms)
|
||||
{
|
||||
uint32_t start = HAL_GetTick();
|
||||
while (HAL_GetTick() < start + ms);
|
||||
}
|
||||
|
||||
void SetStartColumn(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0x00+d%16); // Set Lower Column Start Address for Page Addressing Mode
|
||||
// Default => 0x00
|
||||
oled_WrCmd(0x10+d/16); // Set Higher Column Start Address for Page Addressing Mode
|
||||
// Default => 0x10
|
||||
}
|
||||
|
||||
void SetAddressingMode(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0x20); // Set Memory Addressing Mode
|
||||
oled_WrCmd(d); // Default => 0x02
|
||||
// 0x00 => Horizontal Addressing Mode
|
||||
// 0x01 => Vertical Addressing Mode
|
||||
// 0x02 => Page Addressing Mode
|
||||
}
|
||||
|
||||
void SetColumnAddress(unsigned char a, unsigned char b)
|
||||
{
|
||||
oled_WrCmd(0x21); // Set Column Address
|
||||
oled_WrCmd(a); // Default => 0x00 (Column Start Address)
|
||||
oled_WrCmd(b); // Default => 0x7F (Column End Address)
|
||||
}
|
||||
|
||||
void SetPageAddress(unsigned char a, unsigned char b)
|
||||
{
|
||||
oled_WrCmd(0x22); // Set Page Address
|
||||
oled_WrCmd(a); // Default => 0x00 (Page Start Address)
|
||||
oled_WrCmd(b); // Default => 0x07 (Page End Address)
|
||||
}
|
||||
|
||||
void SetStartLine(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0x40|d); // Set Display Start Line
|
||||
// Default => 0x40 (0x00)
|
||||
}
|
||||
|
||||
void SetContrastControl(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0x81); // Set Contrast Control
|
||||
oled_WrCmd(d); // Default => 0x7F
|
||||
}
|
||||
|
||||
void Set_Charge_Pump(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0x8D); // Set Charge Pump
|
||||
oled_WrCmd(0x10|d); // Default => 0x10
|
||||
// 0x10 (0x00) => Disable Charge Pump
|
||||
// 0x14 (0x04) => Enable Charge Pump
|
||||
}
|
||||
|
||||
void Set_Segment_Remap(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xA0|d); // Set Segment Re-Map
|
||||
// Default => 0xA0
|
||||
// 0xA0 (0x00) => Column Address 0 Mapped to SEG0
|
||||
// 0xA1 (0x01) => Column Address 0 Mapped to SEG127
|
||||
}
|
||||
|
||||
void Set_Entire_Display(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xA4|d); // Set Entire Display On / Off
|
||||
// Default => 0xA4
|
||||
// 0xA4 (0x00) => Normal Display
|
||||
// 0xA5 (0x01) => Entire Display On
|
||||
}
|
||||
|
||||
void Set_Inverse_Display(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xA6|d); // Set Inverse Display On/Off
|
||||
// Default => 0xA6
|
||||
// 0xA6 (0x00) => Normal Display
|
||||
// 0xA7 (0x01) => Inverse Display On
|
||||
}
|
||||
|
||||
void Set_Multiplex_Ratio(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xA8); // Set Multiplex Ratio
|
||||
oled_WrCmd(d); // Default => 0x3F (1/64 Duty)
|
||||
}
|
||||
|
||||
void Set_Display_On_Off(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xAE|d); // Set Display On/Off
|
||||
// Default => 0xAE
|
||||
// 0xAE (0x00) => Display Off
|
||||
// 0xAF (0x01) => Display On
|
||||
}
|
||||
|
||||
void SetStartPage(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xB0|d); // Set Page Start Address for Page Addressing Mode
|
||||
// Default => 0xB0 (0x00)
|
||||
}
|
||||
|
||||
void Set_Common_Remap(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xC0|d); // Set COM Output Scan Direction
|
||||
// Default => 0xC0
|
||||
// 0xC0 (0x00) => Scan from COM0 to 63
|
||||
// 0xC8 (0x08) => Scan from COM63 to 0
|
||||
}
|
||||
|
||||
void Set_Display_Offset(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xD3); // Set Display Offset
|
||||
oled_WrCmd(d); // Default => 0x00
|
||||
}
|
||||
|
||||
void Set_Display_Clock(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xD5); // Set Display Clock Divide Ratio / Oscillator Frequency
|
||||
oled_WrCmd(d); // Default => 0x80
|
||||
// D[3:0] => Display Clock Divider
|
||||
// D[7:4] => Oscillator Frequency
|
||||
}
|
||||
|
||||
void Set_Precharge_Period(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xD9); // Set Pre-Charge Period
|
||||
oled_WrCmd(d); // Default => 0x22 (2 Display Clocks [Phase 2] / 2 Display Clocks [Phase 1])
|
||||
// D[3:0] => Phase 1 Period in 1~15 Display Clocks
|
||||
// D[7:4] => Phase 2 Period in 1~15 Display Clocks
|
||||
}
|
||||
|
||||
void Set_Common_Config(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xDA); // Set COM Pins Hardware Configuration
|
||||
oled_WrCmd(0x02|d); // Default => 0x12 (0x10)
|
||||
// Alternative COM Pin Configuration
|
||||
// Disable COM Left/Right Re-Map
|
||||
}
|
||||
|
||||
void Set_VCOMH(unsigned char d)
|
||||
{
|
||||
oled_WrCmd(0xDB); // Set VCOMH Deselect Level
|
||||
oled_WrCmd(d); // Default => 0x20 (0.77*VCC)
|
||||
}
|
||||
|
||||
void Set_NOP(void)
|
||||
{
|
||||
oled_WrCmd(0xE3); // Command for No Operation
|
||||
}
|
||||
|
||||
void oledInit(void)
|
||||
{
|
||||
// LEDPIN_Init();
|
||||
// LED_PORT=0X0F;
|
||||
//LED_SCLH;;;
|
||||
//LED_RSTL;;;
|
||||
//digitalWrite(SCL_PIN,HIGH);;;
|
||||
__LEDPIN_RST(LOW);
|
||||
// for(i=0;i<100;i++)asm("nop");
|
||||
oled_DLY_ms(50);
|
||||
//LED_RSTH;;;
|
||||
__LEDPIN_RST(HIGH);
|
||||
|
||||
Set_Display_On_Off(0x00); // Display Off (0x00/0x01)
|
||||
Set_Display_Clock(0x80); // Set Clock as 100 Frames/Sec
|
||||
Set_Multiplex_Ratio(0x3F); // 1/64 Duty (0x0F~0x3F)
|
||||
Set_Display_Offset(0x00); // Shift Mapping RAM Counter (0x00~0x3F)
|
||||
SetStartLine(0x00); // Set Mapping RAM Display Start Line (0x00~0x3F)
|
||||
Set_Charge_Pump(0x04); // Enable Embedded DC/DC Converter (0x00/0x04)
|
||||
SetAddressingMode(0x02); // Set Page Addressing Mode (0x00/0x01/0x02)
|
||||
Set_Segment_Remap(0x01); // Set SEG/Column Mapping
|
||||
Set_Common_Remap(0x08); // Set COM/Row Scan Direction
|
||||
Set_Common_Config(0x10); // Set Sequential Configuration (0x00/0x10)
|
||||
SetContrastControl(0xCF); // Set SEG Output Current
|
||||
Set_Precharge_Period(0xF1); // Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
|
||||
Set_VCOMH(0x40); // Set VCOM Deselect Level
|
||||
Set_Entire_Display(0x00); // Disable Entire Display On (0x00/0x01)
|
||||
Set_Inverse_Display(0x00); // Disable Inverse Display On (0x00/0x01)
|
||||
Set_Display_On_Off(0x01); // Display On (0x00/0x01)
|
||||
oled_Fill(0x00); //clear all
|
||||
oled_Set_Pos(0,0);
|
||||
}
|
||||
|
||||
|
||||
void oled_P6x8Char(unsigned char x,unsigned char y,unsigned char ch)
|
||||
{
|
||||
unsigned char c=0,i=0;
|
||||
|
||||
c =ch-32;
|
||||
if(x>122)
|
||||
{
|
||||
x=0;
|
||||
y++;
|
||||
}
|
||||
oled_Set_Pos(x,y);
|
||||
for(i=0;i<6;i++)
|
||||
{
|
||||
oled_WrDat(F6x8[c][i]);
|
||||
}
|
||||
}
|
||||
|
||||
void oled_P6x8Str(unsigned char x,unsigned char y,char ch[])
|
||||
{
|
||||
unsigned char c=0,i=0,j=0;
|
||||
while (ch[j]!='\0')
|
||||
{
|
||||
c =ch[j]-32;
|
||||
if(x>126)
|
||||
{
|
||||
x=0;
|
||||
y++;
|
||||
}
|
||||
oled_Set_Pos(x,y);
|
||||
for(i=0;i<6;i++)
|
||||
{
|
||||
oled_WrDat(F6x8[c][i]);
|
||||
}
|
||||
x+=6;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
void oled_P8x16Str(unsigned char x,unsigned char y,char ch[])
|
||||
{
|
||||
unsigned char c=0,i=0,j=0;
|
||||
while (ch[j]!='\0')
|
||||
{
|
||||
c =ch[j]-32;
|
||||
if(x>120)
|
||||
{
|
||||
x=0;
|
||||
y++;
|
||||
}
|
||||
oled_Set_Pos(x,y);
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
oled_WrDat(F8X16[(c<<4)+i]);
|
||||
}
|
||||
oled_Set_Pos(x,y+1);
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
oled_WrDat(F8X16[(c<<4)+i+8]);
|
||||
}
|
||||
x+=8;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void oled_PrintBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char bmp[])
|
||||
{
|
||||
int ii=0;
|
||||
unsigned char x,y;
|
||||
for(y=y0;y<=y1;y++)
|
||||
{
|
||||
oled_Set_Pos(x0,y);
|
||||
for(x=x0;x<x1;x++)
|
||||
{
|
||||
oled_WrDat(bmp[ii++]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//void oled_PrintValueC(unsigned char x, unsigned char y, char data)
|
||||
//{
|
||||
// unsigned char i,j,k;
|
||||
// if(data < 0)
|
||||
// {
|
||||
// oled_P6x8Char(x,y,'-');
|
||||
// data = - data;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// oled_P6x8Char(x,y,'+');
|
||||
// }
|
||||
// i = data/100;
|
||||
// j = (data%100)/10;
|
||||
// k = data%10;
|
||||
// oled_P6x8Char(x+6,y,i+48);
|
||||
// oled_P6x8Char(x+12,y,j+48);
|
||||
// oled_P6x8Char(x+18,y,k+48);
|
||||
//}
|
||||
//
|
||||
//
|
||||
//void oled_PrintValueI(unsigned char x, unsigned char y, int data)
|
||||
//{
|
||||
// unsigned char i,j,k,l,m;
|
||||
// if(data < 0)
|
||||
// {
|
||||
// oled_P6x8Char(x,y,'-');
|
||||
// data = - data;
|
||||
// }
|
||||
//// else
|
||||
//// {
|
||||
//// oled_P6x8Char(x,y,'+');
|
||||
//// }
|
||||
//
|
||||
// l = data/10000;
|
||||
// m= (data%10000)/1000;
|
||||
// i = (data%1000)/100;
|
||||
// j = (data%100)/10;
|
||||
// k = data%10;
|
||||
//
|
||||
// unsigned char c;
|
||||
// c = (l == 0) ? ' ' : (l + 48); oled_P6x8Char(x+6,y,c);
|
||||
// c = (m == 0 && l == 0) ? ' ' : (m + 48); oled_P6x8Char(x+12,y,c);
|
||||
// c = (i == 0 && m == 0 && l == 0) ? ' ' : (i + 48); oled_P6x8Char(x+18,y,c);
|
||||
// c = (j == 0 && i == 0 && m == 0 && l == 0) ? ' ' : (j + 48); oled_P6x8Char(x+24,y,c);
|
||||
// oled_P6x8Char(x+30,y,k+48);
|
||||
//}
|
||||
//
|
||||
//void oled_PrintValueFP(unsigned char x, unsigned char y, unsigned int data, unsigned char num)
|
||||
//{
|
||||
// unsigned char m,i,j,k;
|
||||
// oled_P6x8Char(x, y, '.');
|
||||
// m= data/1000;
|
||||
// i = (data%1000)/100;
|
||||
// j = (data%100)/10;
|
||||
// k = data%10;
|
||||
// switch(num)
|
||||
// {
|
||||
// case 1: LED_P6x8Char(x+6,y,k+48);
|
||||
// break;
|
||||
// case 2: LED_P6x8Char(x+6,y,j+48);
|
||||
// oled_P6x8Char(x+12,y,k+48);
|
||||
// break;
|
||||
// case 3: LED_P6x8Char(x+6,y,i+48);
|
||||
// oled_P6x8Char(x+12,y,j+48);
|
||||
// oled_P6x8Char(x+18,y,k+48);
|
||||
// break;
|
||||
// case 4: LED_P6x8Char(x+6,y,m+48);
|
||||
// oled_P6x8Char(x+12,y,i+48);
|
||||
// oled_P6x8Char(x+18,y,j+48);
|
||||
// oled_P6x8Char(x+24,y,k+48);
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//
|
||||
//void oled_PrintValueF(unsigned char x, unsigned char y, float data, unsigned char num)
|
||||
//{
|
||||
// unsigned char l,m,i,j,k;
|
||||
// unsigned char databiti = 6;
|
||||
// unsigned int tempdataui = 0;
|
||||
// int tempdataii = (int)data;
|
||||
// long int tempdatalp = (long int)((data - (int)data)*10000);
|
||||
//
|
||||
//
|
||||
// if(data < 0.0000001) oled_P6x8Char(x, y,'-');
|
||||
// else oled_P6x8Char(x, y,'+');
|
||||
// if(tempdataii < 0)tempdataii = - tempdataii;
|
||||
// tempdataui = tempdataii;
|
||||
// l = tempdataui/10000;
|
||||
// m= (tempdataui%10000)/1000;
|
||||
// i = (tempdataui%1000)/100;
|
||||
// j = (tempdataui%100)/10;
|
||||
// k = tempdataui%10;
|
||||
// if (l != 0)
|
||||
// {
|
||||
// oled_P6x8Char(x+6,y,l+48);
|
||||
// oled_P6x8Char(x+12,y,m+48);
|
||||
// oled_P6x8Char(x+18,y,i+48);
|
||||
// oled_P6x8Char(x+24,y,j+48);
|
||||
// oled_P6x8Char(x+30,y,k+48);
|
||||
// }
|
||||
// else if(m != 0)
|
||||
// {
|
||||
// databiti = 5;
|
||||
// oled_P6x8Char(x+6,y,m+48);
|
||||
// oled_P6x8Char(x+12,y,i+48);
|
||||
// oled_P6x8Char(x+18,y,j+48);
|
||||
// oled_P6x8Char(x+24,y,k+48);
|
||||
// }
|
||||
// else if(i != 0)
|
||||
// {
|
||||
// databiti = 4;
|
||||
// oled_P6x8Char(x+6,y,i+48);
|
||||
// oled_P6x8Char(x+12,y,j+48);
|
||||
// oled_P6x8Char(x+18,y,k+48);
|
||||
// }
|
||||
// else if(j != 0)
|
||||
// {
|
||||
// databiti = 3;
|
||||
// oled_P6x8Char(x+6,y,j+48);
|
||||
// oled_P6x8Char(x+12,y,k+48);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// databiti = 2;
|
||||
// oled_P6x8Char(x+6,y,k+48);
|
||||
// }
|
||||
// if(tempdatalp < 0)tempdatalp = - tempdatalp;
|
||||
// switch(num)
|
||||
// {
|
||||
// case 0: break;
|
||||
// case 1: oled_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp / 1000),num);break;
|
||||
// case 2: oled_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp / 100),num);break;
|
||||
// case 3: oled_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp / 10),num);break;
|
||||
// case 4: oled_PrintValueFP(x + databiti * 6, y, (unsigned int)(tempdatalp),num);break;
|
||||
// }
|
||||
//}
|
||||
|
||||
void oled_Cursor(unsigned char cursor_column, unsigned char cursor_row)
|
||||
{
|
||||
if(cursor_row != 0)
|
||||
{
|
||||
if(cursor_column == 1) oled_Set_Pos(0, cursor_row + 2);
|
||||
else oled_Set_Pos(80 + (cursor_column - 2)*6, cursor_row + 2);
|
||||
oled_WrDat(0xFF);
|
||||
oled_WrDat(0xFF);
|
||||
oled_WrDat(0xFF);
|
||||
oled_WrDat(0xFF);
|
||||
oled_WrDat(0xFF);
|
||||
oled_WrDat(0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
void setup()
|
||||
{
|
||||
LEDPIN_Init();
|
||||
oled_Init();
|
||||
}
|
||||
void loop()
|
||||
{
|
||||
oled_P8x16Str(23,0,"welcome to");
|
||||
oled_P8x16Str(40,2,"Smart");
|
||||
oled_P8x16Str(20,4,"Prototyping");
|
||||
}
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user