add 2.7 b V2

This commit is contained in:
SSYYL 2021-02-22 15:59:14 +08:00
commit 9edbace6e9
59 changed files with 25054 additions and 250 deletions

File diff suppressed because one or more lines are too long

View file

@ -1000,6 +1000,18 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>61</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_2in7b_V2_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in7b_V2_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -1010,7 +1022,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>61</FileNumber>
<FileNumber>62</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1022,7 +1034,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>62</FileNumber>
<FileNumber>63</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1034,7 +1046,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>63</FileNumber>
<FileNumber>64</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1046,7 +1058,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>64</FileNumber>
<FileNumber>65</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1058,7 +1070,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>65</FileNumber>
<FileNumber>66</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1070,7 +1082,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>66</FileNumber>
<FileNumber>67</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1082,7 +1094,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>67</FileNumber>
<FileNumber>68</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1094,7 +1106,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>68</FileNumber>
<FileNumber>69</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1106,7 +1118,19 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>69</FileNumber>
<FileNumber>70</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\e-Paper\EPD_2in7b_V2.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in7b_V2.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>71</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1118,7 +1142,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>70</FileNumber>
<FileNumber>72</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1130,7 +1154,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>71</FileNumber>
<FileNumber>73</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1142,7 +1166,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>72</FileNumber>
<FileNumber>74</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1154,7 +1178,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>73</FileNumber>
<FileNumber>75</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1166,7 +1190,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>74</FileNumber>
<FileNumber>76</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1178,7 +1202,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>75</FileNumber>
<FileNumber>77</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1190,7 +1214,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>76</FileNumber>
<FileNumber>78</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1202,7 +1226,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>77</FileNumber>
<FileNumber>79</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1214,7 +1238,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>78</FileNumber>
<FileNumber>80</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1226,7 +1250,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>79</FileNumber>
<FileNumber>81</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1238,7 +1262,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>80</FileNumber>
<FileNumber>82</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1250,7 +1274,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>81</FileNumber>
<FileNumber>83</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1262,7 +1286,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>82</FileNumber>
<FileNumber>84</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1274,7 +1298,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>83</FileNumber>
<FileNumber>85</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1286,7 +1310,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>84</FileNumber>
<FileNumber>86</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1298,7 +1322,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>85</FileNumber>
<FileNumber>87</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1310,7 +1334,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>86</FileNumber>
<FileNumber>88</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1322,7 +1346,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>87</FileNumber>
<FileNumber>89</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1334,7 +1358,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>88</FileNumber>
<FileNumber>90</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1346,7 +1370,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>89</FileNumber>
<FileNumber>91</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1358,7 +1382,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>90</FileNumber>
<FileNumber>92</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1370,7 +1394,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>91</FileNumber>
<FileNumber>93</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1382,7 +1406,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>92</FileNumber>
<FileNumber>94</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1394,7 +1418,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>93</FileNumber>
<FileNumber>95</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1406,7 +1430,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>94</FileNumber>
<FileNumber>96</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1418,7 +1442,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>95</FileNumber>
<FileNumber>97</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1430,7 +1454,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>96</FileNumber>
<FileNumber>98</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1450,7 +1474,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>97</FileNumber>
<FileNumber>99</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1470,7 +1494,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>98</FileNumber>
<FileNumber>100</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1490,7 +1514,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>99</FileNumber>
<FileNumber>101</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1502,7 +1526,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>100</FileNumber>
<FileNumber>102</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1514,7 +1538,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>101</FileNumber>
<FileNumber>103</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1526,7 +1550,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>102</FileNumber>
<FileNumber>104</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1538,7 +1562,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>103</FileNumber>
<FileNumber>105</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1550,7 +1574,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>104</FileNumber>
<FileNumber>106</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1562,7 +1586,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>105</FileNumber>
<FileNumber>107</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1582,7 +1606,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>106</FileNumber>
<FileNumber>108</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1594,7 +1618,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>107</FileNumber>
<FileNumber>109</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View file

@ -702,6 +702,11 @@
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_7in5_HD_test.c</FilePath>
</File>
<File>
<FileName>EPD_2in7b_V2_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in7b_V2_test.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -747,6 +752,11 @@
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in7b.c</FilePath>
</File>
<File>
<FileName>EPD_2in7b_V2.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in7b_V2.c</FilePath>
</File>
<File>
<FileName>EPD_2in9.c</FileName>
<FileType>1</FileType>

View file

@ -22,7 +22,7 @@ Dialog DLL: TCM.DLL V1.36.1.0
<h2>Project:</h2>
E:\project\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
Project File Date: 12/25/2020
Project File Date: 02/22/2021
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\keil5\ARM\ARMCC\Bin'

View file

@ -3,7 +3,7 @@
<title>Static Call Graph - [epd-demo\epd-demo.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image epd-demo\epd-demo.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Jan 26 14:34:13 2021
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Mon Feb 22 15:54:10 2021
<BR><P>
<H3>Maximum Stack Usage = 136 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>

View file

@ -505,6 +505,19 @@ Section Cross References
epd_7in5_hd_test.o(.text) refers to font12.o(.data) for Font12
epd_7in5_hd_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_7in5_hd_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in7b_v2_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in7b_v2_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in7b_v2_test.o(.text) refers to epd_2in7b_v2.o(.text) for EPD_2IN7B_V2_Init
epd_2in7b_v2_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in7b_v2_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_2in7b_v2_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_2in7b_v2_test.o(.text) refers to malloc.o(i.free) for free
epd_2in7b_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in7b_Black
epd_2in7b_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in7b_Red
epd_2in7b_v2_test.o(.text) refers to font16.o(.data) for Font16
epd_2in7b_v2_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in7b_v2_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in7b_v2_test.o(.text) refers to font12.o(.data) for Font12
epd_1in02d.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
epd_1in02d.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_1in02d.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
@ -541,6 +554,10 @@ Section Cross References
epd_2in7b.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in7b.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in7b.o(.text) refers to epd_2in7b.o(.constdata) for .constdata
epd_2in7b_v2.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in7b_v2.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in7b_v2.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in7b_v2.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in9.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
@ -1236,6 +1253,10 @@ Removing Unused input sections from the image.
Removing epd_7in5_hd_test.o(.revsh_text), (4 bytes).
Removing epd_7in5_hd_test.o(.rrx_text), (6 bytes).
Removing epd_7in5_hd_test.o(.text), (888 bytes).
Removing epd_2in7b_v2_test.o(.rev16_text), (4 bytes).
Removing epd_2in7b_v2_test.o(.revsh_text), (4 bytes).
Removing epd_2in7b_v2_test.o(.rrx_text), (6 bytes).
Removing epd_2in7b_v2_test.o(.text), (960 bytes).
Removing epd_1in02d.o(.rev16_text), (4 bytes).
Removing epd_1in02d.o(.revsh_text), (4 bytes).
Removing epd_1in02d.o(.rrx_text), (6 bytes).
@ -1273,6 +1294,10 @@ Removing Unused input sections from the image.
Removing epd_2in7b.o(.rrx_text), (6 bytes).
Removing epd_2in7b.o(.text), (864 bytes).
Removing epd_2in7b.o(.constdata), (212 bytes).
Removing epd_2in7b_v2.o(.rev16_text), (4 bytes).
Removing epd_2in7b_v2.o(.revsh_text), (4 bytes).
Removing epd_2in7b_v2.o(.rrx_text), (6 bytes).
Removing epd_2in7b_v2.o(.text), (600 bytes).
Removing epd_2in9.o(.rev16_text), (4 bytes).
Removing epd_2in9.o(.revsh_text), (4 bytes).
Removing epd_2in9.o(.rrx_text), (6 bytes).
@ -1425,7 +1450,7 @@ Removing Unused input sections from the image.
Removing cdrcmple.o(.text), (48 bytes).
Removing depilogue.o(.text), (186 bytes).
450 unused section(s) (total 963207 bytes) removed from the image.
458 unused section(s) (total 964795 bytes) removed from the image.
==============================================================================
@ -1459,42 +1484,42 @@ Image Symbol Table
../Src/usart.c 0x00000000 Number 0 usart.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
@ -1538,6 +1563,7 @@ Image Symbol Table
..\User\Examples\EPD_2in66_test.c 0x00000000 Number 0 epd_2in66_test.o ABSOLUTE
..\User\Examples\EPD_2in66b_test.c 0x00000000 Number 0 epd_2in66b_test.o ABSOLUTE
..\User\Examples\EPD_2in7_test.c 0x00000000 Number 0 epd_2in7_test.o ABSOLUTE
..\User\Examples\EPD_2in7b_V2_test.c 0x00000000 Number 0 epd_2in7b_v2_test.o ABSOLUTE
..\User\Examples\EPD_2in7b_test.c 0x00000000 Number 0 epd_2in7b_test.o ABSOLUTE
..\User\Examples\EPD_2in9_V2_test.c 0x00000000 Number 0 epd_2in9_v2_test.o ABSOLUTE
..\User\Examples\EPD_2in9_test.c 0x00000000 Number 0 epd_2in9_test.o ABSOLUTE
@ -1584,6 +1610,7 @@ Image Symbol Table
..\User\e-Paper\EPD_2in66b.c 0x00000000 Number 0 epd_2in66b.o ABSOLUTE
..\User\e-Paper\EPD_2in7.c 0x00000000 Number 0 epd_2in7.o ABSOLUTE
..\User\e-Paper\EPD_2in7b.c 0x00000000 Number 0 epd_2in7b.o ABSOLUTE
..\User\e-Paper\EPD_2in7b_V2.c 0x00000000 Number 0 epd_2in7b_v2.o ABSOLUTE
..\User\e-Paper\EPD_2in9.c 0x00000000 Number 0 epd_2in9.o ABSOLUTE
..\User\e-Paper\EPD_2in9_V2.c 0x00000000 Number 0 epd_2in9_v2.o ABSOLUTE
..\User\e-Paper\EPD_2in9b_V3.c 0x00000000 Number 0 epd_2in9b_v3.o ABSOLUTE
@ -1621,6 +1648,7 @@ Image Symbol Table
..\\User\\Examples\\EPD_2in66_test.c 0x00000000 Number 0 epd_2in66_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in66b_test.c 0x00000000 Number 0 epd_2in66b_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in7_test.c 0x00000000 Number 0 epd_2in7_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in7b_V2_test.c 0x00000000 Number 0 epd_2in7b_v2_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in7b_test.c 0x00000000 Number 0 epd_2in7b_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in9_V2_test.c 0x00000000 Number 0 epd_2in9_v2_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in9_test.c 0x00000000 Number 0 epd_2in9_test.o ABSOLUTE
@ -1659,6 +1687,7 @@ Image Symbol Table
..\\User\\e-Paper\\EPD_2in66b.c 0x00000000 Number 0 epd_2in66b.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in7.c 0x00000000 Number 0 epd_2in7.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in7b.c 0x00000000 Number 0 epd_2in7b.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in7b_V2.c 0x00000000 Number 0 epd_2in7b_v2.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in9.c 0x00000000 Number 0 epd_2in9.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in9_V2.c 0x00000000 Number 0 epd_2in9_v2.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in9b_V3.c 0x00000000 Number 0 epd_2in9b_v3.o ABSOLUTE
@ -2040,15 +2069,15 @@ Memory Map of the image
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x00000130 Data RO 3 RESET startup_stm32f103xe.o
0x08000130 0x08000130 0x00000000 Code RO 2791 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x08000130 0x08000130 0x00000004 Code RO 3091 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x08000134 0x08000134 0x00000004 Code RO 3094 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x08000138 0x08000138 0x00000000 Code RO 3096 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x08000138 0x08000138 0x00000000 Code RO 3098 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x08000138 0x08000138 0x00000008 Code RO 3099 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x08000140 0x08000140 0x00000000 Code RO 3101 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
0x08000140 0x08000140 0x00000000 Code RO 3103 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
0x08000140 0x08000140 0x00000004 Code RO 3092 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000130 0x08000130 0x00000000 Code RO 2842 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x08000130 0x08000130 0x00000004 Code RO 3142 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x08000134 0x08000134 0x00000004 Code RO 3145 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x08000138 0x08000138 0x00000000 Code RO 3147 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x08000138 0x08000138 0x00000000 Code RO 3149 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x08000138 0x08000138 0x00000008 Code RO 3150 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x08000140 0x08000140 0x00000000 Code RO 3152 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
0x08000140 0x08000140 0x00000000 Code RO 3154 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
0x08000140 0x08000140 0x00000004 Code RO 3143 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000144 0x08000144 0x00000024 Code RO 4 .text startup_stm32f103xe.o
0x08000168 0x08000168 0x000000bc Code RO 13 .text main.o
0x08000224 0x08000224 0x00000054 Code RO 152 .text gpio.o
@ -2065,17 +2094,17 @@ Memory Map of the image
0x08001f7c 0x08001f7c 0x000009f8 Code RO 519 .text stm32f1xx_hal_dma.o
0x08002974 0x08002974 0x000001d8 Code RO 543 .text stm32f1xx_hal_cortex.o
0x08002b4c 0x08002b4c 0x000000ac Code RO 647 .text system_stm32f1xx.o
0x08002bf8 0x08002bf8 0x0000002c Code RO 3106 .text mc_w.l(uidiv.o)
0x08002c24 0x08002c24 0x00000024 Code RO 3123 .text mc_w.l(init.o)
0x08002c48 0x08002c48 0x00000020 Code RO 2891 i.__0printf$3 mc_w.l(printf3.o)
0x08002c68 0x08002c68 0x0000000e Code RO 3133 i.__scatterload_copy mc_w.l(handlers.o)
0x08002c76 0x08002c76 0x00000002 Code RO 3134 i.__scatterload_null mc_w.l(handlers.o)
0x08002c78 0x08002c78 0x0000000e Code RO 3135 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x08002bf8 0x08002bf8 0x0000002c Code RO 3157 .text mc_w.l(uidiv.o)
0x08002c24 0x08002c24 0x00000024 Code RO 3174 .text mc_w.l(init.o)
0x08002c48 0x08002c48 0x00000020 Code RO 2942 i.__0printf$3 mc_w.l(printf3.o)
0x08002c68 0x08002c68 0x0000000e Code RO 3184 i.__scatterload_copy mc_w.l(handlers.o)
0x08002c76 0x08002c76 0x00000002 Code RO 3185 i.__scatterload_null mc_w.l(handlers.o)
0x08002c78 0x08002c78 0x0000000e Code RO 3186 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x08002c86 0x08002c86 0x00000002 PAD
0x08002c88 0x08002c88 0x000001b8 Code RO 2898 i._printf_core mc_w.l(printf3.o)
0x08002c88 0x08002c88 0x000001b8 Code RO 2949 i._printf_core mc_w.l(printf3.o)
0x08002e40 0x08002e40 0x00000010 Data RO 648 .constdata system_stm32f1xx.o
0x08002e50 0x08002e50 0x00000008 Data RO 649 .constdata system_stm32f1xx.o
0x08002e58 0x08002e58 0x00000020 Data RO 3131 Region$$Table anon$$obj.o
0x08002e58 0x08002e58 0x00000020 Data RO 3182 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002e78, Size: 0x000010b0, Max: 0x00010000, ABSOLUTE)
@ -2084,7 +2113,7 @@ Memory Map of the image
0x20000000 0x08002e78 0x0000000c Data RW 493 .data stm32f1xx_hal.o
0x2000000c 0x08002e84 0x00000004 Data RW 650 .data system_stm32f1xx.o
0x20000010 0x08002e88 0x00000004 Data RW 3105 .data mc_w.l(stdout.o)
0x20000010 0x08002e88 0x00000004 Data RW 3156 .data mc_w.l(stdout.o)
0x20000014 - 0x00000058 Zero RW 177 .bss spi.o
0x2000006c - 0x00000040 Zero RW 207 .bss usart.o
0x200000ac 0x08002e8c 0x00000004 PAD

View file

@ -80,6 +80,7 @@ int main(void)
// EPD_2in7_test();
// EPD_2in7b_test();
// EPD_2in7b_V2_test();
// EPD_2in9_test();
// EPD_2in9_V2_test();

View file

@ -0,0 +1,123 @@
/*****************************************************************************
* | File : EPD_2IN7b_V2_test.c
* | Author : Waveshare team
* | Function : 2.7inch e-paper b V2 test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-10-20
* | Info :
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_Test.h"
#include "EPD_2in7b_V2.h"
int EPD_2in7b_V2_test(void)
{
printf("EPD_2IN7B_V2_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_2IN7B_V2_Init();
EPD_2IN7B_V2_Clear();
DEV_Delay_ms(500);
//Create a new image cache named IMAGE_BW and fill it with white
UBYTE *BlackImage, *RedImage;
UWORD Imagesize = ((EPD_2IN7B_V2_WIDTH % 8 == 0)? (EPD_2IN7B_V2_WIDTH / 8 ): (EPD_2IN7B_V2_WIDTH / 8 + 1)) * EPD_2IN7B_V2_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
if((RedImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for red memory...\r\n");
return -1;
}
printf("NewImage:BlackImage and RedImage\r\n");
Paint_NewImage(BlackImage, EPD_2IN7B_V2_WIDTH, EPD_2IN7B_V2_HEIGHT, 270, WHITE);
Paint_NewImage(RedImage, EPD_2IN7B_V2_WIDTH, EPD_2IN7B_V2_HEIGHT, 270, WHITE);
//Select Image
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
Paint_SelectImage(RedImage);
Paint_Clear(WHITE);
#if 1 // show image for array
printf("show image for array\r\n");
Paint_SelectImage(BlackImage);
Paint_DrawBitMap(gImage_2in7b_Black);
Paint_SelectImage(RedImage);
Paint_DrawBitMap(gImage_2in7b_Red);
EPD_2IN7B_V2_Display(BlackImage, RedImage);
DEV_Delay_ms(4000);
#endif
#if 1 // Drawing on the image
/*Horizontal screen*/
//1.Draw black image
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
Paint_DrawPoint(10, 110, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
//2.Draw red image
Paint_SelectImage(RedImage);
Paint_Clear(WHITE);
Paint_DrawCircle(160, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawCircle(210, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawString_CN(130, 0,"ÄãºÃabc", &Font12CN, BLACK, WHITE);
Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
printf("EPD_Display\r\n");
EPD_2IN7B_V2_Display(BlackImage, RedImage);
DEV_Delay_ms(4000);
#endif
printf("Clear...\r\n");
EPD_2IN7B_V2_Clear();
printf("Goto Sleep...\r\n");
EPD_2IN7B_V2_Sleep();
free(BlackImage);
BlackImage = NULL;
DEV_Delay_ms(2000);//important, at least 2s
// close 5V
printf("close 5V, Module enters 0 power consumption ...\r\n");
DEV_Module_Exit();
return 0;
}

View file

@ -46,6 +46,7 @@ int EPD_1in54c_test(void);
int EPD_2in7_test(void);
int EPD_2in7b_test(void);
int EPD_2in7b_V2_test(void);
int EPD_2in9_test(void);
int EPD_2in9_V2_test(void);

View file

@ -0,0 +1,211 @@
/*****************************************************************************
* | File : EPD_2in7b_V2.c
* | Author : Waveshare team
* | Function : 2.7inch e-paper b V2
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-10-20
* | Info :
* -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_2in7b_V2.h"
#include "Debug.h"
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_2IN7B_V2_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}
/******************************************************************************
function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_2IN7B_V2_SendCommand(UBYTE Reg)
{
DEV_Digital_Write(EPD_DC_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Reg);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : send data
parameter:
Data : Write data
******************************************************************************/
static void EPD_2IN7B_V2_SendData(UBYTE Data)
{
DEV_Digital_Write(EPD_DC_PIN, 1);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Data);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : Wait until the busy_pin goes LOW
parameter:
******************************************************************************/
static void EPD_2IN7B_V2_ReadBusy(void)
{
Debug("e-Paper busy\r\n");
while(DEV_Digital_Read(EPD_BUSY_PIN) == 1) { //1: busy, 0: idle
DEV_Delay_ms(10);
}
Debug("e-Paper busy release\r\n");
}
static void EPD_2IN7B_V2_TurnOnDisplay(void)
{
EPD_2IN7B_V2_SendCommand(0x20);
EPD_2IN7B_V2_ReadBusy();
}
/******************************************************************************
function : Setting the display window
parameter:
******************************************************************************/
static void EPD_2IN7B_V2_SetWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend)
{
EPD_2IN7B_V2_SendCommand(0x44); // SET_RAM_X_ADDRESS_START_END_POSITION
EPD_2IN7B_V2_SendData((Xstart>>3) & 0xFF);
EPD_2IN7B_V2_SendData((Xend>>3) & 0xFF);
EPD_2IN7B_V2_SendCommand(0x45); // SET_RAM_Y_ADDRESS_START_END_POSITION
EPD_2IN7B_V2_SendData(Ystart & 0xFF);
EPD_2IN7B_V2_SendData((Ystart >> 8) & 0xFF);
EPD_2IN7B_V2_SendData(Yend & 0xFF);
EPD_2IN7B_V2_SendData((Yend >> 8) & 0xFF);
}
/******************************************************************************
function : Set Cursor
parameter:
******************************************************************************/
static void EPD_2IN7B_V2_SetCursor(UWORD Xstart, UWORD Ystart)
{
EPD_2IN7B_V2_SendCommand(0x4E); // SET_RAM_X_ADDRESS_COUNTER
EPD_2IN7B_V2_SendData(Xstart & 0xFF);
EPD_2IN7B_V2_SendCommand(0x4F); // SET_RAM_Y_ADDRESS_COUNTER
EPD_2IN7B_V2_SendData(Ystart & 0xFF);
EPD_2IN7B_V2_SendData((Ystart >> 8) & 0xFF);
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_2IN7B_V2_Init(void)
{
EPD_2IN7B_V2_Reset();
EPD_2IN7B_V2_ReadBusy();
EPD_2IN7B_V2_SendCommand(0x12);
EPD_2IN7B_V2_ReadBusy();
EPD_2IN7B_V2_SendCommand(0x00);
EPD_2IN7B_V2_SendData(0x27);
EPD_2IN7B_V2_SendData(0x01);
EPD_2IN7B_V2_SendData(0x00);
EPD_2IN7B_V2_SendCommand(0x11);
EPD_2IN7B_V2_SendData(0x03);
EPD_2IN7B_V2_SetWindows(0, 0, EPD_2IN7B_V2_WIDTH-1, EPD_2IN7B_V2_HEIGHT-1);
EPD_2IN7B_V2_SetCursor(0, 0);
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_2IN7B_V2_Clear(void)
{
UWORD Width, Height;
Width = (EPD_2IN7B_V2_WIDTH % 8 == 0)? (EPD_2IN7B_V2_WIDTH / 8 ): (EPD_2IN7B_V2_WIDTH / 8 + 1);
Height = EPD_2IN7B_V2_HEIGHT;
EPD_2IN7B_V2_SendCommand(0x24);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN7B_V2_SendData(0Xff);
}
}
EPD_2IN7B_V2_SendCommand(0x26);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN7B_V2_SendData(0X00);
}
}
EPD_2IN7B_V2_TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_2IN7B_V2_Display(UBYTE *Imageblack, UBYTE *Imagered)
{
UWORD Width, Height;
Width = (EPD_2IN7B_V2_WIDTH % 8 == 0)? (EPD_2IN7B_V2_WIDTH / 8 ): (EPD_2IN7B_V2_WIDTH / 8 + 1);
Height = EPD_2IN7B_V2_HEIGHT;
EPD_2IN7B_V2_SendCommand(0x24);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN7B_V2_SendData(Imageblack[i + j * Width]);
}
}
EPD_2IN7B_V2_SendCommand(0x26);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN7B_V2_SendData(~Imagered[i + j * Width]);
}
}
EPD_2IN7B_V2_TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_2IN7B_V2_Sleep(void)
{
EPD_2IN7B_V2_SendCommand(0x10); // Deep sleep
EPD_2IN7B_V2_SendData(0x01);
}

View file

@ -0,0 +1,45 @@
/*****************************************************************************
* | File : EPD_2in7b_V2.h
* | Author : Waveshare team
* | Function : 2.7inch e-paper b V2
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-10-20
* | Info :
* -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#ifndef __EPD_2IN7B_V2_H_
#define __EPD_2IN7B_V2_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN7B_V2_WIDTH 176
#define EPD_2IN7B_V2_HEIGHT 264
void EPD_2IN7B_V2_Init(void);
void EPD_2IN7B_V2_Clear(void);
void EPD_2IN7B_V2_Display(UBYTE *Imageblack, UBYTE *Imagered);
void EPD_2IN7B_V2_Sleep(void);
#endif