Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
HaoJin232
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
时昊
HaoJin232
Commits
6f94cc8b
Commit
6f94cc8b
authored
Feb 06, 2024
by
高士达
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat:增加BU98驱动,待调式
parent
3cd9d850
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1359 additions
and
1647 deletions
+1359
-1647
RTE_Components.h
HJ232_Source/RTE/_BAT32G239/RTE_Components.h
+1
-1
BU98R10.H
HJ232_Source/source/Driver/inc/BU98R10.H
+452
-506
BU98R10.C
HJ232_Source/source/Driver/src/BU98R10.C
+906
-1140
No files found.
HJ232_Source/RTE/_BAT32G239/RTE_Components.h
View file @
6f94cc8b
...
...
@@ -3,7 +3,7 @@
* Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! ***
*
*
*
Project: 'tim4DelayCounter'
* Target: 'BAT32G239'
*/
...
...
HJ232_Source/source/Driver/inc/BU98R10.H
View file @
6f94cc8b
/******************************************************************************
�� �� ����BU98R10.c
����������BU98R10����Һ�����������������ͷ�ļ�
�� �ߣ�����
�� ����V1.0
�� �ڣ�2017.4.28
******************************************************************************/
#ifndef _BU98R10_H_
#define _BU98R10_H_
#include "GPIO.h"
#include "System_Monitor.h"
/******************************************************************************
BU98R10 оƬɫ�ʵ��ڲ���
******************************************************************************/
#define USE_NEW_COLORFUL_STRATEGY 1
#define LIGHT_LEVEL 4//0
#if(LIGHT_LEVEL == 0)
#define R_LEVEL 63 //must <= 63
#define G_LEVEL 50 //must <= 63
#define B_LEVEL 20 //must <= 63
#elif(LIGHT_LEVEL == 1)
#define R_LEVEL 63 //must <= 63
#define G_LEVEL 47 //must <= 63
#define B_LEVEL 27 //must <= 63
#elif(LIGHT_LEVEL == 2)
#define R_LEVEL 63 //must <= 63
#define G_LEVEL 55 //must <= 63
#define B_LEVEL 31 //must <= 63
#elif(LIGHT_LEVEL == 3)
#define R_LEVEL 63 //must <= 63
#define G_LEVEL 55 //must <= 63
#define B_LEVEL 39 //must <= 63
#elif(LIGHT_LEVEL == 4)
#define R_LEVEL 60 //must <= 63
#define G_LEVEL 60 //must <= 63
#define B_LEVEL 10 //must <= 63
#endif
/******************************************************************************
BU98R10 оƬ0����
******************************************************************************/
/*** оƬʹ�� ***/
#define USE_BU98R10_CHIP_0 1
/*** ������������ ***/
//#ifndef BU98R10_0_SD
//#define BU98R10_0_SD PIN_9_P
//#define SEG_LCD_SD_Dir0 PIN_9_D
//
//#endif
//
//
//#ifndef BU98R10_0_SCL
//#define BU98R10_0_SCL PIN_10_P
//#endif
//
//
//#ifndef BU98R10_0_CSB
//#define BU98R10_0_CSB PIN_11_P
//#endif
//#define BU98R10_0_SD SEG_LCD_SD
/*** ����ʱ������ ***/
//#define BU98R10_0_SCL SEG_LCD_SCL
#define USE_BU98R10_CHIP_1 1
/*** оƬѡ������ ***/
//#define BU98R10_0_CSB SEG_LCD_CSB
///#ifndef BU98R10_1_SD
///#define BU98R10_1_SD PIN_16_P
///#define SEG_LCD_SD_Dir1 PIN_16_D
///#endif
///
///
///#ifndef BU98R10_1_SCL
///#define BU98R10_1_SCL PIN_17_P
///#endif
///
///
///#ifndef BU98R10_1_CSB
///#define BU98R10_1_CSB PIN_18_P
///#endif
/******************************************************************************
BU98R10 оƬ1����
******************************************************************************/
/*** оƬʹ�� ***/
#define USE_BU98R10_CHIP_1 1
/*** ������������ ***/
#ifndef BU98R10_1_SD
//#define BU98R10_1_SD SEG_LCD_SD1
#endif
#define BU98R10_SD_SCL_MULTIPLEX 0 //0 - ?????? 1 - ????
/*** ����ʱ������ ***/
#ifndef BU98R10_1_SCL
//#define BU98R10_1_SCL SEG_LCD_SCL1
#endif
/*** оƬѡ������ ***/
#ifndef BU98R10_1_CSB
//#define BU98R10_1_CSB SEG_LCD_CSB1
#endif
/******************************************************************************
BU98R10 ��оƬʱ��/�����߸�������
******************************************************************************/
#define BU98R10_SD_SCL_MULTIPLEX 0 //0 - ������ 1 - ����
/******************************************************************************
BU98R10 оƬ��������
******************************************************************************/
/***�������� ***/
#define BU98R10_COLORFUL_LCD_MODE 1 //0 - ��ɫģʽ 1 - ��ɫģʽ
#define BU98R10_COLORFUL_LCD_MODE 1 //0 - ????? 1 - ?????
#define BU98R10_FRAME_FREQ BU98R10_FRAME_FREQ_120_0_Hz //BU98R10_FRAME_FREQ_180_0_Hz
#define BU98R10_DEFAULT_SEG 0 //����Ĭ��״̬�¶�Ӧ������
#define BU98R10_DEFAULT_SEG 0 //???????????????????
/***ɫ������(����ɫģʽ����Ч) ***/
#define BU98R10_SRR 10
#define BU98R10_SRR 7
#define BU98R10_SRF 0
#define BU98R10_SGR
10
#define BU98R10_SGR
7
#define BU98R10_SGF 0
#define BU98R10_SBR
10
#define BU98R10_SBR
7
#define BU98R10_SBF 0
#define BU98R10_LRS 0x3f// 0x3f
#define BU98R10_LRW 0 //0 //63
#define BU98R10_LGS 0x3f//0x3f //57
#define BU98R10_LGW 0//0 //6
#define BU98R10_LBS 0x3f//0x3f //23
#define BU98R10_LBW 0//0 //40
#define BU98R10_LRS 0
#define BU98R10_LRW 47 //63
#define BU98R10_LGS 0 //57
#define BU98R10_LGW 47 //6
#define BU98R10_LBS 0 //23
#define BU98R10_LBW 47 //40
/******************************************************************************
BU98R10 ֡ˢ��Ƶ�ʱ�
******************************************************************************/
#define BU98R10_FRAME_FREQ_50_0_Hz 0x00
#define BU98R10_FRAME_FREQ_60_0_Hz 0x01
#define BU98R10_FRAME_FREQ_69_3_Hz 0x02
...
...
@@ -135,35 +96,29 @@ BU98R10 ֡ˢ��Ƶ�ʱ�
#define BU98R10_FRAME_FREQ_180_0_Hz 0x0E
#define BU98R10_FRAME_FREQ_200_0_Hz 0x0F
/******************************************************************************
BU98R10 ��оƬͬʱд��Ԥ����
******************************************************************************/
#if ((USE_BU98R10_CHIP_0) && (USE_BU98R10_CHIP_1) && (BU98R10_SD_SCL_MULTIPLEX == 0))
#define BU98R10_WRITE_AT_SAME_TIME 1
#define BU98R10_WRITE_AT_SAME_TIME 1
#else
#define BU98R10_WRITE_AT_SAME_TIME 0
#define BU98R10_WRITE_AT_SAME_TIME 0
#endif
/******************************************************************************
BU98R10 �Ĵ���ֵԤ����
******************************************************************************/
#define BU98R10_REG_SEG_R 60 // ((uint8_t)BU98R10_SRR << 4 | (uint8_t)BU98R10_SRF) // 0
#define BU98R10_REG_SEG_G 1// ((uint8_t)BU98R10_SGR << 4 | (uint8_t)BU98R10_SGF) // 0XEE
#define BU98R10_REG_SEG_B 40// ((uint8_t)BU98R10_SBR << 4 | (uint8_t)BU98R10_SBF) // 0X55
#define BU98R10_REG_SEG_R ((uint8_t)BU98R10_SRR << 4 | (uint8_t)BU98R10_SRF) // 0
#define BU98R10_REG_SEG_G ((uint8_t)BU98R10_SGR << 4 | (uint8_t)BU98R10_SGF) // 0XEE
#define BU98R10_REG_SEG_B ((uint8_t)BU98R10_SBR << 4 | (uint8_t)BU98R10_SBF) // 0X55
#if BU98R10_COLORFUL_LCD_MODE
#define BU98R10_DEFAULT_BYTE ((uint8_t)BU98R10_DEFAULT_SEG << 4 | (uint8_t)BU98R10_DEFAULT_SEG)
#define BU98R10_DEFAULT_BYTE ((uint8_t)BU98R10_DEFAULT_SEG << 4 | (uint8_t)BU98R10_DEFAULT_SEG)
#else
#if BU98R10_DEFAULT_SEG
#define BU98R10_DEFAULT_BYTE ((uint8_t)0xFF)
#else
#define BU98R10_DEFAULT_BYTE ((uint8_t)0x00)
#endif
#if BU98R10_DEFAULT_SEG
#define BU98R10_DEFAULT_BYTE ((uint8_t)0xFF)
#else
#define BU98R10_DEFAULT_BYTE ((uint8_t)0x00)
#endif
#endif
/******************************************************************************
BU98R10�����б�
******************************************************************************/
#define BU98R10_CMD_DATRD ((uint8_t)0x09)
#define BU98R10_CMD_DATWR ((uint8_t)0x0A)
#define BU98R10_CMD_ADSET ((uint8_t)0x40)
...
...
@@ -186,10 +141,8 @@ BU98R10�����б�
#define BU98R10_CMD_TEST ((uint8_t)0xF0)
#define BU98R10_CMD_SWRST ((uint8_t)0xF9)
/******************************************************************************
�������
******************************************************************************/
#define BU98R10_PAR_ICSET_RGB ((uint8_t)0x00)
#define BU98R10_PAR_ICSET_RGB ((uint8_t)0x00)
#define BU98R10_PAR_ICSET_MONO ((uint8_t)0x01)
#define BU98R10_PAR_ICSET_INTOSC ((uint8_t)0x00)
#define BU98R10_PAR_ICSET_EXTCLK ((uint8_t)0x02)
...
...
@@ -199,412 +152,406 @@ BU98R10�����б�
#define BU98R10_PAR_DRVCTRL_AP_ON ((uint8_t)0x02)
#define BU98R10_PAR_DRVCTRL_INVERSE ((uint8_t)0x03)
/******************************************************************************
ˢ�¿��ƽṹ����
******************************************************************************/
typedef
struct
{
uint8_t
En
;
uint8_t
Chip
;
uint8_t
Step
;
uint8_t
Cont
;
uint8_t
Addr
;
}
BU98R10UpdateCtrlStruct
;
/******************************************************************************
����ṹ����
******************************************************************************/
uint8_t
En
;
uint8_t
Chip
;
uint8_t
Step
;
uint8_t
Cont
;
uint8_t
Addr
;
}
BU98R10UpdateCtrlStruct
;
#if BU98R10_COLORFUL_LCD_MODE
#define BU98R10_DDRAM_SIZE 90
#define BU98R10_DDRAM_SIZE 90
typedef
union
{
uint8_t
Byte
[
BU98R10_DDRAM_SIZE
];
struct
{
uint8_t
Seg1
:
4
;
uint8_t
Seg2
:
4
;
uint8_t
Seg3
:
4
;
uint8_t
Seg4
:
4
;
uint8_t
Seg5
:
4
;
uint8_t
Seg6
:
4
;
uint8_t
Seg7
:
4
;
uint8_t
Seg8
:
4
;
uint8_t
Seg9
:
4
;
uint8_t
Seg10
:
4
;
uint8_t
Seg11
:
4
;
uint8_t
Seg12
:
4
;
uint8_t
Seg13
:
4
;
uint8_t
Seg14
:
4
;
uint8_t
Seg15
:
4
;
uint8_t
Seg16
:
4
;
uint8_t
Seg17
:
4
;
uint8_t
Seg18
:
4
;
uint8_t
Seg19
:
4
;
uint8_t
Seg20
:
4
;
uint8_t
Seg21
:
4
;
uint8_t
Seg22
:
4
;
uint8_t
Seg23
:
4
;
uint8_t
Seg24
:
4
;
uint8_t
Seg25
:
4
;
uint8_t
Seg26
:
4
;
uint8_t
Seg27
:
4
;
uint8_t
Seg28
:
4
;
uint8_t
Seg29
:
4
;
uint8_t
Seg30
:
4
;
uint8_t
Seg31
:
4
;
uint8_t
Seg32
:
4
;
uint8_t
Seg33
:
4
;
uint8_t
Seg34
:
4
;
uint8_t
Seg35
:
4
;
uint8_t
Seg36
:
4
;
uint8_t
Seg37
:
4
;
uint8_t
Seg38
:
4
;
uint8_t
Seg39
:
4
;
uint8_t
Seg40
:
4
;
uint8_t
Seg41
:
4
;
uint8_t
Seg42
:
4
;
uint8_t
Seg43
:
4
;
uint8_t
Seg44
:
4
;
uint8_t
Seg45
:
4
;
uint8_t
Seg46
:
4
;
uint8_t
Seg47
:
4
;
uint8_t
Seg48
:
4
;
uint8_t
Seg49
:
4
;
uint8_t
Seg50
:
4
;
uint8_t
Seg51
:
4
;
uint8_t
Seg52
:
4
;
uint8_t
Seg53
:
4
;
uint8_t
Seg54
:
4
;
uint8_t
Seg55
:
4
;
uint8_t
Seg56
:
4
;
uint8_t
Seg57
:
4
;
uint8_t
Seg58
:
4
;
uint8_t
Seg59
:
4
;
uint8_t
Seg60
:
4
;
uint8_t
Seg61
:
4
;
uint8_t
Seg62
:
4
;
uint8_t
Seg63
:
4
;
uint8_t
Seg64
:
4
;
uint8_t
Seg65
:
4
;
uint8_t
Seg66
:
4
;
uint8_t
Seg67
:
4
;
uint8_t
Seg68
:
4
;
uint8_t
Seg69
:
4
;
uint8_t
Seg70
:
4
;
uint8_t
Seg71
:
4
;
uint8_t
Seg72
:
4
;
uint8_t
Seg73
:
4
;
uint8_t
Seg74
:
4
;
uint8_t
Seg75
:
4
;
uint8_t
Seg76
:
4
;
uint8_t
Seg77
:
4
;
uint8_t
Seg78
:
4
;
uint8_t
Seg79
:
4
;
uint8_t
Seg80
:
4
;
uint8_t
Seg81
:
4
;
uint8_t
Seg82
:
4
;
uint8_t
Seg83
:
4
;
uint8_t
Seg84
:
4
;
uint8_t
Seg85
:
4
;
uint8_t
Seg86
:
4
;
uint8_t
Seg87
:
4
;
uint8_t
Seg88
:
4
;
uint8_t
Seg89
:
4
;
uint8_t
Seg90
:
4
;
uint8_t
Seg91
:
4
;
uint8_t
Seg92
:
4
;
uint8_t
Seg93
:
4
;
uint8_t
Seg94
:
4
;
uint8_t
Seg95
:
4
;
uint8_t
Seg96
:
4
;
uint8_t
Seg97
:
4
;
uint8_t
Seg98
:
4
;
uint8_t
Seg99
:
4
;
uint8_t
Seg100
:
4
;
uint8_t
Seg101
:
4
;
uint8_t
Seg102
:
4
;
uint8_t
Seg103
:
4
;
uint8_t
Seg104
:
4
;
uint8_t
Seg105
:
4
;
uint8_t
Seg106
:
4
;
uint8_t
Seg107
:
4
;
uint8_t
Seg108
:
4
;
uint8_t
Seg109
:
4
;
uint8_t
Seg110
:
4
;
uint8_t
Seg111
:
4
;
uint8_t
Seg112
:
4
;
uint8_t
Seg113
:
4
;
uint8_t
Seg114
:
4
;
uint8_t
Seg115
:
4
;
uint8_t
Seg116
:
4
;
uint8_t
Seg117
:
4
;
uint8_t
Seg118
:
4
;
uint8_t
Seg119
:
4
;
uint8_t
Seg120
:
4
;
uint8_t
Seg121
:
4
;
uint8_t
Seg122
:
4
;
uint8_t
Seg123
:
4
;
uint8_t
Seg124
:
4
;
uint8_t
Seg125
:
4
;
uint8_t
Seg126
:
4
;
uint8_t
Seg127
:
4
;
uint8_t
Seg128
:
4
;
uint8_t
Seg129
:
4
;
uint8_t
Seg130
:
4
;
uint8_t
Seg131
:
4
;
uint8_t
Seg132
:
4
;
uint8_t
Seg133
:
4
;
uint8_t
Seg134
:
4
;
uint8_t
Seg135
:
4
;
uint8_t
Seg136
:
4
;
uint8_t
Seg137
:
4
;
uint8_t
Seg138
:
4
;
uint8_t
Seg139
:
4
;
uint8_t
Seg140
:
4
;
uint8_t
Seg141
:
4
;
uint8_t
Seg142
:
4
;
uint8_t
Seg143
:
4
;
uint8_t
Seg144
:
4
;
uint8_t
Seg145
:
4
;
uint8_t
Seg146
:
4
;
uint8_t
Seg147
:
4
;
uint8_t
Seg148
:
4
;
uint8_t
Seg149
:
4
;
uint8_t
Seg150
:
4
;
uint8_t
Seg151
:
4
;
uint8_t
Seg152
:
4
;
uint8_t
Seg153
:
4
;
uint8_t
Seg154
:
4
;
uint8_t
Seg155
:
4
;
uint8_t
Seg156
:
4
;
uint8_t
Seg157
:
4
;
uint8_t
Seg158
:
4
;
uint8_t
Seg159
:
4
;
uint8_t
Seg160
:
4
;
uint8_t
Seg161
:
4
;
uint8_t
Seg162
:
4
;
uint8_t
Seg163
:
4
;
uint8_t
Seg164
:
4
;
uint8_t
Seg165
:
4
;
uint8_t
Seg166
:
4
;
uint8_t
Seg167
:
4
;
uint8_t
Seg168
:
4
;
uint8_t
Seg169
:
4
;
uint8_t
Seg170
:
4
;
uint8_t
Seg171
:
4
;
uint8_t
Seg172
:
4
;
uint8_t
Seg173
:
4
;
uint8_t
Seg174
:
4
;
uint8_t
Seg175
:
4
;
uint8_t
Seg176
:
4
;
uint8_t
Seg177
:
4
;
uint8_t
Seg178
:
4
;
uint8_t
Seg179
:
4
;
uint8_t
Seg180
:
4
;
}
Bit
;
}
BU98R10DDRAMUnion
;
uint8_t
Byte
[
BU98R10_DDRAM_SIZE
];
struct
{
uint8_t
Seg1
:
4
;
uint8_t
Seg2
:
4
;
uint8_t
Seg3
:
4
;
uint8_t
Seg4
:
4
;
uint8_t
Seg5
:
4
;
uint8_t
Seg6
:
4
;
uint8_t
Seg7
:
4
;
uint8_t
Seg8
:
4
;
uint8_t
Seg9
:
4
;
uint8_t
Seg10
:
4
;
uint8_t
Seg11
:
4
;
uint8_t
Seg12
:
4
;
uint8_t
Seg13
:
4
;
uint8_t
Seg14
:
4
;
uint8_t
Seg15
:
4
;
uint8_t
Seg16
:
4
;
uint8_t
Seg17
:
4
;
uint8_t
Seg18
:
4
;
uint8_t
Seg19
:
4
;
uint8_t
Seg20
:
4
;
uint8_t
Seg21
:
4
;
uint8_t
Seg22
:
4
;
uint8_t
Seg23
:
4
;
uint8_t
Seg24
:
4
;
uint8_t
Seg25
:
4
;
uint8_t
Seg26
:
4
;
uint8_t
Seg27
:
4
;
uint8_t
Seg28
:
4
;
uint8_t
Seg29
:
4
;
uint8_t
Seg30
:
4
;
uint8_t
Seg31
:
4
;
uint8_t
Seg32
:
4
;
uint8_t
Seg33
:
4
;
uint8_t
Seg34
:
4
;
uint8_t
Seg35
:
4
;
uint8_t
Seg36
:
4
;
uint8_t
Seg37
:
4
;
uint8_t
Seg38
:
4
;
uint8_t
Seg39
:
4
;
uint8_t
Seg40
:
4
;
uint8_t
Seg41
:
4
;
uint8_t
Seg42
:
4
;
uint8_t
Seg43
:
4
;
uint8_t
Seg44
:
4
;
uint8_t
Seg45
:
4
;
uint8_t
Seg46
:
4
;
uint8_t
Seg47
:
4
;
uint8_t
Seg48
:
4
;
uint8_t
Seg49
:
4
;
uint8_t
Seg50
:
4
;
uint8_t
Seg51
:
4
;
uint8_t
Seg52
:
4
;
uint8_t
Seg53
:
4
;
uint8_t
Seg54
:
4
;
uint8_t
Seg55
:
4
;
uint8_t
Seg56
:
4
;
uint8_t
Seg57
:
4
;
uint8_t
Seg58
:
4
;
uint8_t
Seg59
:
4
;
uint8_t
Seg60
:
4
;
uint8_t
Seg61
:
4
;
uint8_t
Seg62
:
4
;
uint8_t
Seg63
:
4
;
uint8_t
Seg64
:
4
;
uint8_t
Seg65
:
4
;
uint8_t
Seg66
:
4
;
uint8_t
Seg67
:
4
;
uint8_t
Seg68
:
4
;
uint8_t
Seg69
:
4
;
uint8_t
Seg70
:
4
;
uint8_t
Seg71
:
4
;
uint8_t
Seg72
:
4
;
uint8_t
Seg73
:
4
;
uint8_t
Seg74
:
4
;
uint8_t
Seg75
:
4
;
uint8_t
Seg76
:
4
;
uint8_t
Seg77
:
4
;
uint8_t
Seg78
:
4
;
uint8_t
Seg79
:
4
;
uint8_t
Seg80
:
4
;
uint8_t
Seg81
:
4
;
uint8_t
Seg82
:
4
;
uint8_t
Seg83
:
4
;
uint8_t
Seg84
:
4
;
uint8_t
Seg85
:
4
;
uint8_t
Seg86
:
4
;
uint8_t
Seg87
:
4
;
uint8_t
Seg88
:
4
;
uint8_t
Seg89
:
4
;
uint8_t
Seg90
:
4
;
uint8_t
Seg91
:
4
;
uint8_t
Seg92
:
4
;
uint8_t
Seg93
:
4
;
uint8_t
Seg94
:
4
;
uint8_t
Seg95
:
4
;
uint8_t
Seg96
:
4
;
uint8_t
Seg97
:
4
;
uint8_t
Seg98
:
4
;
uint8_t
Seg99
:
4
;
uint8_t
Seg100
:
4
;
uint8_t
Seg101
:
4
;
uint8_t
Seg102
:
4
;
uint8_t
Seg103
:
4
;
uint8_t
Seg104
:
4
;
uint8_t
Seg105
:
4
;
uint8_t
Seg106
:
4
;
uint8_t
Seg107
:
4
;
uint8_t
Seg108
:
4
;
uint8_t
Seg109
:
4
;
uint8_t
Seg110
:
4
;
uint8_t
Seg111
:
4
;
uint8_t
Seg112
:
4
;
uint8_t
Seg113
:
4
;
uint8_t
Seg114
:
4
;
uint8_t
Seg115
:
4
;
uint8_t
Seg116
:
4
;
uint8_t
Seg117
:
4
;
uint8_t
Seg118
:
4
;
uint8_t
Seg119
:
4
;
uint8_t
Seg120
:
4
;
uint8_t
Seg121
:
4
;
uint8_t
Seg122
:
4
;
uint8_t
Seg123
:
4
;
uint8_t
Seg124
:
4
;
uint8_t
Seg125
:
4
;
uint8_t
Seg126
:
4
;
uint8_t
Seg127
:
4
;
uint8_t
Seg128
:
4
;
uint8_t
Seg129
:
4
;
uint8_t
Seg130
:
4
;
uint8_t
Seg131
:
4
;
uint8_t
Seg132
:
4
;
uint8_t
Seg133
:
4
;
uint8_t
Seg134
:
4
;
uint8_t
Seg135
:
4
;
uint8_t
Seg136
:
4
;
uint8_t
Seg137
:
4
;
uint8_t
Seg138
:
4
;
uint8_t
Seg139
:
4
;
uint8_t
Seg140
:
4
;
uint8_t
Seg141
:
4
;
uint8_t
Seg142
:
4
;
uint8_t
Seg143
:
4
;
uint8_t
Seg144
:
4
;
uint8_t
Seg145
:
4
;
uint8_t
Seg146
:
4
;
uint8_t
Seg147
:
4
;
uint8_t
Seg148
:
4
;
uint8_t
Seg149
:
4
;
uint8_t
Seg150
:
4
;
uint8_t
Seg151
:
4
;
uint8_t
Seg152
:
4
;
uint8_t
Seg153
:
4
;
uint8_t
Seg154
:
4
;
uint8_t
Seg155
:
4
;
uint8_t
Seg156
:
4
;
uint8_t
Seg157
:
4
;
uint8_t
Seg158
:
4
;
uint8_t
Seg159
:
4
;
uint8_t
Seg160
:
4
;
uint8_t
Seg161
:
4
;
uint8_t
Seg162
:
4
;
uint8_t
Seg163
:
4
;
uint8_t
Seg164
:
4
;
uint8_t
Seg165
:
4
;
uint8_t
Seg166
:
4
;
uint8_t
Seg167
:
4
;
uint8_t
Seg168
:
4
;
uint8_t
Seg169
:
4
;
uint8_t
Seg170
:
4
;
uint8_t
Seg171
:
4
;
uint8_t
Seg172
:
4
;
uint8_t
Seg173
:
4
;
uint8_t
Seg174
:
4
;
uint8_t
Seg175
:
4
;
uint8_t
Seg176
:
4
;
uint8_t
Seg177
:
4
;
uint8_t
Seg178
:
4
;
uint8_t
Seg179
:
4
;
uint8_t
Seg180
:
4
;
}
Bit
;
}
BU98R10DDRAMUnion
;
#else
#define BU98R10_DDRAM_SIZE 23
#define BU98R10_DDRAM_SIZE 23
typedef
union
{
uint8_t
Byte
[
BU98R10_DDRAM_SIZE
];
struct
{
uint8_t
Seg1
:
1
;
uint8_t
Seg2
:
1
;
uint8_t
Seg3
:
1
;
uint8_t
Seg4
:
1
;
uint8_t
Seg5
:
1
;
uint8_t
Seg6
:
1
;
uint8_t
Seg7
:
1
;
uint8_t
Seg8
:
1
;
uint8_t
Seg9
:
1
;
uint8_t
Seg10
:
1
;
uint8_t
Seg11
:
1
;
uint8_t
Seg12
:
1
;
uint8_t
Seg13
:
1
;
uint8_t
Seg14
:
1
;
uint8_t
Seg15
:
1
;
uint8_t
Seg16
:
1
;
uint8_t
Seg17
:
1
;
uint8_t
Seg18
:
1
;
uint8_t
Seg19
:
1
;
uint8_t
Seg20
:
1
;
uint8_t
Seg21
:
1
;
uint8_t
Seg22
:
1
;
uint8_t
Seg23
:
1
;
uint8_t
Seg24
:
1
;
uint8_t
Seg25
:
1
;
uint8_t
Seg26
:
1
;
uint8_t
Seg27
:
1
;
uint8_t
Seg28
:
1
;
uint8_t
Seg29
:
1
;
uint8_t
Seg30
:
1
;
uint8_t
Seg31
:
1
;
uint8_t
Seg32
:
1
;
uint8_t
Seg33
:
1
;
uint8_t
Seg34
:
1
;
uint8_t
Seg35
:
1
;
uint8_t
Seg36
:
1
;
uint8_t
Seg37
:
1
;
uint8_t
Seg38
:
1
;
uint8_t
Seg39
:
1
;
uint8_t
Seg40
:
1
;
uint8_t
Seg41
:
1
;
uint8_t
Seg42
:
1
;
uint8_t
Seg43
:
1
;
uint8_t
Seg44
:
1
;
uint8_t
Seg45
:
1
;
uint8_t
Seg46
:
1
;
uint8_t
Seg47
:
1
;
uint8_t
Seg48
:
1
;
uint8_t
Seg49
:
1
;
uint8_t
Seg50
:
1
;
uint8_t
Seg51
:
1
;
uint8_t
Seg52
:
1
;
uint8_t
Seg53
:
1
;
uint8_t
Seg54
:
1
;
uint8_t
Seg55
:
1
;
uint8_t
Seg56
:
1
;
uint8_t
Seg57
:
1
;
uint8_t
Seg58
:
1
;
uint8_t
Seg59
:
1
;
uint8_t
Seg60
:
1
;
uint8_t
Seg61
:
1
;
uint8_t
Seg62
:
1
;
uint8_t
Seg63
:
1
;
uint8_t
Seg64
:
1
;
uint8_t
Seg65
:
1
;
uint8_t
Seg66
:
1
;
uint8_t
Seg67
:
1
;
uint8_t
Seg68
:
1
;
uint8_t
Seg69
:
1
;
uint8_t
Seg70
:
1
;
uint8_t
Seg71
:
1
;
uint8_t
Seg72
:
1
;
uint8_t
Seg73
:
1
;
uint8_t
Seg74
:
1
;
uint8_t
Seg75
:
1
;
uint8_t
Seg76
:
1
;
uint8_t
Seg77
:
1
;
uint8_t
Seg78
:
1
;
uint8_t
Seg79
:
1
;
uint8_t
Seg80
:
1
;
uint8_t
Seg81
:
1
;
uint8_t
Seg82
:
1
;
uint8_t
Seg83
:
1
;
uint8_t
Seg84
:
1
;
uint8_t
Seg85
:
1
;
uint8_t
Seg86
:
1
;
uint8_t
Seg87
:
1
;
uint8_t
Seg88
:
1
;
uint8_t
Seg89
:
1
;
uint8_t
Seg90
:
1
;
uint8_t
Seg91
:
1
;
uint8_t
Seg92
:
1
;
uint8_t
Seg93
:
1
;
uint8_t
Seg94
:
1
;
uint8_t
Seg95
:
1
;
uint8_t
Seg96
:
1
;
uint8_t
Seg97
:
1
;
uint8_t
Seg98
:
1
;
uint8_t
Seg99
:
1
;
uint8_t
Seg100
:
1
;
uint8_t
Seg101
:
1
;
uint8_t
Seg102
:
1
;
uint8_t
Seg103
:
1
;
uint8_t
Seg104
:
1
;
uint8_t
Seg105
:
1
;
uint8_t
Seg106
:
1
;
uint8_t
Seg107
:
1
;
uint8_t
Seg108
:
1
;
uint8_t
Seg109
:
1
;
uint8_t
Seg110
:
1
;
uint8_t
Seg111
:
1
;
uint8_t
Seg112
:
1
;
uint8_t
Seg113
:
1
;
uint8_t
Seg114
:
1
;
uint8_t
Seg115
:
1
;
uint8_t
Seg116
:
1
;
uint8_t
Seg117
:
1
;
uint8_t
Seg118
:
1
;
uint8_t
Seg119
:
1
;
uint8_t
Seg120
:
1
;
uint8_t
Seg121
:
1
;
uint8_t
Seg122
:
1
;
uint8_t
Seg123
:
1
;
uint8_t
Seg124
:
1
;
uint8_t
Seg125
:
1
;
uint8_t
Seg126
:
1
;
uint8_t
Seg127
:
1
;
uint8_t
Seg128
:
1
;
uint8_t
Seg129
:
1
;
uint8_t
Seg130
:
1
;
uint8_t
Seg131
:
1
;
uint8_t
Seg132
:
1
;
uint8_t
Seg133
:
1
;
uint8_t
Seg134
:
1
;
uint8_t
Seg135
:
1
;
uint8_t
Seg136
:
1
;
uint8_t
Seg137
:
1
;
uint8_t
Seg138
:
1
;
uint8_t
Seg139
:
1
;
uint8_t
Seg140
:
1
;
uint8_t
Seg141
:
1
;
uint8_t
Seg142
:
1
;
uint8_t
Seg143
:
1
;
uint8_t
Seg144
:
1
;
uint8_t
Seg145
:
1
;
uint8_t
Seg146
:
1
;
uint8_t
Seg147
:
1
;
uint8_t
Seg148
:
1
;
uint8_t
Seg149
:
1
;
uint8_t
Seg150
:
1
;
uint8_t
Seg151
:
1
;
uint8_t
Seg152
:
1
;
uint8_t
Seg153
:
1
;
uint8_t
Seg154
:
1
;
uint8_t
Seg155
:
1
;
uint8_t
Seg156
:
1
;
uint8_t
Seg157
:
1
;
uint8_t
Seg158
:
1
;
uint8_t
Seg159
:
1
;
uint8_t
Seg160
:
1
;
uint8_t
Seg161
:
1
;
uint8_t
Seg162
:
1
;
uint8_t
Seg163
:
1
;
uint8_t
Seg164
:
1
;
uint8_t
Seg165
:
1
;
uint8_t
Seg166
:
1
;
uint8_t
Seg167
:
1
;
uint8_t
Seg168
:
1
;
uint8_t
Seg169
:
1
;
uint8_t
Seg170
:
1
;
uint8_t
Seg171
:
1
;
uint8_t
Seg172
:
1
;
uint8_t
Seg173
:
1
;
uint8_t
Seg174
:
1
;
uint8_t
Seg175
:
1
;
uint8_t
Seg176
:
1
;
uint8_t
Seg177
:
1
;
uint8_t
Seg178
:
1
;
uint8_t
Seg179
:
1
;
uint8_t
Seg180
:
1
;
uint8_t
:
4
;
}
Bit
;
}
BU98R10DDRAMUnion
;
uint8_t
Byte
[
BU98R10_DDRAM_SIZE
];
struct
{
uint8_t
Seg1
:
1
;
uint8_t
Seg2
:
1
;
uint8_t
Seg3
:
1
;
uint8_t
Seg4
:
1
;
uint8_t
Seg5
:
1
;
uint8_t
Seg6
:
1
;
uint8_t
Seg7
:
1
;
uint8_t
Seg8
:
1
;
uint8_t
Seg9
:
1
;
uint8_t
Seg10
:
1
;
uint8_t
Seg11
:
1
;
uint8_t
Seg12
:
1
;
uint8_t
Seg13
:
1
;
uint8_t
Seg14
:
1
;
uint8_t
Seg15
:
1
;
uint8_t
Seg16
:
1
;
uint8_t
Seg17
:
1
;
uint8_t
Seg18
:
1
;
uint8_t
Seg19
:
1
;
uint8_t
Seg20
:
1
;
uint8_t
Seg21
:
1
;
uint8_t
Seg22
:
1
;
uint8_t
Seg23
:
1
;
uint8_t
Seg24
:
1
;
uint8_t
Seg25
:
1
;
uint8_t
Seg26
:
1
;
uint8_t
Seg27
:
1
;
uint8_t
Seg28
:
1
;
uint8_t
Seg29
:
1
;
uint8_t
Seg30
:
1
;
uint8_t
Seg31
:
1
;
uint8_t
Seg32
:
1
;
uint8_t
Seg33
:
1
;
uint8_t
Seg34
:
1
;
uint8_t
Seg35
:
1
;
uint8_t
Seg36
:
1
;
uint8_t
Seg37
:
1
;
uint8_t
Seg38
:
1
;
uint8_t
Seg39
:
1
;
uint8_t
Seg40
:
1
;
uint8_t
Seg41
:
1
;
uint8_t
Seg42
:
1
;
uint8_t
Seg43
:
1
;
uint8_t
Seg44
:
1
;
uint8_t
Seg45
:
1
;
uint8_t
Seg46
:
1
;
uint8_t
Seg47
:
1
;
uint8_t
Seg48
:
1
;
uint8_t
Seg49
:
1
;
uint8_t
Seg50
:
1
;
uint8_t
Seg51
:
1
;
uint8_t
Seg52
:
1
;
uint8_t
Seg53
:
1
;
uint8_t
Seg54
:
1
;
uint8_t
Seg55
:
1
;
uint8_t
Seg56
:
1
;
uint8_t
Seg57
:
1
;
uint8_t
Seg58
:
1
;
uint8_t
Seg59
:
1
;
uint8_t
Seg60
:
1
;
uint8_t
Seg61
:
1
;
uint8_t
Seg62
:
1
;
uint8_t
Seg63
:
1
;
uint8_t
Seg64
:
1
;
uint8_t
Seg65
:
1
;
uint8_t
Seg66
:
1
;
uint8_t
Seg67
:
1
;
uint8_t
Seg68
:
1
;
uint8_t
Seg69
:
1
;
uint8_t
Seg70
:
1
;
uint8_t
Seg71
:
1
;
uint8_t
Seg72
:
1
;
uint8_t
Seg73
:
1
;
uint8_t
Seg74
:
1
;
uint8_t
Seg75
:
1
;
uint8_t
Seg76
:
1
;
uint8_t
Seg77
:
1
;
uint8_t
Seg78
:
1
;
uint8_t
Seg79
:
1
;
uint8_t
Seg80
:
1
;
uint8_t
Seg81
:
1
;
uint8_t
Seg82
:
1
;
uint8_t
Seg83
:
1
;
uint8_t
Seg84
:
1
;
uint8_t
Seg85
:
1
;
uint8_t
Seg86
:
1
;
uint8_t
Seg87
:
1
;
uint8_t
Seg88
:
1
;
uint8_t
Seg89
:
1
;
uint8_t
Seg90
:
1
;
uint8_t
Seg91
:
1
;
uint8_t
Seg92
:
1
;
uint8_t
Seg93
:
1
;
uint8_t
Seg94
:
1
;
uint8_t
Seg95
:
1
;
uint8_t
Seg96
:
1
;
uint8_t
Seg97
:
1
;
uint8_t
Seg98
:
1
;
uint8_t
Seg99
:
1
;
uint8_t
Seg100
:
1
;
uint8_t
Seg101
:
1
;
uint8_t
Seg102
:
1
;
uint8_t
Seg103
:
1
;
uint8_t
Seg104
:
1
;
uint8_t
Seg105
:
1
;
uint8_t
Seg106
:
1
;
uint8_t
Seg107
:
1
;
uint8_t
Seg108
:
1
;
uint8_t
Seg109
:
1
;
uint8_t
Seg110
:
1
;
uint8_t
Seg111
:
1
;
uint8_t
Seg112
:
1
;
uint8_t
Seg113
:
1
;
uint8_t
Seg114
:
1
;
uint8_t
Seg115
:
1
;
uint8_t
Seg116
:
1
;
uint8_t
Seg117
:
1
;
uint8_t
Seg118
:
1
;
uint8_t
Seg119
:
1
;
uint8_t
Seg120
:
1
;
uint8_t
Seg121
:
1
;
uint8_t
Seg122
:
1
;
uint8_t
Seg123
:
1
;
uint8_t
Seg124
:
1
;
uint8_t
Seg125
:
1
;
uint8_t
Seg126
:
1
;
uint8_t
Seg127
:
1
;
uint8_t
Seg128
:
1
;
uint8_t
Seg129
:
1
;
uint8_t
Seg130
:
1
;
uint8_t
Seg131
:
1
;
uint8_t
Seg132
:
1
;
uint8_t
Seg133
:
1
;
uint8_t
Seg134
:
1
;
uint8_t
Seg135
:
1
;
uint8_t
Seg136
:
1
;
uint8_t
Seg137
:
1
;
uint8_t
Seg138
:
1
;
uint8_t
Seg139
:
1
;
uint8_t
Seg140
:
1
;
uint8_t
Seg141
:
1
;
uint8_t
Seg142
:
1
;
uint8_t
Seg143
:
1
;
uint8_t
Seg144
:
1
;
uint8_t
Seg145
:
1
;
uint8_t
Seg146
:
1
;
uint8_t
Seg147
:
1
;
uint8_t
Seg148
:
1
;
uint8_t
Seg149
:
1
;
uint8_t
Seg150
:
1
;
uint8_t
Seg151
:
1
;
uint8_t
Seg152
:
1
;
uint8_t
Seg153
:
1
;
uint8_t
Seg154
:
1
;
uint8_t
Seg155
:
1
;
uint8_t
Seg156
:
1
;
uint8_t
Seg157
:
1
;
uint8_t
Seg158
:
1
;
uint8_t
Seg159
:
1
;
uint8_t
Seg160
:
1
;
uint8_t
Seg161
:
1
;
uint8_t
Seg162
:
1
;
uint8_t
Seg163
:
1
;
uint8_t
Seg164
:
1
;
uint8_t
Seg165
:
1
;
uint8_t
Seg166
:
1
;
uint8_t
Seg167
:
1
;
uint8_t
Seg168
:
1
;
uint8_t
Seg169
:
1
;
uint8_t
Seg170
:
1
;
uint8_t
Seg171
:
1
;
uint8_t
Seg172
:
1
;
uint8_t
Seg173
:
1
;
uint8_t
Seg174
:
1
;
uint8_t
Seg175
:
1
;
uint8_t
Seg176
:
1
;
uint8_t
Seg177
:
1
;
uint8_t
Seg178
:
1
;
uint8_t
Seg179
:
1
;
uint8_t
Seg180
:
1
;
uint8_t
:
4
;
}
Bit
;
}
BU98R10DDRAMUnion
;
#endif
/******************************************************************************
�����б�
******************************************************************************/
#if USE_BU98R10_CHIP_0
extern
volatile
BU98R10DDRAMUnion
BU98R10Chip0DDRAM
;
...
...
@@ -983,16 +930,11 @@ extern volatile BU98R10DDRAMUnion BU98R10Chip1DDRAM;
#endif
/******************************************************************************
��������
******************************************************************************/
void
BU98R10_Init
(
void
);
void
BU98R10_Shutdown
(
void
);
void
BU98R10_Update_Request
(
void
);
void
BU98R10_Update_Service
(
void
);
uint8_t
Get_BU98R10UpdateEn
(
void
);
void
checkSegTftState
(
void
);
#if USE_BU98R10_CHIP_0
void
BU98R10_0_Command_Write
(
uint8_t
Cmd
);
...
...
@@ -1007,6 +949,10 @@ void BU98R10_1_Data_Write(uint8_t Dat);
#if BU98R10_WRITE_AT_SAME_TIME
void
BU98R10_All_Command_Write
(
uint8_t
Cmd
);
void
BU98R10_All_Data_Write
(
uint8_t
Dat0
,
uint8_t
Dat1
);
extern
void
checkSegTftState
(
void
);
#endif
#endif
HJ232_Source/source/Driver/src/BU98R10.C
View file @
6f94cc8b
/******************************************************************************
文 件 名:BU98R10.c
功能描述:BU98R10段码液晶控制器驱动程序库文件
作 者:张暄
版 本:V1.0
日 期:2017.4.28
******************************************************************************/
#include "BU98R10.h"
#include "SEG_LCD.h"
#include "IS31FL3236.h"
#if USE_BU98R10_CHIP_0
volatile
BU98R10DDRAMUnion
BU98R10Chip0DDRAM
;
BU98R10DDRAMUnion
BU98R10Chip0DDRAMBackup
;
#endif
/* 端口寄存器基地址 */
#define Register_Base_Address 0X40040000UL
/* 端口寄存器偏移地址*/
#define Port_0_Offset_Address 0X300UL
#define Port_01_Offset_Address 0X301UL
#define Port_02_Offset_Address 0X302UL
#define Port_03_Offset_Address 0X303UL
#define Port_04_Offset_Address 0X304UL
#define Port_05_Offset_Address 0X305UL
#define Port_06_Offset_Address 0X306UL
#define Port_07_Offset_Address 0X307UL
#define Port_08_Offset_Address 0X308UL
#define Port_10_Offset_Address 0X309UL
#define Port_11_Offset_Address 0X30AUL
#define Port_12_Offset_Address 0X30BUL
#define Port_13_Offset_Address 0X30CUL
#define Port_14_Offset_Address 0X30EUL
#define Port_15_Offset_Address 0X30FUL
/* 选择端口 */
#define Port_0 0UL
#define Port_01 1UL
#define Port_02 2UL
#define Port_03 3UL
#define Port_04 4UL
#define Port_05 5UL
#define Port_06 6UL
#define Port_07 7UL
#define Port_08 8UL
#define Port_10 10UL
#define Port_11 11UL
#define Port_12 12UL
#define Port_13 13UL
#define Port_14 14UL
#define Port_15 15UL
/* 选择端口对应PIN */
#define PIN_0 0
#define PIN_1 1
#define PIN_2 2
#define PIN_3 3
#define PIN_4 4
#define PIN_5 5
#define PIN_6 6
#define PIN_7 7
/* 基地址 + 偏移地址 + 对应Port*/
#define SEG_LCD0_SD Register_Base_Address + Port_0_Offset_Address + Port_0
#define SEG_LCD0_SCL Register_Base_Address + Port_0_Offset_Address + Port_0
#define SEG_LCD0_CS Register_Base_Address + Port_0_Offset_Address + Port_0
#define SEG_LCD1_SD Register_Base_Address + Port_07_Offset_Address + Port_07
#define SEG_LCD1_SCL Register_Base_Address + Port_07_Offset_Address + Port_07
#define SEG_LCD1_CS Register_Base_Address + Port_07_Offset_Address + Port_07
#define SEG_LCD0_SD_PIN PIN_2
#define SEG_LCD0_SCL_PIN PIN_4
#define SEG_LCD0_CS_PIN PIN_3
#define SEG_LCD1_SD_PIN PIN_2
#define SEG_LCD1_SCL_PIN PIN_0
#define SEG_LCD1_CS_PIN PIN_1
#if
USE_BU98R10_CHIP_1
volatile
BU98R10DDRAMUnion
BU98R10Chip1
DDRAM
;
BU98R10DDRAMUnion
BU98R10Chip1
DDRAMBackup
;
#if
USE_BU98R10_CHIP_0
volatile
BU98R10DDRAMUnion
BU98R10Chip0
DDRAM
;
BU98R10DDRAMUnion
BU98R10Chip0
DDRAMBackup
;
#endif
BU98R10UpdateCtrlStruct
BU98R10Update
;
uint8_t
BU98R10_InitFlag
=
0u
;
#define SEG_LCD_SD_PORT 1
#define SEG_LCD_SD_PIN 2
#define SEG_LCD_SCL_PORT 1
#define SEG_LCD_SCL_PIN 1
#define SEG_LCD_CS_PORT 1
#define SEG_LCD_CS_PIN 0
#define SEG_LCD_SD1_PORT 5
#define SEG_LCD_SD1_PIN 5
#define SEG_LCD_SCL1_PORT 1
#define SEG_LCD_SCL1_PIN 7
#define SEG_LCD_CS1_PORT 1
#define SEG_LCD_CS1_PIN 3
#if USE_BU98R10_CHIP_1
volatile
BU98R10DDRAMUnion
BU98R10Chip1DDRAM
;
BU98R10DDRAMUnion
BU98R10Chip1DDRAMBackup
;
#endif
//色彩设置初始化(注意,未做?芯片兼)
/*
static void BU98R10ColorInit(uint8_t R_GrayLevel,uint8_t G_GrayLevel,uint8_t B_GrayLevel)
{
uint8_t width = 0;
uint8_t wTemp = 0;
uint8_t rGrayLevel = R_GrayLevel;
uint8_t gGrayLevel = G_GrayLevel;
uint8_t bGrayLevel = B_GrayLevel;
if(rGrayLevel > 63)
{
rGrayLevel = 63;
}
if(gGrayLevel > 63)
{
gGrayLevel = 63;
}
if(bGrayLevel > 63)
{
bGrayLevel = 63;
}
BU98R10_0_Command_Write(BU98R10_CMD_LED_CTRL);
BU98R10_0_Data_Write(0x12);
//R
BU98R10_0_Command_Write(0xA0); //SRR-SRF
width = rGrayLevel;
wTemp = (15 - width/4);
wTemp <<= 4;
wTemp |= (15 - width/4);
BU98R10_0_Data_Write(wTemp);
BU98R10_0_Command_Write(0xB8); //LRS
BU98R10_0_Data_Write(63 - width);
BU98R10_0_Command_Write(0xD0); //LRW
BU98R10_0_Data_Write(width);
//G
BU98R10_0_Command_Write(0xA8); //SGR-SGF
width = gGrayLevel;
wTemp = (15 - width/4);
wTemp <<= 4;
wTemp |= (15 - width/4);
BU98R10_0_Data_Write(wTemp);
BU98R10_0_Command_Write(0xC0); //LGS
BU98R10_0_Data_Write(63 - width);
BU98R10_0_Command_Write(0xD8); //LRW
BU98R10_0_Data_Write(width);
//B
BU98R10_0_Command_Write(0xB0); //SBR-SBF
width = bGrayLevel;
wTemp = (15 - width/4);
wTemp <<= 4;
wTemp |= (15 - width/4);
BU98R10_0_Data_Write(wTemp);
BU98R10_0_Command_Write(0xC8); //LBS
BU98R10_0_Data_Write(63 - width);
BU98R10_0_Command_Write(0xE0); //LBW
BU98R10_0_Data_Write(width);
}
*/
/******************************************************************************
函数名:BU98R10_Init
功 能:初始化BU98R10
参 数:无
返回值:无
******************************************************************************/
uint8_t
Get_BU98R10UpdateEn
(
void
)
{
return
BU98R10Update
.
En
;
}
BU98R10UpdateCtrlStruct
BU98R10Update
;
void
BU98R10_Init
(
void
)
{
uint8_t
i
;
if
(
BU98R10_InitFlag
==
1
)
{
//return;
}
BU98R10_InitFlag
=
1
;
#if BU98R10_WRITE_AT_SAME_TIME
#if BU98R10_COLORFUL_LCD_MODE
uint8_t
i
;
//软件复位
BU98R10_All_Command_Write
(
BU98R10_CMD_SWRST
);
//工作模式
BU98R10_All_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_RGB
);
//驱动控制
BU98R10_All_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
//帧刷新率
BU98R10_All_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_All_Data_Write
(
BU98R10_FRAME_FREQ
,
BU98R10_FRAME_FREQ
);
//色彩设置
#if(USE_NEW_COLORFUL_STRATEGY == 1)
//色彩设置初始化(注意,未做?芯片兼)
//BU98R10ColorInit(R_LEVEL, G_LEVEL, B_LEVEL);
#else //USE_NEW_COLORFUL_STRATEGY
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_CTRL
);
BU98R10_All_Data_Write
(
0x12
,
0x12
);
BU98R10_All_Command_Write
(
BU98R10_CMD_SEG_R
);
BU98R10_All_Data_Write
(
BU98R10_REG_SEG_R
,
BU98R10_REG_SEG_R
);
#if BU98R10_WRITE_AT_SAME_TIME
#if BU98R10_COLORFUL_LCD_MODE
BU98R10_All_Command_Write
(
BU98R10_CMD_SEG_G
);
BU98R10_All_Data_Write
(
BU98R10_REG_SEG_G
,
BU98R10_REG_SEG_G
);
BU98R10_All_Command_Write
(
BU98R10_CMD_SWRST
);
BU98R10_All_Command_Write
(
BU98R10_CMD_SEG_B
);
BU98R10_All_Data_Write
(
BU98R10_REG_SEG_B
,
BU98R10_REG_SEG_B
);
BU98R10_All_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_RGB
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_STARTR
);
BU98R10_All_Data_Write
(
BU98R10_LRS
,
BU98R10_LRS
);
BU98R10_All_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_STARTG
);
BU98R10_All_Data_Write
(
BU98R10_LGS
,
BU98R10_LGS
);
BU98R10_All_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_All_Data_Write
(
BU98R10_FRAME_FREQ
,
BU98R10_FRAME_FREQ
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_STARTB
);
BU98R10_All_Data_Write
(
BU98R10_LBS
,
BU98R10_LBS
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_CTRL
);
BU98R10_All_Data_Write
(
0x12
,
0x12
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_WIDTH
R
);
BU98R10_All_Data_Write
(
BU98R10_LRW
,
BU98R10_LRW
);
BU98R10_All_Command_Write
(
BU98R10_CMD_SEG_
R
);
BU98R10_All_Data_Write
(
BU98R10_REG_SEG_R
,
BU98R10_REG_SEG_R
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_WIDTH
G
);
BU98R10_All_Data_Write
(
BU98R10_LGW
,
BU98R10_LGW
);
BU98R10_All_Command_Write
(
BU98R10_CMD_SEG_
G
);
BU98R10_All_Data_Write
(
BU98R10_REG_SEG_G
,
BU98R10_REG_SEG_G
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_WIDTHB
);
BU98R10_All_Data_Write
(
BU98R10_LBW
,
BU98R10_LBW
);
#endif //USE_NEW_COLORFUL_STRATEGY
BU98R10_All_Command_Write
(
BU98R10_CMD_SEG_B
);
BU98R10_All_Data_Write
(
BU98R10_REG_SEG_B
,
BU98R10_REG_SEG_B
);
//清除RAM数据
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
0x00
,
0x00
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_STARTR
);
BU98R10_All_Data_Write
(
BU98R10_LRS
,
BU98R10_LRS
);
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_STARTG
);
BU98R10_All_Data_Write
(
BU98R10_LGS
,
BU98R10_LGS
);
for
(
i
=
0
;
i
<
90
;
i
++
)
{
BU98R10_All_Data_Write
(
BU98R10_DEFAULT_BYTE
,
BU98R10_DEFAULT_BYTE
);
}
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_STARTB
);
BU98R10_All_Data_Write
(
BU98R10_LBS
,
BU98R10_LBS
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_WIDTHR
);
BU98R10_All_Data_Write
(
BU98R10_LRW
,
BU98R10_LRW
);
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_WIDTHG
);
BU98R10_All_Data_Write
(
BU98R10_LGW
,
BU98R10_LGW
);
//开
显示
BU98R10_All_Command_Write
(
BU98R10_CMD_DISPON
);
BU98R10_All_Command_Write
(
BU98R10_CMD_LED_WIDTHB
);
BU98R10_All_Data_Write
(
BU98R10_LBW
,
BU98R10_LBW
);
#else //BU98R10_COLORFUL_LCD_MODE
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
0x00
,
0x00
);
//软件复位
BU98R10_All_Command_Write
(
BU98R10_CMD_SWRST
);
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
for
(
i
=
0
;
i
<
90
;
i
++
)
BU98R10_All_Data_Write
(
BU98R10_DEFAULT_BYTE
,
BU98R10_DEFAULT_BYTE
);
//工作模式
BU98R10_All_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_MONO
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
//驱动控制
BU98R10_All_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
//帧刷新率
BU98R10_All_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_All_Data_Write
(
BU98R10_FRAME_FREQ
,
BU98R10_FRAME_FREQ
);
BU98R10_All_Command_Write
(
BU98R10_CMD_DISPON
);
//清除RAM数据
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
0x00
,
0x00
);
#else
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10_All_Command_Write
(
BU98R10_CMD_SWRST
);
for
(
i
=
0
;
i
<
90
;
i
++
)
{
BU98R10_All_Data_Write
(
BU98R10_DEFAULT_BYTE
,
BU98R10_DEFAULT_BYTE
);
}
BU98R10_All_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_MONO
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10_All_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
BU98R10_All_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_All_Data_Write
(
BU98R10_FRAME_FREQ
,
BU98R10_FRAME_FREQ
);
//开
显示
BU98R10_All_Command_Write
(
BU98R10_CMD_DISPON
);
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
0x00
,
0x00
);
#endif // BU98R10_COLORFUL_LCD_MODE
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
for
(
i
=
0
;
i
<
90
;
i
++
)
BU98R10_All_Data_Write
(
BU98R10_DEFAULT_BYTE
,
BU98R10_DEFAULT_BYTE
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
#else //BU98R10_WRITE_AT_SAME_TIME
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
BU98R10_All_Command_Write
(
BU98R10_CMD_DISPON
);
#endif
#else
#if BU98R10_COLORFUL_LCD_MODE
#if USE_BU98R10_CHIP_0
//软件复位
BU98R10_0_Command_Write
(
BU98R10_CMD_SWRST
);
//工作模式
BU98R10_0_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_RGB
);
//驱动控制
BU98R10_0_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SWRST
);
//帧刷新率
BU98R10_0_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_0_Data_Write
(
BU98R10_FRAME_FREQ
);
BU98R10_0_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_RGB
);
//色彩设置
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_CTRL
);
BU98R10_0_Data_Write
(
0x12
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SEG_R
);
BU98R10_0_Data_Write
(
BU98R10_REG_SEG_R
);
BU98R10_0_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_0_Data_Write
(
BU98R10_FRAME_FREQ
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SEG_G
);
BU98R10_0_Data_Write
(
BU98R10_REG_SEG_G
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_CTRL
);
BU98R10_0_Data_Write
(
0x12
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SEG_B
);
BU98R10_0_Data_Write
(
BU98R10_REG_SEG_B
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SEG_R
);
BU98R10_0_Data_Write
(
BU98R10_REG_SEG_R
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_STARTR
);
BU98R10_0_Data_Write
(
BU98R10_LRS
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SEG_G
);
BU98R10_0_Data_Write
(
BU98R10_REG_SEG_G
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_STARTG
);
BU98R10_0_Data_Write
(
BU98R10_LGS
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SEG_B
);
BU98R10_0_Data_Write
(
BU98R10_REG_SEG_B
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_STARTB
);
BU98R10_0_Data_Write
(
BU98R10_LB
S
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_STARTR
);
BU98R10_0_Data_Write
(
BU98R10_LR
S
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_WIDTHR
);
BU98R10_0_Data_Write
(
BU98R10_LRW
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_STARTG
);
BU98R10_0_Data_Write
(
BU98R10_LGS
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_WIDTHG
);
BU98R10_0_Data_Write
(
BU98R10_LGW
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_STARTB
);
BU98R10_0_Data_Write
(
BU98R10_LBS
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_WIDTHB
);
BU98R10_0_Data_Write
(
BU98R10_LB
W
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_WIDTHR
);
BU98R10_0_Data_Write
(
BU98R10_LR
W
);
//清除RAM数据
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_0_Data_Write
(
0x00
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_WIDTHG
);
BU98R10_0_Data_Write
(
BU98R10_LGW
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10_0_Command_Write
(
BU98R10_CMD_LED_WIDTHB
);
BU98R10_0_Data_Write
(
BU98R10_LBW
);
for
(
i
=
0
;
i
<
90
;
i
++
)
{
BU98R10_0_Data_Write
(
BU98R10_DEFAULT_BYTE
);
}
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_0_Data_Write
(
0x00
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
for
(
i
=
0
;
i
<
90
;
i
++
)
BU98R10_0_Data_Write
(
BU98R10_DEFAULT_BYTE
);
//开显示
BU98R10_0_Command_Write
(
BU98R10_CMD_DISPON
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
#endif //USE_BU98R10_CHIP_0
BU98R10_0_Command_Write
(
BU98R10_CMD_DISPON
);
#endif
#if USE_BU98R10_CHIP_1
//软件复位
BU98R10_1_Command_Write
(
BU98R10_CMD_SWRST
);
//工作模式
BU98R10_1_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_RGB
);
//驱动控制
BU98R10_1_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
//帧刷新率
BU98R10_1_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_1_Data_Write
(
BU98R10_FRAME_FREQ
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SWRST
);
//色彩设置
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_CTRL
);
BU98R10_1_Data_Write
(
0x12
);
BU98R10_1_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_RGB
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SEG_R
);
BU98R10_1_Data_Write
(
BU98R10_REG_SEG_R
);
BU98R10_1_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SEG_G
);
BU98R10_1_Data_Write
(
BU98R10_REG_SEG_G
);
BU98R10_1_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_1_Data_Write
(
BU98R10_FRAME_FREQ
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SEG_B
);
BU98R10_1_Data_Write
(
BU98R10_REG_SEG_B
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_CTRL
);
BU98R10_1_Data_Write
(
0x12
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_START
R
);
BU98R10_1_Data_Write
(
BU98R10_LRS
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SEG_
R
);
BU98R10_1_Data_Write
(
BU98R10_REG_SEG_R
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_START
G
);
BU98R10_1_Data_Write
(
BU98R10_LGS
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SEG_
G
);
BU98R10_1_Data_Write
(
BU98R10_REG_SEG_G
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_START
B
);
BU98R10_1_Data_Write
(
BU98R10_LBS
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SEG_
B
);
BU98R10_1_Data_Write
(
BU98R10_REG_SEG_B
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_WIDTH
R
);
BU98R10_1_Data_Write
(
BU98R10_LRW
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_START
R
);
BU98R10_1_Data_Write
(
BU98R10_LRS
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_WIDTH
G
);
BU98R10_1_Data_Write
(
BU98R10_LGW
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_START
G
);
BU98R10_1_Data_Write
(
BU98R10_LGS
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_WIDTH
B
);
BU98R10_1_Data_Write
(
BU98R10_LBW
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_START
B
);
BU98R10_1_Data_Write
(
BU98R10_LBS
);
//清除RAM数据
BU98R10_1_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_1_Data_Write
(
0x00
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_WIDTHR
);
BU98R10_1_Data_Write
(
BU98R10_LRW
);
BU98R10_1_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_WIDTHG
);
BU98R10_1_Data_Write
(
BU98R10_LGW
);
for
(
i
=
0
;
i
<
90
;
i
++
)
{
BU98R10_1_Data_Write
(
BU98R10_DEFAULT_BYTE
);
}
BU98R10_1_Command_Write
(
BU98R10_CMD_LED_WIDTHB
);
BU98R10_1_Data_Write
(
BU98R10_LBW
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
BU98R10_1_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_1_Data_Write
(
0x00
);
//开显示
BU98R10_1_Command_Write
(
BU98R10_CMD_DISPON
);
BU98R10_1_Command_Write
(
BU98R10_CMD_DATWR
);
for
(
i
=
0
;
i
<
90
;
i
++
)
BU98R10_1_Data_Write
(
BU98R10_DEFAULT_BYTE
);
#endif //USE_BU98R10_CHIP_1
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
#else //BU98R10_COLORFUL_LCD_MODE
BU98R10_1_Command_Write
(
BU98R10_CMD_DISPON
);
#endif
#else
#if USE_BU98R10_CHIP_0
//软件复位
BU98R10_0_Command_Write
(
BU98R10_CMD_SWRST
);
//工作模式
BU98R10_0_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_MONO
);
BU98R10_0_Command_Write
(
BU98R10_CMD_SWRST
);
//驱动控制
BU98R10_0_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
BU98R10_0_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_MONO
);
//帧刷新率
BU98R10_0_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_0_Data_Write
(
BU98R10_FRAME_FREQ
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
//清除RAM数据
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_0_Data_Write
(
0x00
);
BU98R10_0_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_0_Data_Write
(
BU98R10_FRAME_FREQ
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_0_Data_Write
(
0x00
);
for
(
i
=
0
;
i
<
90
;
i
++
)
{
BU98R10_0_Data_Write
(
BU98R10_DEFAULT_BYTE
);
}
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
for
(
i
=
0
;
i
<
90
;
i
++
)
BU98R10_0_Data_Write
(
BU98R10_DEFAULT_BYTE
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip0DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip0DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
//开显示
BU98R10_0_Command_Write
(
BU98R10_CMD_DISPON
);
#endif //USE_BU98R10_CHIP_0
BU98R10_0_Command_Write
(
BU98R10_CMD_DISPON
);
#endif
#if USE_BU98R10_CHIP_1
//软件复位
BU98R10_1_Command_Write
(
BU98R10_CMD_SWRST
);
//工作模式
BU98R10_1_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_MONO
);
//驱动控制
BU98R10_1_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
//帧刷新率
BU98R10_1_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_1_Data_Write
(
BU98R10_FRAME_FREQ
);
//清除RAM数据
BU98R10_1_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_1_Data_Write
(
0x00
);
BU98R10_1_Command_Write
(
BU98R10_CMD_SWRST
);
BU98R10_1_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10_1_Command_Write
(
BU98R10_CMD_ICSET
|
BU98R10_PAR_ICSET_MONO
);
for
(
i
=
0
;
i
<
90
;
i
++
)
{
BU98R10_1_Data_Write
(
BU98R10_DEFAULT_BYTE
);
}
BU98R10_1_Command_Write
(
BU98R10_CMD_DRVCTRL
|
BU98R10_PAR_DRVCTRL_NORMAL
);
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
BU98R10_1_Command_Write
(
BU98R10_CMD_FREQ
);
BU98R10_1_Data_Write
(
BU98R10_FRAME_FREQ
);
//开
显示
BU98R10_1_Command_Write
(
BU98R10_CMD_DISPON
);
BU98R10_1_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_1_Data_Write
(
0x00
);
#endif //USE_BU98R10_CHIP_1
BU98R10_1_Command_Write
(
BU98R10_CMD_DATWR
);
for
(
i
=
0
;
i
<
90
;
i
++
)
BU98R10_1_Data_Write
(
BU98R10_DEFAULT_BYTE
);
#endif //BU98R10_COLORFUL_LCD_MODE
for
(
i
=
0
;
i
<
BU98R10_DDRAM_SIZE
;
i
++
)
{
BU98R10Chip1DDRAM
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
BU98R10Chip1DDRAMBackup
.
Byte
[
i
]
=
BU98R10_DEFAULT_BYTE
;
}
#endif //BU98R10_WRITE_AT_SAME_TIME
BU98R10_1_Command_Write
(
BU98R10_CMD_DISPON
);
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
=
0
;
#endif
#endif
#endif
BU98R10Update
.
Chip
=
0
;
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
=
0
;
#if USE_BU98R10_CHIP_0
BU98R10Update
.
Chip
=
0
;
#elif USE_BU98R10_CHIP_1
BU98R10Update
.
Chip
=
1
;
#else
BU98R10Update
.
Chip
=
255
;
#endif
}
/******************************************************************************
函数名:BU98R10_Shutdown
功 能:关闭BU98R10显示,使其进入低功耗模式
参 数:无
返回值:无
******************************************************************************/
void
BU98R10_Shutdown
(
void
)
{
BU98R10_InitFlag
=
0U
;
#if BU98R10_WRITE_AT_SAME_TIME
BU98R10_All_Command_Write
(
BU98R10_CMD_DISPOFF
);
#if BU98R10_WRITE_AT_SAME_TIME
BU98R10_All_Command_Write
(
BU98R10_CMD_DISPOFF
);
#else
#if USE_BU98R10_CHIP_0
BU98R10_0_Command_Write
(
BU98R10_CMD_DISPOFF
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DISPOFF
);
#endif
#if USE_BU98R10_CHIP_1
BU98R10_1_Command_Write
(
BU98R10_CMD_DISPOFF
);
BU98R10_1_Command_Write
(
BU98R10_CMD_DISPOFF
);
#endif
#endif
}
/******************************************************************************
函数名:BU98R10_Update_Request
功 能:请求刷新BU98R10的段码显示
参 数:无
返回值:无
******************************************************************************/
uint8_t
u8BU98R10CheckCount
=
0
;
void
BU98R10_Update_Request
(
void
)
{
BU98R10Update
.
En
=
1
;
LedUpdateDeviceFlg
=
1
;
// if (g_sysFlag.Bits.AccSaveState)
//{
// //if (u8BU98R10CheckCount < 20)
// //{
// // BU98R10Update.En = 1;
// // u8BU98R10CheckCount++;
// //}
// BU98R10Update.En = 1;
// }
// else
{
u8BU98R10CheckCount
=
0
;
BU98R10Update
.
En
=
1
;
}
#if USE_BU98R10_CHIP_0
BU98R10Update
.
Chip
=
0
;
#elif USE_BU98R10_CHIP_1
BU98R10Update
.
Chip
=
1
;
#else
BU98R10Update
.
Chip
=
255
;
#endif
}
/******************************************************************************
函数名:BU98R10_Update_Service
功 能:BU98R10段码显示刷新服务
参 数:无
返回值:无
*******************************************************************************
注 意:该服务函数必须每于系统空闲时实时调用
******************************************************************************/
void
BU98R10_Update_Service
(
void
)
{
uint8_t
i
=
0
;
if
(
BU98R10Update
.
En
)
{
#if BU98R10_WRITE_AT_SAME_TIME
if
(
BU98R10Update
.
En
)
{
switch
(
BU98R10Update
.
Step
)
{
case
0
:
//请求写地址
//前15个SEG空闲
BU98R10Update
.
Addr
=
7
;
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
BU98R10Update
.
Addr
,
BU98R10Update
.
Addr
);
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
1
;
break
;
case
1
:
for
(
i
=
0
;
i
<
6
;
i
++
)
{
BU98R10_All_Data_Write
(
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
],
BU98R10Chip1DDRAM
.
Byte
[
BU98R10Update
.
Addr
]);
if
(
BU98R10Update
.
Addr
>=
30
)
{
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
BU98R10Update
.
Addr
,
BU98R10Update
.
Addr
);
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
2
;
break
;
}
else
{
//地址调整
BU98R10Update
.
Addr
++
;
}
}
break
;
case
2
:
for
(
i
=
0
;
i
<
6
;
i
++
)
{
BU98R10_All_Data_Write
(
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
],
BU98R10Chip1DDRAM
.
Byte
[
BU98R10Update
.
Addr
]);
if
(
BU98R10Update
.
Addr
>=
60
)
{
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
BU98R10Update
.
Addr
,
BU98R10Update
.
Addr
);
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
3
;
break
;
}
else
{
//地址调整
BU98R10Update
.
Addr
++
;
}
}
break
;
case
3
:
for
(
i
=
0
;
i
<
6
;
i
++
)
{
BU98R10_All_Data_Write
(
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
],
BU98R10Chip1DDRAM
.
Byte
[
BU98R10Update
.
Addr
]);
if
(
BU98R10Update
.
Addr
==
86
)
{
BU98R10Update
.
Addr
=
0
;
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
break
;
}
else
{
//地址调整
BU98R10Update
.
Addr
++
;
}
}
break
;
default
:
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
=
0
;
break
;
}
}
switch
(
BU98R10Update
.
Step
)
{
case
0
:
if
((
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
]
!=
BU98R10Chip0DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
])
||
(
BU98R10Chip1DDRAM
.
Byte
[
BU98R10Update
.
Addr
]
!=
BU98R10Chip1DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]))
{
BU98R10Chip0DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]
=
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
];
BU98R10Chip1DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]
=
BU98R10Chip1DDRAM
.
Byte
[
BU98R10Update
.
Addr
];
if
(
BU98R10Update
.
Cont
)
BU98R10Update
.
Step
=
4
;
else
BU98R10Update
.
Step
=
1
;
}
else
{
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
++
;
if
(
BU98R10Update
.
Addr
>=
BU98R10_DDRAM_SIZE
)
{
BU98R10Update
.
Addr
=
0
;
BU98R10Update
.
En
=
0
;
}
}
break
;
case
1
:
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10Update
.
Step
=
2
;
break
;
case
2
:
#if BU98R10_COLORFUL_LCD_MODE
BU98R10_All_Data_Write
(
BU98R10Update
.
Addr
,
BU98R10Update
.
Addr
);
#else
BU98R10_All_Data_Write
(
BU98R10Update
.
Addr
*
4
,
BU98R10Update
.
Addr
*
4
);
#endif
BU98R10Update
.
Step
=
3
;
break
;
case
3
:
BU98R10_All_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
4
;
break
;
case
4
:
BU98R10_All_Data_Write
(
BU98R10Chip0DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
],
BU98R10Chip1DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]);
BU98R10Update
.
Step
=
5
;
break
;
case
5
:
BU98R10Update
.
Addr
++
;
if
(
BU98R10Update
.
Addr
>=
BU98R10_DDRAM_SIZE
)
{
BU98R10Update
.
Addr
=
0
;
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Cont
=
0
;
}
else
BU98R10Update
.
Cont
=
1
;
BU98R10Update
.
Step
=
0
;
break
;
default:
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
=
0
;
break
;
}
#else
if
(
BU98R10Update
.
En
)
{
switch
(
BU98R10Update
.
Step
)
{
case
0
:
//请求写地址
//前11个SEG空闲
BU98R10Update
.
Addr
=
5
;
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_0_Data_Write
(
BU98R10Update
.
Addr
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
1
;
break
;
case
1
:
for
(
i
=
0
;
i
<
6
;
i
++
)
{
//写入数据 5--18
BU98R10_0_Data_Write
(
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
]);
if
(
BU98R10Update
.
Addr
==
18
)
{
//---SEG38
BU98R10Update
.
Addr
=
80
;
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_0_Data_Write
(
BU98R10Update
.
Addr
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
2
;
break
;
}
else
{
//地址调整
BU98R10Update
.
Addr
++
;
}
}
break
;
case
2
:
for
(
i
=
0
;
i
<
6
;
i
++
)
{
//写入数据 80-86
BU98R10_0_Data_Write
(
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
]);
if
(
BU98R10Update
.
Addr
==
86
)
{
//---SEG174
BU98R10Update
.
Addr
=
19
;
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_0_Data_Write
(
BU98R10Update
.
Addr
);
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
3
;
break
;
}
else
{
//地址调整
BU98R10Update
.
Addr
++
;
}
}
break
;
case
3
:
for
(
i
=
0
;
i
<
6
;
i
++
)
{
//写入数据19-79
BU98R10_0_Data_Write
(
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
]);
if
(
BU98R10Update
.
Addr
==
79
)
{
BU98R10Update
.
Addr
=
0
;
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
break
;
}
else
{
//地址调整
BU98R10Update
.
Addr
++
;
}
}
break
;
default
:
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
=
0
;
break
;
}
}
#if USE_BU98R10_CHIP_0
if
(
BU98R10Update
.
Chip
==
0
)
{
switch
(
BU98R10Update
.
Step
)
{
case
0
:
if
(
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
]
!=
BU98R10Chip0DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
])
{
BU98R10Chip0DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]
=
BU98R10Chip0DDRAM
.
Byte
[
BU98R10Update
.
Addr
];
if
(
BU98R10Update
.
Cont
)
BU98R10Update
.
Step
=
4
;
else
BU98R10Update
.
Step
=
1
;
}
else
{
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
++
;
if
(
BU98R10Update
.
Addr
>=
BU98R10_DDRAM_SIZE
)
{
BU98R10Update
.
Addr
=
0
;
#if USE_BU98R10_CHIP_1
BU98R10Update
.
Chip
=
1
;
#else
BU98R10Update
.
En
=
0
;
#endif
}
}
break
;
}
case
1
:
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10Update
.
Step
=
2
;
break
;
#define BU98R10_DELAY_NS \
__NOP(); \
__NOP(); \
__NOP();
// __NOP(); \
// __NOP(); \
// __NOP(); \
// __NOP();
case
2
:
#if BU98R10_COLORFUL_LCD_MODE
BU98R10_0_Data_Write
(
BU98R10Update
.
Addr
);
#else
BU98R10_0_Data_Write
(
BU98R10Update
.
Addr
*
4
);
#endif
BU98R10Update
.
Step
=
3
;
break
;
case
3
:
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
4
;
break
;
case
4
:
BU98R10_0_Data_Write
(
BU98R10Chip0DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]);
BU98R10Update
.
Step
=
5
;
break
;
case
5
:
BU98R10Update
.
Addr
++
;
if
(
BU98R10Update
.
Addr
>=
BU98R10_DDRAM_SIZE
)
{
BU98R10Update
.
Addr
=
0
;
BU98R10Update
.
Cont
=
0
;
#if USE_BU98R10_CHIP_1
BU98R10Update
.
Chip
=
1
;
#else
BU98R10Update
.
En
=
0
;
#endif
}
else
BU98R10Update
.
Cont
=
1
;
BU98R10Update
.
Step
=
0
;
break
;
default:
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
=
0
;
break
;
}
}
#if USE_BU98R10_CHIP_0
/******************************************************************************
函数名:BU98R10_0_Command_Write
功 能:向BU98R10芯片0写控制命令
参 数:Cmd:要写入的命令
返回值:无
******************************************************************************/
void
BU98R10_0_Command_Write
(
uint8_t
Cmd
)
{
uint8_t
i
;
//D/C = 0,表示发送命令
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
&=
~
(
1
<<
SEG_LCD_SD_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
&=
~
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_ClrBit
// PORT_ClrBit(SEG_LCD_SD);
// PORT_ClrBit(SEG_LCD_SCL);
// PORT_ClrBit(SEG_LCD_CSB);
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// PORT_SetBit(SEG_LCD_SCL);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
// PORT_ClrBit(SEG_LCD_SCL);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
if
(
Cmd
&
0x80
)
// PORT_SetBit(SEG_LCD_SD);
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
|=
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_SetBit
else
// PORT_ClrBit(SEG_LCD_SD);
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
&=
~
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_ClrBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
//PORT_SetBit(SEG_LCD_SCL);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
Cmd
<<=
1
;
}
//PORT_SetBit(SEG_LCD_CSB);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
|=
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_SetBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
}
#if USE_BU98R10_CHIP_1
else
if
(
BU98R10Update
.
Chip
==
1
)
#endif
/******************************************************************************
函数名:BU98R10_0_Data_Write
功 能:向BU98R10芯片0写数据
参 数:Dat:要写入的数据
返回值:无
******************************************************************************/
void
BU98R10_0_Data_Write
(
uint8_t
Dat
)
{
uint8_t
i
;
//D/C = 1,表示发送数据
//PORT_SetBit(SEG_LCD_SD);
// PORT_ClrBit(SEG_LCD_SCL);
// PORT_ClrBit(SEG_LCD_CSB);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
|=
(
1
<<
SEG_LCD_SD_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
&=
~
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_ClrBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// PORT_SetBit(SEG_LCD_SCL);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
//PORT_ClrBit(SEG_LCD_SCL);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
if
(
Dat
&
0x80
)
//PORT_SetBit(SEG_LCD_SD);
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
|=
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_SetBit
else
//PORT_ClrBit(SEG_LCD_SD);
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
&=
~
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_ClrBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
//PORT_SetBit(SEG_LCD_SCL);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
Dat
<<=
1
;
}
//PORT_SetBit(SEG_LCD_CSB);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
|=
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_SetBit
BU98R10_DELAY_NS
;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
}
#elif USE_BU98R10_CHIP_1
if
(
BU98R10Update
.
Chip
==
1
)
#endif
#if USE_BU98R10_CHIP_1
/******************************************************************************
函数名:BU98R10_1_Command_Write
功 能:向BU98R10芯片1写控制命令
参 数:Cmd:要写入的命令
返回值:无
******************************************************************************/
void
BU98R10_1_Command_Write
(
uint8_t
Cmd
)
{
uint8_t
i
;
#if USE_BU98R10_CHIP_1
{
switch
(
BU98R10Update
.
Step
)
{
case
0
:
if
(
BU98R10Chip1DDRAM
.
Byte
[
BU98R10Update
.
Addr
]
!=
BU98R10Chip1DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
])
{
BU98R10Chip1DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]
=
BU98R10Chip1DDRAM
.
Byte
[
BU98R10Update
.
Addr
];
if
(
BU98R10Update
.
Cont
)
BU98R10Update
.
Step
=
4
;
else
BU98R10Update
.
Step
=
1
;
}
else
{
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
++
;
if
(
BU98R10Update
.
Addr
>=
BU98R10_DDRAM_SIZE
)
{
BU98R10Update
.
Addr
=
0
;
BU98R10Update
.
En
=
0
;
}
}
break
;
case
1
:
BU98R10_0_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10Update
.
Step
=
2
;
break
;
case
2
:
#if BU98R10_COLORFUL_LCD_MODE
BU98R10_0_Data_Write
(
BU98R10Update
.
Addr
);
#else
BU98R10_0_Data_Write
(
BU98R10Update
.
Addr
*
4
);
#endif
BU98R10Update
.
Step
=
3
;
break
;
case
3
:
BU98R10_0_Command_Write
(
BU98R10_CMD_DATWR
);
BU98R10Update
.
Step
=
4
;
break
;
case
4
:
BU98R10_0_Data_Write
(
BU98R10Chip1DDRAMBackup
.
Byte
[
BU98R10Update
.
Addr
]);
BU98R10Update
.
Step
=
5
;
break
;
case
5
:
BU98R10Update
.
Addr
++
;
if
(
BU98R10Update
.
Addr
>=
BU98R10_DDRAM_SIZE
)
{
BU98R10Update
.
Addr
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
En
=
0
;
}
else
BU98R10Update
.
Cont
=
1
;
BU98R10Update
.
Step
=
0
;
break
;
default:
BU98R10Update
.
En
=
0
;
BU98R10Update
.
Step
=
0
;
BU98R10Update
.
Cont
=
0
;
BU98R10Update
.
Addr
=
0
;
break
;
}
}
#endif
#if ((USE_BU98R10_CHIP_0) || (USE_BU98R10_CHIP_1))
else
#endif
BU98R10Update
.
En
=
0
;
//D/C = 0,表示发送命令
PORT_ClrBit
(
SEG_LCD_SD1
);
PORT_ClrBit
(
SEG_LCD_SCL1
);
PORT_ClrBit
(
SEG_LCD_CSB1
);
#endif
}
}
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
#if USE_BU98R10_CHIP_0
void
BU98R10_0_Command_Write
(
uint8_t
Cmd
)
{
uint8_t
i
;
PORT_SetBit
(
SEG_LCD_SCL1
);
/* SD 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&=
~
(
1
<<
SEG_LCD0_SD_PIN
);
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
PORT_ClrBit
(
SEG_LCD_SCL1
);
/* CS 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
&=
~
(
1
<<
SEG_LCD0_CS_PIN
);
if
(
Cmd
&
0x80
)
{
PORT_SetBit
(
SEG_LCD_SD1
);
}
else
{
PORT_ClrBit
(
SEG_LCD_SD1
);
}
__NOP
();
__NOP
();
__NOP
();
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
PORT_SetBit
(
SEG_LCD_SCL1
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
if
(
Cmd
&
0x80
)
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
else
/* SD 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&=
~
(
1
<<
SEG_LCD0_SD_PIN
);
Cmd
<<=
1
;
}
__NOP
();
__NOP
();
__NOP
();
PORT_SetBit
(
SEG_LCD_CSB1
);
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
Cmd
<<=
1
;
}
/* CS 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
|=
(
1
<<
SEG_LCD0_CS_PIN
);
}
/******************************************************************************
函数名:BU98R10_1_Data_Write
功 能:向BU98R10芯片1写数据
参 数:Dat:要写入的数据
返回值:无
******************************************************************************/
void
BU98R10_1_Data_Write
(
uint8_t
Dat
)
void
BU98R10_0_Data_Write
(
uint8_t
Dat
)
{
uint8_t
i
;
uint8_t
i
;
//D/C = 1,表示发送数据
PORT_SetBit
(
SEG_LCD_SD1
);
PORT_ClrBit
(
SEG_LCD_SCL1
);
PORT_ClrBit
(
SEG_LCD_CSB1
);
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
PORT_SetBit
(
SEG_LCD_SCL1
);
/* CS 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
&=
~
(
1
<<
SEG_LCD0_CS_PIN
);
__NOP
();
__NOP
();
__NOP
();
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
PORT_ClrBit
(
SEG_LCD_SCL1
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
if
(
Dat
&
0x80
)
{
PORT_SetBit
(
SEG_LCD_SD1
);
}
else
{
PORT_ClrBit
(
SEG_LCD_SD1
);
}
if
(
Dat
&
0x80
)
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
else
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
__NOP
();
__NOP
();
__NOP
();
PORT_SetBit
(
SEG_LCD_SCL1
);
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
Dat
<<=
1
;
}
Dat
<<=
1
;
}
/* CS 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
|=
(
1
<<
SEG_LCD0_CS_PIN
);
}
#endif
PORT_SetBit
(
SEG_LCD_CSB1
);
#if USE_BU98R10_CHIP_1
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
BU98R10_DELAY_NS
;
void
BU98R10_1_Command_Write
(
uint8_t
Cmd
)
{
uint8_t
i
;
/* SD 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
/* CS 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
&=
~
(
1
<<
SEG_LCD1_CS_PIN
);
__NOP
();
__NOP
();
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
if
(
Cmd
&
0x80
)
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
|=
(
1
<<
SEG_LCD1_SD_PIN
);
else
/* SD 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
__NOP
();
__NOP
();
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
Cmd
<<=
1
;
}
/* CS 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
|=
(
1
<<
SEG_LCD0_CS_PIN
);
}
void
BU98R10_1_Data_Write
(
uint8_t
Dat
)
{
uint8_t
i
;
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
|=
(
1
<<
SEG_LCD1_SD_PIN
);
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
/* CS 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
&=
~
(
1
<<
SEG_LCD1_CS_PIN
);
__NOP
();
__NOP
();
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
if
(
Dat
&
0x80
)
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
|=
(
1
<<
SEG_LCD1_SD_PIN
);
else
/* SD 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
__NOP
();
__NOP
();
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
Dat
<<=
1
;
}
/* CS 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
|=
(
1
<<
SEG_LCD0_CS_PIN
);
}
#endif
#if BU98R10_WRITE_AT_SAME_TIME
/******************************************************************************
函数名:BU98R10_All_Command_Write
功 能:同时向BU98R10芯片0和芯片1写控制命令
参 数:Cmd:要写入的命令
返回值:无
******************************************************************************/
#if BU98R10_WRITE_AT_SAME_TIME
void
BU98R10_All_Command_Write
(
uint8_t
Cmd
)
{
uint8_t
i
;
//D/C = 0,表示发送命令
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
&=
~
(
1
<<
SEG_LCD_SD_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
&=
~
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD1_PORT
))
&=
~
(
1
<<
SEG_LCD_SD1_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS1_PORT
))
&=
~
(
1
<<
SEG_LCD_CS1_PIN
);
//PORT_ClrBit
// PORT_ClrBit(SEG_LCD_SD);
// PORT_ClrBit(SEG_LCD_SD1);
// PORT_ClrBit(SEG_LCD_SCL);
// PORT_ClrBit(SEG_LCD_SCL1);
// PORT_ClrBit(SEG_LCD_CSB);
// PORT_ClrBit(SEG_LCD_CSB1);
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// PORT_SetBit(SEG_LCD_SCL);
// PORT_SetBit(SEG_LCD_SCL1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
|=
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_SetBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
// PORT_ClrBit(SEG_LCD_SCL);
// PORT_ClrBit(SEG_LCD_SCL1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_ClrBit
if
(
Cmd
&
0x80
)
{
// PORT_SetBit(SEG_LCD_SD);
// PORT_SetBit(SEG_LCD_SD1);
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
|=
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_SetBit
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD1_PORT
))
|=
(
1
<<
SEG_LCD_SD1_PIN
);
}
//PORT_SetBit
}
else
{
// PORT_ClrBit(SEG_LCD_SD);
// PORT_ClrBit(SEG_LCD_SD1);
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
&=
~
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_ClrBit
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD1_PORT
))
&=
~
(
1
<<
SEG_LCD_SD1_PIN
);
}
//PORT_ClrBit
}
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// PORT_SetBit(SEG_LCD_SCL);
// PORT_SetBit(SEG_LCD_SCL1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
|=
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_SetBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
Cmd
<<=
1
;
}
// PORT_SetBit(SEG_LCD_CSB);
// PORT_SetBit(SEG_LCD_CSB1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
|=
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS1_PORT
))
|=
(
1
<<
SEG_LCD_CS1_PIN
);
//PORT_SetBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
uint8_t
i
;
/* SD/SCL/CS 输出低电平 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&=
~
(
1
<<
SEG_LCD0_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
&=
~
(
1
<<
SEG_LCD0_CS_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
&=
~
(
1
<<
SEG_LCD1_CS_PIN
);
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
if
(
Cmd
&
0x80
)
{
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
|=
(
1
<<
SEG_LCD1_SD_PIN
);
}
else
{
/* SD 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&=
~
(
1
<<
SEG_LCD0_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
}
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
Cmd
<<=
1
;
}
/* CS 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
|=
(
1
<<
SEG_LCD0_CS_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
|=
(
1
<<
SEG_LCD1_CS_PIN
);
}
/******************************************************************************
函数名:BU98R10_All_Data_Write
功 能:同时向BU98R10芯片0和芯片1写数据
参 数:Dat0:要写入BU98R10芯片0的数据
Dat1:要写入BU98R10芯片1的数据
返回值:无
******************************************************************************/
void
BU98R10_All_Data_Write
(
uint8_t
Dat0
,
uint8_t
Dat1
)
{
uint8_t
i
;
//D/C = 1,表示发送数据
// PORT_SetBit(SEG_LCD_SD);
// PORT_SetBit(SEG_LCD_SD1);
// PORT_ClrBit(SEG_LCD_SCL);
// PORT_ClrBit(SEG_LCD_SCL1);
// PORT_ClrBit(SEG_LCD_CSB);
// PORT_ClrBit(SEG_LCD_CSB1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
|=
(
1
<<
SEG_LCD_SD_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
&=
~
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD1_PORT
))
|=
(
1
<<
SEG_LCD_SD1_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS1_PORT
))
&=
~
(
1
<<
SEG_LCD_CS1_PIN
);
//PORT_ClrBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// PORT_SetBit(SEG_LCD_SCL);
// PORT_SetBit(SEG_LCD_SCL1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
|=
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_SetBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
// PORT_ClrBit(SEG_LCD_SCL);
// PORT_ClrBit(SEG_LCD_SCL1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_ClrBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
&=
~
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_ClrBit
if
(
Dat0
&
0x80
)
// { PORT_SetBit(SEG_LCD_SD); }
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
|=
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_SetBit
else
// { PORT_ClrBit(SEG_LCD_SD); }
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD_PORT
))
&=
~
(
1
<<
SEG_LCD_SD_PIN
);
}
//PORT_ClrBit
if
(
Dat1
&
0x80
)
// { PORT_SetBit(SEG_LCD_SD1); }
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD1_PORT
))
|=
(
1
<<
SEG_LCD_SD1_PIN
);
}
//PORT_SetBit
else
// { PORT_ClrBit(SEG_LCD_SD1); }
{
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SD1_PORT
))
&=
~
(
1
<<
SEG_LCD_SD1_PIN
);
}
//PORT_ClrBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// PORT_SetBit(SEG_LCD_SCL);
// PORT_SetBit(SEG_LCD_SCL1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL_PORT
))
|=
(
1
<<
SEG_LCD_SCL_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_SCL1_PORT
))
|=
(
1
<<
SEG_LCD_SCL1_PIN
);
//PORT_SetBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
Dat0
<<=
1
;
Dat1
<<=
1
;
}
// PORT_SetBit(SEG_LCD_CSB);
// PORT_SetBit(SEG_LCD_CSB1);
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS_PORT
))
|=
(
1
<<
SEG_LCD_CS_PIN
);
//PORT_SetBit
*
((
volatile
uint8_t
*
)(
0x40040300UL
+
SEG_LCD_CS1_PORT
))
|=
(
1
<<
SEG_LCD_CS1_PIN
);
//PORT_SetBit
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
// BU98R10_DELAY_NS;
}
uint8_t
i
;
#if 0
static void BU98R10_All_ReadRam(uint8_t addr, uint8_t *data0, uint8_t *data1)
{
uint8_t i;
uint8_t Cmd = 0x09;
uint8_t wdata0 = 0;
uint8_t wdata1 = 0;
BU98R10_All_Command_Write(BU98R10_CMD_ADSET);
BU98R10_All_Data_Write(addr, addr);
Cmd = 0x09;
// D/C = 0,表示发送命令
//SegLCD_Set_SD(0);
//SegLCD_Set_SCL(0);
//SegLCD_Set_CSB(0);
//PORT_ClrBit(SEG_LCD_SD);
//PORT_ClrBit(SEG_LCD_SCL);
//PORT_ClrBit(SEG_LCD_CSB);
PORT_ClrBit(SEG_LCD_SD1);
PORT_ClrBit(SEG_LCD_SCL1);
PORT_ClrBit(SEG_LCD_CSB1);
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
//SegLCD_Set_SCL(1);
//PORT_SetBit(SEG_LCD_SCL);
PORT_SetBit(SEG_LCD_SCL1);
for (i = 0; i < 8; i++) {
//SegLCD_Set_SCL(0);
//PORT_ClrBit(SEG_LCD_SCL);
PORT_ClrBit(SEG_LCD_SCL1);
if (Cmd & 0x80) {
//SegLCD_Set_SD(1);
//PORT_SetBit(SEG_LCD_SD);
PORT_SetBit(SEG_LCD_SD1);
}
else {
//SegLCD_Set_SD(0);
//PORT_ClrBit(SEG_LCD_SD);
PORT_ClrBit(SEG_LCD_SD1);
}
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
//SegLCD_Set_SCL(1);
//PORT_SetBit(SEG_LCD_SCL);
PORT_SetBit(SEG_LCD_SCL1);
Cmd <<= 1;
}
//SegLCD_Set_SD_Dir(0);
//PORT_Init(SEG_LCD_SD, INPUT);
PORT_Init(SEG_LCD_SD1, INPUT);
//SegLCD_Set_SCL(0);
//PORT_ClrBit(SEG_LCD_SCL);
PORT_ClrBit(SEG_LCD_SCL1);
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
//SegLCD_Set_SCL(1);
//PORT_SetBit(SEG_LCD_SCL);
PORT_SetBit(SEG_LCD_SCL1);
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
BU98R10_DELAY_NS;
for (i = 0; i < 8; i++) {
//SegLCD_Set_SCL(0);
//PORT_ClrBit(SEG_LCD_SCL);
PORT_ClrBit(SEG_LCD_SCL1);
//wdata0 <<= 1;
wdata1 <<= 1;
//SegLCD_Set_SCL(1);
//PORT_SetBit(SEG_LCD_SCL);
PORT_SetBit(SEG_LCD_SCL1);
/*if (SegLCD_Get_SD0_Data)
{
wdata0 |= SegLCD_Get_SD0_Data;
}
if (SegLCD_Get_SD1_Data)
{
wdata1 |= SegLCD_Get_SD1_Data;
}*/
//if (PORT_GetBit(SEG_LCD_SD))
{
//wdata0 |= PORT_GetBit(SEG_LCD_SD);
}
if (PORT_GetBit(SEG_LCD_SD1)) {
wdata1 |= PORT_GetBit(SEG_LCD_SD1);
}
}
*data0 = wdata0;
*data1 = wdata1;
//SegLCD_Set_SD_Dir(1);
//PORT_Init(SEG_LCD_SD, OUTPUT);
PORT_Init(SEG_LCD_SD1, OUTPUT);
//SegLCD_Set_CSB(1);
//PORT_SetBit(SEG_LCD_CSB);
PORT_SetBit(SEG_LCD_CSB1);
}
#endif
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
|=
(
1
<<
SEG_LCD1_SD_PIN
);
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
/* CS 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
&=
~
(
1
<<
SEG_LCD0_CS_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
&=
~
(
1
<<
SEG_LCD1_CS_PIN
);
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
if
(
Dat0
&
0x80
)
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
else
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&=
~
(
1
<<
SEG_LCD0_SD_PIN
);
if
(
Dat1
&
0x80
)
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
else
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
__NOP
();
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
Dat0
<<=
1
;
Dat1
<<=
1
;
}
/* CS 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
|=
(
1
<<
SEG_LCD0_CS_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
|=
(
1
<<
SEG_LCD1_CS_PIN
);
}
#endif
uint8_t
checkInterval
=
0
;
uint8_t
checkCount
=
0
;
#if BU98R10_WRITE_AT_SAME_TIME
static
void
BU98R10_All_ReadRam
(
uint8_t
addr
,
uint8_t
*
data0
,
uint8_t
*
data1
)
{
uint8_t
i
;
uint8_t
Cmd
=
0x09
;
uint8_t
wdata0
=
0
;
uint8_t
wdata1
=
0
;
BU98R10_All_Command_Write
(
BU98R10_CMD_ADSET
);
BU98R10_All_Data_Write
(
addr
,
addr
);
Cmd
=
0x09
;
// D/C = 0,表示发送命令
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&=
~
(
1
<<
SEG_LCD0_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
&=
~
(
1
<<
SEG_LCD0_CS_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
&=
~
(
1
<<
SEG_LCD1_CS_PIN
);
__NOP
();
__NOP
();
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
if
(
Cmd
&
0x80
)
{
/* SD 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
|=
(
1
<<
SEG_LCD0_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
|=
(
1
<<
SEG_LCD1_SD_PIN
);
}
else
{
/* SD 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&=
~
(
1
<<
SEG_LCD0_SD_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&=
~
(
1
<<
SEG_LCD1_SD_PIN
);
}
__NOP
();
__NOP
();
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
Cmd
<<=
1
;
}
// PORT_Init(SEG_LCD_SD1, INPUT); // ???
// PORT_Init(SEG_LCD_SD1, INPUT); // ???
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
__NOP
();
__NOP
();
__NOP
();
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
__NOP
();
__NOP
();
__NOP
();
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* SCL 输出低 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
&=
~
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
&=
~
(
1
<<
SEG_LCD1_SCL_PIN
);
wdata0
<<=
1
;
wdata1
<<=
1
;
/* SCL 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SCL
))
|=
(
1
<<
SEG_LCD0_SCL_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SCL
))
|=
(
1
<<
SEG_LCD1_SCL_PIN
);
if
(
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&
SEG_LCD0_SD_PIN
)
{
wdata0
|=
*
((
volatile
uint8_t
*
)(
SEG_LCD0_SD
))
&
SEG_LCD0_SD_PIN
;
}
if
(
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&
SEG_LCD1_SD_PIN
)
{
wdata0
|=
*
((
volatile
uint8_t
*
)(
SEG_LCD1_SD
))
&
SEG_LCD1_SD_PIN
;
}
}
*
data0
=
wdata0
;
*
data1
=
wdata1
;
/* SD 方向设置成输出 */
// PORT_Init(SEG_LCD_SD1, OUTPUT); //???
// PORT_Init(SEG_LCD_SD1, OUTPUT); //???
/* CS 输出高 */
*
((
volatile
uint8_t
*
)(
SEG_LCD0_CS
))
|=
(
1
<<
SEG_LCD0_CS_PIN
);
*
((
volatile
uint8_t
*
)(
SEG_LCD1_CS
))
|=
(
1
<<
SEG_LCD1_CS_PIN
);
}
#endif
/*
uint8_t checkData[2];
uint8_t
checkDelay
=
0
;
void checkSegTftState(void)
{
#if 0
if (System_FUN_KL15_Status_Get()) {
if(checkDelay == 0) {
checkInterval++;
if (checkInterval >= 5) {
BU98R10_0_ReadRam(37, &checkData[0], &checkData[1]); // seg61 加油图标方向段 (61+1)/2 -1 =30 ==0x07 异常时 heckData[1]= 0xff
checkInterval = 0;
if ((checkData[1] & 0x0f) != 0x07) {
checkCount = 50;
BU98R10Chip1DDRAMBackup.Bit.Seg75 = 0; //BU98R10_1_SEG75
}
}
}
else {
checkDelay --;
checkInterval = 0;
}
if(checkCount > 0) {
checkCount--;
}
if (checkCount == 30) {
checkDelay = 20;
SEG_LCD_Init();
}
}
else {
checkInterval = 0;
checkCount = 0;
}
#endif
if (g_curkeyinput == KeyON)
{
if ((u8BU98R10CheckCount >= 20) && (BU98R10Update.En == 0))
{
u8BU98R10CheckCount = 0;
checkData[0] = 0;
checkData[1] = 0;
BU98R10_All_ReadRam(48, &checkData[0], &checkData[1]);
if ((checkData[0] & 0xf0) != 0x70)
{
BU98R10_Init();
}
}
}
else
{
u8BU98R10CheckCount = 0;
}
}
*/
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment