2020-12-10

This commit is contained in:
hnwangkg-ezio 2020-12-11 14:36:30 +08:00
commit 04d4621789
493 changed files with 128806 additions and 689 deletions

File diff suppressed because one or more lines are too long

View file

@ -244,7 +244,7 @@
<Group>
<GroupName>Application/MDK-ARM</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -264,7 +264,7 @@
<Group>
<GroupName>Application/User</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -532,7 +532,7 @@
<Group>
<GroupName>Drivers/CMSIS</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -683,8 +683,8 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_2in9bc_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9bc_test.c</FilenameWithoutPath>
<PathWithFileName>..\User\Examples\EPD_2in9_V2_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9_V2_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
@ -695,8 +695,8 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_2in9b_V2_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9b_V2_test.c</FilenameWithoutPath>
<PathWithFileName>..\User\Examples\EPD_2in9bc_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9bc_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
@ -707,6 +707,18 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_2in9b_V3_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9b_V3_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_2in9d_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9d_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
@ -714,7 +726,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>37</FileNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -726,7 +738,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>38</FileNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -738,7 +750,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>39</FileNumber>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -750,7 +762,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>40</FileNumber>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -762,7 +774,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>41</FileNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -774,7 +786,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>42</FileNumber>
<FileNumber>43</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -786,7 +798,19 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>43</FileNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_2in66b_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in66b_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>45</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -798,7 +822,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>44</FileNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -810,7 +834,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>45</FileNumber>
<FileNumber>47</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -822,7 +846,19 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>48</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_4in2b_V2_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_4in2b_V2_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -834,7 +870,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>50</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -846,7 +882,19 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>51</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_5in83_V2_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_5in83_V2_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>52</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -858,7 +906,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>53</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -870,7 +918,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>50</FileNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -882,7 +930,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>51</FileNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -894,7 +942,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>52</FileNumber>
<FileNumber>56</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -906,7 +954,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>53</FileNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -918,7 +966,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>54</FileNumber>
<FileNumber>58</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -930,7 +978,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>55</FileNumber>
<FileNumber>59</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -950,7 +998,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>56</FileNumber>
<FileNumber>60</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -962,7 +1010,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>57</FileNumber>
<FileNumber>61</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -974,7 +1022,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>58</FileNumber>
<FileNumber>62</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -986,7 +1034,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>59</FileNumber>
<FileNumber>63</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -998,7 +1046,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>60</FileNumber>
<FileNumber>64</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1010,7 +1058,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>61</FileNumber>
<FileNumber>65</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1022,7 +1070,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>62</FileNumber>
<FileNumber>66</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1034,7 +1082,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>63</FileNumber>
<FileNumber>67</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1046,7 +1094,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>64</FileNumber>
<FileNumber>68</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1058,7 +1106,19 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>65</FileNumber>
<FileNumber>69</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\e-Paper\EPD_2in9_V2.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9_V2.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>70</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1070,19 +1130,19 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>66</FileNumber>
<FileNumber>71</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\e-Paper\EPD_2in9b_V2.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9b_V2.c</FilenameWithoutPath>
<PathWithFileName>..\User\e-Paper\EPD_2in9b_V3.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in9b_V3.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>67</FileNumber>
<FileNumber>72</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1094,7 +1154,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>68</FileNumber>
<FileNumber>73</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1106,7 +1166,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>69</FileNumber>
<FileNumber>74</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1118,7 +1178,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>70</FileNumber>
<FileNumber>75</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1130,7 +1190,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>71</FileNumber>
<FileNumber>76</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1142,7 +1202,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>72</FileNumber>
<FileNumber>77</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1154,7 +1214,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>73</FileNumber>
<FileNumber>78</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1166,7 +1226,19 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>74</FileNumber>
<FileNumber>79</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\e-Paper\EPD_2in66b.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in66b.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>80</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1178,7 +1250,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>75</FileNumber>
<FileNumber>81</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1190,7 +1262,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>76</FileNumber>
<FileNumber>82</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1202,7 +1274,19 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>77</FileNumber>
<FileNumber>83</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\e-Paper\EPD_4in2b_V2.c</PathWithFileName>
<FilenameWithoutPath>EPD_4in2b_V2.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>84</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1214,7 +1298,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>78</FileNumber>
<FileNumber>85</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1226,7 +1310,19 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>79</FileNumber>
<FileNumber>86</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\e-Paper\EPD_5in83_V2.c</PathWithFileName>
<FilenameWithoutPath>EPD_5in83_V2.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>87</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1238,7 +1334,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>80</FileNumber>
<FileNumber>88</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1250,7 +1346,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>81</FileNumber>
<FileNumber>89</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1262,7 +1358,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>82</FileNumber>
<FileNumber>90</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1274,7 +1370,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>83</FileNumber>
<FileNumber>91</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1286,7 +1382,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>84</FileNumber>
<FileNumber>92</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1298,7 +1394,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>85</FileNumber>
<FileNumber>93</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1310,7 +1406,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>86</FileNumber>
<FileNumber>94</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1330,7 +1426,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>87</FileNumber>
<FileNumber>95</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1350,7 +1446,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>88</FileNumber>
<FileNumber>96</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1370,7 +1466,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>89</FileNumber>
<FileNumber>97</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1382,7 +1478,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>90</FileNumber>
<FileNumber>98</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1394,7 +1490,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>91</FileNumber>
<FileNumber>99</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1406,7 +1502,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>92</FileNumber>
<FileNumber>100</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1418,7 +1514,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>93</FileNumber>
<FileNumber>101</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1430,7 +1526,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>94</FileNumber>
<FileNumber>102</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1442,7 +1538,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>95</FileNumber>
<FileNumber>103</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1462,7 +1558,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>96</FileNumber>
<FileNumber>104</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1474,7 +1570,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>97</FileNumber>
<FileNumber>105</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View file

@ -567,15 +567,20 @@
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in9_test.c</FilePath>
</File>
<File>
<FileName>EPD_2in9_V2_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in9_V2_test.c</FilePath>
</File>
<File>
<FileName>EPD_2in9bc_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in9bc_test.c</FilePath>
</File>
<File>
<FileName>EPD_2in9b_V2_test.c</FileName>
<FileName>EPD_2in9b_V3_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in9b_V2_test.c</FilePath>
<FilePath>..\User\Examples\EPD_2in9b_V3_test.c</FilePath>
</File>
<File>
<FileName>EPD_2in9d_test.c</FileName>
@ -612,6 +617,11 @@
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in66_test.c</FilePath>
</File>
<File>
<FileName>EPD_2in66b_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in66b_test.c</FilePath>
</File>
<File>
<FileName>EPD_3in7_test.c</FileName>
<FileType>1</FileType>
@ -627,6 +637,11 @@
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_4in2bc_test.c</FilePath>
</File>
<File>
<FileName>EPD_4in2b_V2_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_4in2b_V2_test.c</FilePath>
</File>
<File>
<FileName>EPD_5in65f_test.c</FileName>
<FileType>1</FileType>
@ -637,6 +652,11 @@
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_5in83_test.c</FilePath>
</File>
<File>
<FileName>EPD_5in83_V2_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_5in83_V2_test.c</FilePath>
</File>
<File>
<FileName>EPD_5in83bc_test.c</FileName>
<FileType>1</FileType>
@ -727,15 +747,20 @@
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in9.c</FilePath>
</File>
<File>
<FileName>EPD_2in9_V2.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in9_V2.c</FilePath>
</File>
<File>
<FileName>EPD_2in9bc.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in9bc.c</FilePath>
</File>
<File>
<FileName>EPD_2in9b_V2.c</FileName>
<FileName>EPD_2in9b_V3.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in9b_V2.c</FilePath>
<FilePath>..\User\e-Paper\EPD_2in9b_V3.c</FilePath>
</File>
<File>
<FileName>EPD_2in9d.c</FileName>
@ -772,6 +797,11 @@
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in66.c</FilePath>
</File>
<File>
<FileName>EPD_2in66b.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in66b.c</FilePath>
</File>
<File>
<FileName>EPD_3in7.c</FileName>
<FileType>1</FileType>
@ -787,6 +817,11 @@
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_4in2bc.c</FilePath>
</File>
<File>
<FileName>EPD_4in2b_V2.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_4in2b_V2.c</FilePath>
</File>
<File>
<FileName>EPD_5in65f.c</FileName>
<FileType>1</FileType>
@ -797,6 +832,11 @@
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_5in83.c</FilePath>
</File>
<File>
<FileName>EPD_5in83_V2.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_5in83_V2.c</FilePath>
</File>
<File>
<FileName>EPD_5in83bc.c</FileName>
<FileType>1</FileType>

View file

@ -22,14 +22,14 @@ 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: 08/03/2020
Project File Date: 12/09/2020
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\keil5\ARM\ARMCC\Bin'
Build target 'epd-demo'
compiling EPD_5in83b_V2_test.c...
assembling startup_stm32f103xe.s...
linking...
Program Size: Code=22452 RO-data=88524 RW-data=68 ZI-data=41140
Program Size: Code=21540 RO-data=49640 RW-data=68 ZI-data=45236
FromELF: creating hex file...
"epd-demo\epd-demo.axf" - 0 Error(s), 0 Warning(s).

View file

@ -3,11 +3,11 @@
<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: Mon Aug 03 15:24:38 2020
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Wed Dec 09 16:39:59 2020
<BR><P>
<H3>Maximum Stack Usage = 744 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 736 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; EPD_5in83b_V2_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
main &rArr; EPD_5in83_V2_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
<P>
<H3>
Mutually Recursive functions
@ -368,14 +368,14 @@ Global Symbols
</UL>
<P><STRONG><a name="[46]"></a>main</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 744<LI>Call Chain = main &rArr; EPD_5in83b_V2_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
<BR><BR>[Stack]<UL><LI>Max Depth = 736<LI>Call Chain = main &rArr; EPD_5in83_V2_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init
<LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
@ -865,17 +865,17 @@ Global Symbols
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspDeInit
</UL>
<P><STRONG><a name="[e8]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_WaitUntilIdle
<P><STRONG><a name="[e9]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_ReadBusy
</UL>
<P><STRONG><a name="[79]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init
<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Init
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Init
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendData
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
</UL>
<P><STRONG><a name="[117]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
@ -956,11 +956,11 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Init
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_WaitUntilIdle
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_TurnOnDisplay
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Init
<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_TurnOnDisplay
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_ReadBusy
</UL>
<P><STRONG><a name="[11b]"></a>HAL_SuspendTick</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
@ -1100,102 +1100,74 @@ Global Symbols
</UL>
<P><STRONG><a name="[137]"></a>SystemCoreClockUpdate</STRONG> (Thumb, 82 bytes, Stack size 8 bytes, system_stm32f1xx.o(.text), UNUSED)
<P><STRONG><a name="[77]"></a>EPD_5in83b_V2_test</STRONG> (Thumb, 876 bytes, Stack size 40 bytes, epd_5in83b_v2_test.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 744<LI>Call Chain = EPD_5in83b_V2_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
<P><STRONG><a name="[77]"></a>EPD_5in83_V2_test</STRONG> (Thumb, 506 bytes, Stack size 32 bytes, epd_5in83_v2_test.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 736<LI>Call Chain = EPD_5in83_V2_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawBitMap
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SelectImage
<LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_NewImage
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_CN
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
<LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
<LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_CN
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_Clear
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init
<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
<LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Init
<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_DisplayPicture
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Clear
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
<LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Init
<LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Clear
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free
<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[e6]"></a>EPD_5IN83B_V2_WaitUntilIdle</STRONG> (Thumb, 48 bytes, Stack size 8 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_5IN83B_V2_WaitUntilIdle &rArr; EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Init
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_TurnOnDisplay
</UL>
<P><STRONG><a name="[d5]"></a>EPD_5IN83B_V2_Init</STRONG> (Thumb, 190 bytes, Stack size 8 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_5IN83B_V2_Init &rArr; EPD_5IN83B_V2_WaitUntilIdle &rArr; EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
<P><STRONG><a name="[d5]"></a>EPD_5in83_V2_Init</STRONG> (Thumb, 186 bytes, Stack size 8 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_5in83_V2_Init &rArr; EPD_5in83_V2_ReadBusy &rArr; EPD_5in83_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_WaitUntilIdle
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendData
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_ReadBusy
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[d6]"></a>EPD_5IN83B_V2_Clear</STRONG> (Thumb, 66 bytes, Stack size 16 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = EPD_5IN83B_V2_Clear &rArr; EPD_5IN83B_V2_TurnOnDisplay &rArr; EPD_5IN83B_V2_WaitUntilIdle &rArr; EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
<P><STRONG><a name="[d6]"></a>EPD_5in83_V2_Clear</STRONG> (Thumb, 66 bytes, Stack size 16 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = EPD_5in83_V2_Clear &rArr; EPD_5in83_V2_TurnOnDisplay &rArr; EPD_5in83_V2_ReadBusy &rArr; EPD_5in83_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_TurnOnDisplay
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<BR>[Calls]<UL><LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_TurnOnDisplay
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendData
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[eb]"></a>EPD_5IN83B_V2_Clear_C</STRONG> (Thumb, 182 bytes, Stack size 16 bytes, epd_5in83b_v2.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_TurnOnDisplay
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<P><STRONG><a name="[dc]"></a>EPD_5in83_V2_Display</STRONG> (Thumb, 98 bytes, Stack size 32 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = EPD_5in83_V2_Display &rArr; EPD_5in83_V2_TurnOnDisplay &rArr; EPD_5in83_V2_ReadBusy &rArr; EPD_5in83_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_TurnOnDisplay
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendData
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[d9]"></a>EPD_5IN83B_V2_Display</STRONG> (Thumb, 100 bytes, Stack size 32 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = EPD_5IN83B_V2_Display &rArr; EPD_5IN83B_V2_TurnOnDisplay &rArr; EPD_5IN83B_V2_WaitUntilIdle &rArr; EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
<P><STRONG><a name="[e4]"></a>EPD_5in83_V2_Sleep</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_5in83_V2_Sleep &rArr; EPD_5in83_V2_ReadBusy &rArr; EPD_5in83_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_TurnOnDisplay
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendData
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_ReadBusy
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
</UL>
<P><STRONG><a name="[e1]"></a>EPD_5IN83B_V2_DisplayPicture</STRONG> (Thumb, 450 bytes, Stack size 32 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = EPD_5IN83B_V2_DisplayPicture &rArr; EPD_5IN83B_V2_TurnOnDisplay &rArr; EPD_5IN83B_V2_WaitUntilIdle &rArr; EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_TurnOnDisplay
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
</UL>
<P><STRONG><a name="[e3]"></a>EPD_5IN83B_V2_Sleep</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_5IN83B_V2_Sleep &rArr; EPD_5IN83B_V2_WaitUntilIdle &rArr; EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_WaitUntilIdle
<LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[ec]"></a>DEV_SPI_WriteByte</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, dev_config.o(.text))
@ -1203,8 +1175,8 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Transmit
</UL>
<BR>[Called By]<UL><LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendData
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<BR>[Called By]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendData
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
</UL>
<P><STRONG><a name="[d4]"></a>DEV_Module_Init</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text))
@ -1212,24 +1184,26 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[e5]"></a>DEV_Module_Exit</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text))
<P><STRONG><a name="[e6]"></a>DEV_Module_Exit</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = DEV_Module_Exit
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[d8]"></a>Paint_NewImage</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Paint_NewImage
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[138]"></a>Paint_SelectImage</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, gui_paint.o(.text), UNUSED)
<P><STRONG><a name="[d9]"></a>Paint_SelectImage</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, gui_paint.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[ed]"></a>Paint_SetRotate</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
@ -1248,8 +1222,8 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_CN
<LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_CN
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_ClearWindows
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
</UL>
@ -1257,122 +1231,126 @@ Global Symbols
<P><STRONG><a name="[da]"></a>Paint_Clear</STRONG> (Thumb, 104 bytes, Stack size 12 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = Paint_Clear
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[f1]"></a>Paint_ClearWindows</STRONG> (Thumb, 52 bytes, Stack size 32 bytes, gui_paint.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
</UL>
<P><STRONG><a name="[db]"></a>Paint_DrawPoint</STRONG> (Thumb, 180 bytes, Stack size 40 bytes, gui_paint.o(.text))
<P><STRONG><a name="[dd]"></a>Paint_DrawPoint</STRONG> (Thumb, 180 bytes, Stack size 40 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
</UL>
<P><STRONG><a name="[dc]"></a>Paint_DrawLine</STRONG> (Thumb, 654 bytes, Stack size 48 bytes, gui_paint.o(.text))
<P><STRONG><a name="[de]"></a>Paint_DrawLine</STRONG> (Thumb, 654 bytes, Stack size 48 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = Paint_DrawLine &rArr; Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<BR>[Calls]<UL><LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
</UL>
<P><STRONG><a name="[dd]"></a>Paint_DrawRectangle</STRONG> (Thumb, 170 bytes, Stack size 48 bytes, gui_paint.o(.text))
<P><STRONG><a name="[df]"></a>Paint_DrawRectangle</STRONG> (Thumb, 170 bytes, Stack size 48 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = Paint_DrawRectangle &rArr; Paint_DrawLine &rArr; Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<BR>[Calls]<UL><LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[e2]"></a>Paint_DrawCircle</STRONG> (Thumb, 528 bytes, Stack size 72 bytes, gui_paint.o(.text))
<P><STRONG><a name="[e0]"></a>Paint_DrawCircle</STRONG> (Thumb, 528 bytes, Stack size 72 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = Paint_DrawCircle &rArr; Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<BR>[Calls]<UL><LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[f2]"></a>Paint_DrawChar</STRONG> (Thumb, 172 bytes, Stack size 40 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
</UL>
<BR>[Called By]<UL><LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawTime
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
</UL>
<P><STRONG><a name="[de]"></a>Paint_DrawString_EN</STRONG> (Thumb, 116 bytes, Stack size 48 bytes, gui_paint.o(.text))
<P><STRONG><a name="[e1]"></a>Paint_DrawString_EN</STRONG> (Thumb, 116 bytes, Stack size 48 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
</UL>
<P><STRONG><a name="[df]"></a>Paint_DrawString_CN</STRONG> (Thumb, 518 bytes, Stack size 40 bytes, gui_paint.o(.text))
<P><STRONG><a name="[e3]"></a>Paint_DrawString_CN</STRONG> (Thumb, 518 bytes, Stack size 40 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = Paint_DrawString_CN &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[e0]"></a>Paint_DrawNum</STRONG> (Thumb, 140 bytes, Stack size 576 bytes, gui_paint.o(.text))
<P><STRONG><a name="[e2]"></a>Paint_DrawNum</STRONG> (Thumb, 140 bytes, Stack size 576 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 704<LI>Call Chain = Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
<BR>[Calls]<UL><LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[f4]"></a>Paint_DrawTime</STRONG> (Thumb, 282 bytes, Stack size 72 bytes, gui_paint.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
</UL>
<P><STRONG><a name="[139]"></a>Paint_DrawBitMap</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, gui_paint.o(.text), UNUSED)
<P><STRONG><a name="[db]"></a>Paint_DrawBitMap</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Paint_DrawBitMap
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[13a]"></a>Paint_DrawBitMap_Block</STRONG> (Thumb, 56 bytes, Stack size 20 bytes, gui_paint.o(.text), UNUSED)
<P><STRONG><a name="[138]"></a>Paint_DrawBitMap_Block</STRONG> (Thumb, 56 bytes, Stack size 20 bytes, gui_paint.o(.text), UNUSED)
<P><STRONG><a name="[f6]"></a>__aeabi_memset</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_memset$wrapper
<LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[13b]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[139]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[13c]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[13a]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[f5]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<P><STRONG><a name="[f3]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<BR><BR>[Called By]<UL><LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
</UL>
<P><STRONG><a name="[13d]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[13b]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[f7]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<P><STRONG><a name="[13e]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[13c]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[fb]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
@ -1384,50 +1362,50 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[13f]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[13d]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[f9]"></a>__0printf$3</STRONG> (Thumb, 22 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[140]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[13e]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[6b]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_Error_Handler
<LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetMirroring
<LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetScale
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
<LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_ReadBusy
<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
<LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
<LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetRotate
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_WaitUntilIdle
</UL>
<P><STRONG><a name="[141]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[13f]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[142]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[140]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[143]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[141]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[e4]"></a>free</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, malloc.o(i.free))
<P><STRONG><a name="[e5]"></a>free</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, malloc.o(i.free))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = free
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P><STRONG><a name="[d7]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83b_V2_test
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_test
</UL>
<P>
<H3>
@ -1758,47 +1736,54 @@ Local Symbols
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_SetPriority
</UL>
<P><STRONG><a name="[e7]"></a>EPD_5IN83B_V2_SendCommand</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
<P><STRONG><a name="[e7]"></a>EPD_5in83_V2_ReadBusy</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_5in83_V2_ReadBusy &rArr; EPD_5in83_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Init
<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_TurnOnDisplay
</UL>
<P><STRONG><a name="[e8]"></a>EPD_5in83_V2_SendCommand</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = EPD_5in83_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Init
<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_DisplayPicture
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Clear
<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Clear_C
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_WaitUntilIdle
<LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_TurnOnDisplay
<BR>[Called By]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Init
<LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Clear
<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_TurnOnDisplay
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_ReadBusy
</UL>
<P><STRONG><a name="[e9]"></a>EPD_5IN83B_V2_SendData</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = EPD_5IN83B_V2_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
<P><STRONG><a name="[ea]"></a>EPD_5in83_V2_SendData</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = EPD_5in83_V2_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte
</UL>
<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Init
<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_DisplayPicture
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Clear
<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Clear_C
<BR>[Called By]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Sleep
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Init
<LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Clear
</UL>
<P><STRONG><a name="[ea]"></a>EPD_5IN83B_V2_TurnOnDisplay</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, epd_5in83b_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_5IN83B_V2_TurnOnDisplay &rArr; EPD_5IN83B_V2_WaitUntilIdle &rArr; EPD_5IN83B_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
<P><STRONG><a name="[eb]"></a>EPD_5in83_V2_TurnOnDisplay</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, epd_5in83_v2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_5in83_V2_TurnOnDisplay &rArr; EPD_5in83_V2_ReadBusy &rArr; EPD_5in83_V2_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_CheckFlag_BSY &rArr; SPI_WaitFlagStateUntilTimeout
</UL>
<BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_WaitUntilIdle
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_SendCommand
<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_SendCommand
<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_ReadBusy
</UL>
<BR>[Called By]<UL><LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_DisplayPicture
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Clear
<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5IN83B_V2_Clear_C
<BR>[Called By]<UL><LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Display
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_5in83_V2_Clear
</UL>
<P><STRONG><a name="[fa]"></a>_printf_core</STRONG> (Thumb, 436 bytes, Stack size 96 bytes, printf3.o(i._printf_core), UNUSED)

View file

@ -16,7 +16,7 @@ Section Cross References
main.o(.text) refers to gpio.o(.text) for MX_GPIO_Init
main.o(.text) refers to usart.o(.text) for MX_USART1_UART_Init
main.o(.text) refers to spi.o(.text) for MX_SPI1_Init
main.o(.text) refers to epd_5in83b_v2_test.o(.text) for EPD_5in83b_V2_test
main.o(.text) refers to epd_5in83_v2_test.o(.text) for EPD_5in83_V2_test
gpio.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
spi.o(.text) refers to stm32f1xx_hal_spi_ex.o(.text) for HAL_SPI_Init
spi.o(.text) refers to main.o(.text) for _Error_Handler
@ -168,6 +168,19 @@ Section Cross References
epd_2in9_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in9_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in9_test.o(.text) refers to font20.o(.data) for Font20
epd_2in9_v2_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9_v2_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in9_v2_test.o(.text) refers to epd_2in9_v2.o(.text) for EPD_2IN9_V2_Init
epd_2in9_v2_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_2in9_v2_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_2in9_v2_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9_v2_test.o(.text) refers to malloc.o(i.free) for free
epd_2in9_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in9
epd_2in9_v2_test.o(.text) refers to font16.o(.data) for Font16
epd_2in9_v2_test.o(.text) refers to font12.o(.data) for Font12
epd_2in9_v2_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in9_v2_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in9_v2_test.o(.text) refers to font20.o(.data) for Font20
epd_2in9bc_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9bc_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in9bc_test.o(.text) refers to epd_2in9bc.o(.text) for EPD_2IN9BC_Init
@ -181,19 +194,19 @@ Section Cross References
epd_2in9bc_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in9bc_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in9bc_test.o(.text) refers to font12.o(.data) for Font12
epd_2in9b_v2_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9b_v2_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in9b_v2_test.o(.text) refers to epd_2in9b_v2.o(.text) for EPD_2IN9B_V2_Init
epd_2in9b_v2_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9b_v2_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_2in9b_v2_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_2in9b_v2_test.o(.text) refers to malloc.o(i.free) for free
epd_2in9b_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in9bc_ry
epd_2in9b_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in9bc_b
epd_2in9b_v2_test.o(.text) refers to font16.o(.data) for Font16
epd_2in9b_v2_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in9b_v2_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in9b_v2_test.o(.text) refers to font12.o(.data) for Font12
epd_2in9b_v3_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9b_v3_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in9b_v3_test.o(.text) refers to epd_2in9b_v3.o(.text) for EPD_2IN9B_V3_Init
epd_2in9b_v3_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9b_v3_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_2in9b_v3_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_2in9b_v3_test.o(.text) refers to malloc.o(i.free) for free
epd_2in9b_v3_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in9bc_ry
epd_2in9b_v3_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in9bc_b
epd_2in9b_v3_test.o(.text) refers to font16.o(.data) for Font16
epd_2in9b_v3_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in9b_v3_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in9b_v3_test.o(.text) refers to font12.o(.data) for Font12
epd_2in9d_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9d_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in9d_test.o(.text) refers to epd_2in9d.o(.text) for EPD_2IN9D_Init
@ -280,6 +293,19 @@ Section Cross References
epd_2in66_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in66_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in66_test.o(.text) refers to font20.o(.data) for Font20
epd_2in66b_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in66b_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in66b_test.o(.text) refers to epd_2in66b.o(.text) for EPD_2IN66B_Init
epd_2in66b_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in66b_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_2in66b_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_2in66b_test.o(.text) refers to malloc.o(i.free) for free
epd_2in66b_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in66bb
epd_2in66b_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in66br
epd_2in66b_test.o(.text) refers to font16.o(.data) for Font16
epd_2in66b_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in66b_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_2in66b_test.o(.text) refers to font12.o(.data) for Font12
epd_3in7_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_3in7_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_3in7_test.o(.text) refers to epd_3in7.o(.text) for EPD_3IN7_4Gray_Init
@ -319,6 +345,19 @@ Section Cross References
epd_4in2bc_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_4in2bc_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_4in2bc_test.o(.text) refers to font12.o(.data) for Font12
epd_4in2b_v2_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_4in2b_v2_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_4in2b_v2_test.o(.text) refers to epd_4in2b_v2.o(.text) for EPD_4IN2B_V2_Init
epd_4in2b_v2_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_4in2b_v2_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_4in2b_v2_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_4in2b_v2_test.o(.text) refers to malloc.o(i.free) for free
epd_4in2b_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_4in2bc_ry
epd_4in2b_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_4in2bc_b
epd_4in2b_v2_test.o(.text) refers to font16.o(.data) for Font16
epd_4in2b_v2_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_4in2b_v2_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_4in2b_v2_test.o(.text) refers to font12.o(.data) for Font12
epd_5in65f_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_5in65f_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_5in65f_test.o(.text) refers to epd_5in65f.o(.text) for EPD_5IN65F_Init
@ -342,6 +381,18 @@ Section Cross References
epd_5in83_test.o(.text) refers to font12.o(.data) for Font12
epd_5in83_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_5in83_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_5in83_v2_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_5in83_v2_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_5in83_v2_test.o(.text) refers to epd_5in83_v2.o(.text) for EPD_5in83_V2_Init
epd_5in83_v2_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_5in83_v2_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_5in83_v2_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_5in83_v2_test.o(.text) refers to malloc.o(i.free) for free
epd_5in83_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_5in83_V2
epd_5in83_v2_test.o(.text) refers to font16.o(.data) for Font16
epd_5in83_v2_test.o(.text) refers to font12.o(.data) for Font12
epd_5in83_v2_test.o(.text) refers to font12cn.o(.data) for Font12CN
epd_5in83_v2_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_5in83bc_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_5in83bc_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_5in83bc_test.o(.text) refers to epd_5in83bc.o(.text) for EPD_5IN83BC_Init
@ -484,14 +535,19 @@ Section Cross References
epd_2in9.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in9.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in9.o(.text) refers to epd_2in9.o(.constdata) for .constdata
epd_2in9_v2.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
epd_2in9_v2.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9_v2.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9_v2.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in9_v2.o(.text) refers to epd_2in9_v2.o(.data) for .data
epd_2in9bc.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9bc.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9bc.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in9bc.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in9b_v2.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9b_v2.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in9b_v2.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9b_v2.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in9b_v3.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9b_v3.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in9b_v3.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in9b_v3.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in9d.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in9d.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in9d.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
@ -525,6 +581,10 @@ Section Cross References
epd_2in66.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in66.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in66.o(.text) refers to epd_2in66.o(.constdata) for .constdata
epd_2in66b.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in66b.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in66b.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in66b.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_3in7.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
epd_3in7.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_3in7.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
@ -539,6 +599,10 @@ Section Cross References
epd_4in2bc.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_4in2bc.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_4in2bc.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_4in2b_v2.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_4in2b_v2.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_4in2b_v2.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_4in2b_v2.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_5in65f.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
epd_5in65f.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_5in65f.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
@ -546,6 +610,10 @@ Section Cross References
epd_5in83.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_5in83.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_5in83.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_5in83_v2.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_5in83_v2.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_5in83_v2.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_5in83_v2.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_5in83bc.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_5in83bc.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_5in83bc.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
@ -973,6 +1041,8 @@ Removing Unused input sections from the image.
Removing imagedata.o(.constdata), (5808 bytes).
Removing imagedata.o(.constdata), (5808 bytes).
Removing imagedata.o(.constdata), (5808 bytes).
Removing imagedata.o(.constdata), (5808 bytes).
Removing imagedata.o(.constdata), (5808 bytes).
Removing imagedata.o(.constdata), (11616 bytes).
Removing imagedata.o(.constdata), (4736 bytes).
Removing imagedata.o(.constdata), (4736 bytes).
@ -984,6 +1054,8 @@ Removing Unused input sections from the image.
Removing imagedata.o(.constdata), (2756 bytes).
Removing imagedata.o(.constdata), (2756 bytes).
Removing imagedata.o(.constdata), (5630 bytes).
Removing imagedata.o(.constdata), (5630 bytes).
Removing imagedata.o(.constdata), (5630 bytes).
Removing imagedata.o(.constdata), (33606 bytes).
Removing imagedata.o(.constdata), (15000 bytes).
Removing imagedata.o(.constdata), (30000 bytes).
@ -993,6 +1065,8 @@ Removing Unused input sections from the image.
Removing imagedata.o(.constdata), (33600 bytes).
Removing imagedata.o(.constdata), (33600 bytes).
Removing imagedata.o(.constdata), (33600 bytes).
Removing imagedata.o(.constdata), (38886 bytes).
Removing imagedata.o(.constdata), (38886 bytes).
Removing imagedata.o(.constdata), (30720 bytes).
Removing imagedata.o(.constdata), (48000 bytes).
Removing imagedata.o(.constdata), (30720 bytes).
@ -1035,14 +1109,18 @@ Removing Unused input sections from the image.
Removing epd_2in9_test.o(.revsh_text), (4 bytes).
Removing epd_2in9_test.o(.rrx_text), (6 bytes).
Removing epd_2in9_test.o(.text), (1028 bytes).
Removing epd_2in9_v2_test.o(.rev16_text), (4 bytes).
Removing epd_2in9_v2_test.o(.revsh_text), (4 bytes).
Removing epd_2in9_v2_test.o(.rrx_text), (6 bytes).
Removing epd_2in9_v2_test.o(.text), (1080 bytes).
Removing epd_2in9bc_test.o(.rev16_text), (4 bytes).
Removing epd_2in9bc_test.o(.revsh_text), (4 bytes).
Removing epd_2in9bc_test.o(.rrx_text), (6 bytes).
Removing epd_2in9bc_test.o(.text), (928 bytes).
Removing epd_2in9b_v2_test.o(.rev16_text), (4 bytes).
Removing epd_2in9b_v2_test.o(.revsh_text), (4 bytes).
Removing epd_2in9b_v2_test.o(.rrx_text), (6 bytes).
Removing epd_2in9b_v2_test.o(.text), (932 bytes).
Removing epd_2in9b_v3_test.o(.rev16_text), (4 bytes).
Removing epd_2in9b_v3_test.o(.revsh_text), (4 bytes).
Removing epd_2in9b_v3_test.o(.rrx_text), (6 bytes).
Removing epd_2in9b_v3_test.o(.text), (932 bytes).
Removing epd_2in9d_test.o(.rev16_text), (4 bytes).
Removing epd_2in9d_test.o(.revsh_text), (4 bytes).
Removing epd_2in9d_test.o(.rrx_text), (6 bytes).
@ -1071,6 +1149,10 @@ Removing Unused input sections from the image.
Removing epd_2in66_test.o(.revsh_text), (4 bytes).
Removing epd_2in66_test.o(.rrx_text), (6 bytes).
Removing epd_2in66_test.o(.text), (1032 bytes).
Removing epd_2in66b_test.o(.rev16_text), (4 bytes).
Removing epd_2in66b_test.o(.revsh_text), (4 bytes).
Removing epd_2in66b_test.o(.rrx_text), (6 bytes).
Removing epd_2in66b_test.o(.text), (944 bytes).
Removing epd_3in7_test.o(.rev16_text), (4 bytes).
Removing epd_3in7_test.o(.revsh_text), (4 bytes).
Removing epd_3in7_test.o(.rrx_text), (6 bytes).
@ -1084,6 +1166,10 @@ Removing Unused input sections from the image.
Removing epd_4in2bc_test.o(.revsh_text), (4 bytes).
Removing epd_4in2bc_test.o(.rrx_text), (6 bytes).
Removing epd_4in2bc_test.o(.text), (984 bytes).
Removing epd_4in2b_v2_test.o(.rev16_text), (4 bytes).
Removing epd_4in2b_v2_test.o(.revsh_text), (4 bytes).
Removing epd_4in2b_v2_test.o(.rrx_text), (6 bytes).
Removing epd_4in2b_v2_test.o(.text), (992 bytes).
Removing epd_5in65f_test.o(.rev16_text), (4 bytes).
Removing epd_5in65f_test.o(.revsh_text), (4 bytes).
Removing epd_5in65f_test.o(.rrx_text), (6 bytes).
@ -1092,6 +1178,9 @@ Removing Unused input sections from the image.
Removing epd_5in83_test.o(.revsh_text), (4 bytes).
Removing epd_5in83_test.o(.rrx_text), (6 bytes).
Removing epd_5in83_test.o(.text), (852 bytes).
Removing epd_5in83_v2_test.o(.rev16_text), (4 bytes).
Removing epd_5in83_v2_test.o(.revsh_text), (4 bytes).
Removing epd_5in83_v2_test.o(.rrx_text), (6 bytes).
Removing epd_5in83bc_test.o(.rev16_text), (4 bytes).
Removing epd_5in83bc_test.o(.revsh_text), (4 bytes).
Removing epd_5in83bc_test.o(.rrx_text), (6 bytes).
@ -1099,6 +1188,7 @@ Removing Unused input sections from the image.
Removing epd_5in83b_v2_test.o(.rev16_text), (4 bytes).
Removing epd_5in83b_v2_test.o(.revsh_text), (4 bytes).
Removing epd_5in83b_v2_test.o(.rrx_text), (6 bytes).
Removing epd_5in83b_v2_test.o(.text), (1204 bytes).
Removing epd_7in5_test.o(.rev16_text), (4 bytes).
Removing epd_7in5_test.o(.revsh_text), (4 bytes).
Removing epd_7in5_test.o(.rrx_text), (6 bytes).
@ -1114,7 +1204,7 @@ Removing Unused input sections from the image.
Removing epd_7in5b_v2_test.o(.rev16_text), (4 bytes).
Removing epd_7in5b_v2_test.o(.revsh_text), (4 bytes).
Removing epd_7in5b_v2_test.o(.rrx_text), (6 bytes).
Removing epd_7in5b_v2_test.o(.text), (880 bytes).
Removing epd_7in5b_v2_test.o(.text), (884 bytes).
Removing epd_7in5b_hd_test.o(.rev16_text), (4 bytes).
Removing epd_7in5b_hd_test.o(.revsh_text), (4 bytes).
Removing epd_7in5b_hd_test.o(.rrx_text), (6 bytes).
@ -1136,7 +1226,7 @@ Removing Unused input sections from the image.
Removing epd_1in54_v2.o(.rev16_text), (4 bytes).
Removing epd_1in54_v2.o(.revsh_text), (4 bytes).
Removing epd_1in54_v2.o(.rrx_text), (6 bytes).
Removing epd_1in54_v2.o(.text), (752 bytes).
Removing epd_1in54_v2.o(.text), (796 bytes).
Removing epd_1in54b.o(.rev16_text), (4 bytes).
Removing epd_1in54b.o(.revsh_text), (4 bytes).
Removing epd_1in54b.o(.rrx_text), (6 bytes).
@ -1165,14 +1255,19 @@ Removing Unused input sections from the image.
Removing epd_2in9.o(.rrx_text), (6 bytes).
Removing epd_2in9.o(.text), (792 bytes).
Removing epd_2in9.o(.constdata), (60 bytes).
Removing epd_2in9_v2.o(.rev16_text), (4 bytes).
Removing epd_2in9_v2.o(.revsh_text), (4 bytes).
Removing epd_2in9_v2.o(.rrx_text), (6 bytes).
Removing epd_2in9_v2.o(.text), (1106 bytes).
Removing epd_2in9_v2.o(.data), (159 bytes).
Removing epd_2in9bc.o(.rev16_text), (4 bytes).
Removing epd_2in9bc.o(.revsh_text), (4 bytes).
Removing epd_2in9bc.o(.rrx_text), (6 bytes).
Removing epd_2in9bc.o(.text), (576 bytes).
Removing epd_2in9b_v2.o(.rev16_text), (4 bytes).
Removing epd_2in9b_v2.o(.revsh_text), (4 bytes).
Removing epd_2in9b_v2.o(.rrx_text), (6 bytes).
Removing epd_2in9b_v2.o(.text), (556 bytes).
Removing epd_2in9b_v3.o(.rev16_text), (4 bytes).
Removing epd_2in9b_v3.o(.revsh_text), (4 bytes).
Removing epd_2in9b_v3.o(.rrx_text), (6 bytes).
Removing epd_2in9b_v3.o(.text), (556 bytes).
Removing epd_2in9d.o(.rev16_text), (4 bytes).
Removing epd_2in9d.o(.revsh_text), (4 bytes).
Removing epd_2in9d.o(.rrx_text), (6 bytes).
@ -1195,7 +1290,7 @@ Removing Unused input sections from the image.
Removing epd_2in13b_v3.o(.rev16_text), (4 bytes).
Removing epd_2in13b_v3.o(.revsh_text), (4 bytes).
Removing epd_2in13b_v3.o(.rrx_text), (6 bytes).
Removing epd_2in13b_v3.o(.text), (584 bytes).
Removing epd_2in13b_v3.o(.text), (580 bytes).
Removing epd_2in13d.o(.rev16_text), (4 bytes).
Removing epd_2in13d.o(.revsh_text), (4 bytes).
Removing epd_2in13d.o(.rrx_text), (6 bytes).
@ -1206,6 +1301,10 @@ Removing Unused input sections from the image.
Removing epd_2in66.o(.rrx_text), (6 bytes).
Removing epd_2in66.o(.text), (704 bytes).
Removing epd_2in66.o(.constdata), (159 bytes).
Removing epd_2in66b.o(.rev16_text), (4 bytes).
Removing epd_2in66b.o(.revsh_text), (4 bytes).
Removing epd_2in66b.o(.rrx_text), (6 bytes).
Removing epd_2in66b.o(.text), (608 bytes).
Removing epd_3in7.o(.rev16_text), (4 bytes).
Removing epd_3in7.o(.revsh_text), (4 bytes).
Removing epd_3in7.o(.rrx_text), (6 bytes).
@ -1220,6 +1319,10 @@ Removing Unused input sections from the image.
Removing epd_4in2bc.o(.revsh_text), (4 bytes).
Removing epd_4in2bc.o(.rrx_text), (6 bytes).
Removing epd_4in2bc.o(.text), (528 bytes).
Removing epd_4in2b_v2.o(.rev16_text), (4 bytes).
Removing epd_4in2b_v2.o(.revsh_text), (4 bytes).
Removing epd_4in2b_v2.o(.rrx_text), (6 bytes).
Removing epd_4in2b_v2.o(.text), (524 bytes).
Removing epd_5in65f.o(.rev16_text), (4 bytes).
Removing epd_5in65f.o(.revsh_text), (4 bytes).
Removing epd_5in65f.o(.rrx_text), (6 bytes).
@ -1228,6 +1331,9 @@ Removing Unused input sections from the image.
Removing epd_5in83.o(.revsh_text), (4 bytes).
Removing epd_5in83.o(.rrx_text), (6 bytes).
Removing epd_5in83.o(.text), (640 bytes).
Removing epd_5in83_v2.o(.rev16_text), (4 bytes).
Removing epd_5in83_v2.o(.revsh_text), (4 bytes).
Removing epd_5in83_v2.o(.rrx_text), (6 bytes).
Removing epd_5in83bc.o(.rev16_text), (4 bytes).
Removing epd_5in83bc.o(.revsh_text), (4 bytes).
Removing epd_5in83bc.o(.rrx_text), (6 bytes).
@ -1235,6 +1341,7 @@ Removing Unused input sections from the image.
Removing epd_5in83b_v2.o(.rev16_text), (4 bytes).
Removing epd_5in83b_v2.o(.revsh_text), (4 bytes).
Removing epd_5in83b_v2.o(.rrx_text), (6 bytes).
Removing epd_5in83b_v2.o(.text), (1180 bytes).
Removing epd_7in5.o(.rev16_text), (4 bytes).
Removing epd_7in5.o(.revsh_text), (4 bytes).
Removing epd_7in5.o(.rrx_text), (6 bytes).
@ -1254,7 +1361,7 @@ Removing Unused input sections from the image.
Removing epd_7in5b_v2.o(.rev16_text), (4 bytes).
Removing epd_7in5b_v2.o(.revsh_text), (4 bytes).
Removing epd_7in5b_v2.o(.rrx_text), (6 bytes).
Removing epd_7in5b_v2.o(.text), (860 bytes).
Removing epd_7in5b_v2.o(.text), (892 bytes).
Removing epd_7in5b_hd.o(.rev16_text), (4 bytes).
Removing epd_7in5b_hd.o(.revsh_text), (4 bytes).
Removing epd_7in5b_hd.o(.rrx_text), (6 bytes).
@ -1278,7 +1385,7 @@ Removing Unused input sections from the image.
Removing cdrcmple.o(.text), (48 bytes).
Removing depilogue.o(.text), (186 bytes).
385 unused section(s) (total 625090 bytes) removed from the image.
424 unused section(s) (total 733723 bytes) removed from the image.
==============================================================================
@ -1316,34 +1423,34 @@ Image Symbol Table
../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 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.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 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.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 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.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/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.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/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 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 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.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/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 memcpyb.o ABSOLUTE
@ -1389,16 +1496,20 @@ Image Symbol Table
..\User\Examples\EPD_2in13bc_test.c 0x00000000 Number 0 epd_2in13bc_test.o ABSOLUTE
..\User\Examples\EPD_2in13d_test.c 0x00000000 Number 0 epd_2in13d_test.o ABSOLUTE
..\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_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
..\User\Examples\EPD_2in9b_V2_test.c 0x00000000 Number 0 epd_2in9b_v2_test.o ABSOLUTE
..\User\Examples\EPD_2in9b_V3_test.c 0x00000000 Number 0 epd_2in9b_v3_test.o ABSOLUTE
..\User\Examples\EPD_2in9bc_test.c 0x00000000 Number 0 epd_2in9bc_test.o ABSOLUTE
..\User\Examples\EPD_2in9d_test.c 0x00000000 Number 0 epd_2in9d_test.o ABSOLUTE
..\User\Examples\EPD_3in7_test.c 0x00000000 Number 0 epd_3in7_test.o ABSOLUTE
..\User\Examples\EPD_4in2_test.c 0x00000000 Number 0 epd_4in2_test.o ABSOLUTE
..\User\Examples\EPD_4in2b_V2_test.c 0x00000000 Number 0 epd_4in2b_v2_test.o ABSOLUTE
..\User\Examples\EPD_4in2bc_test.c 0x00000000 Number 0 epd_4in2bc_test.o ABSOLUTE
..\User\Examples\EPD_5in65f_test.c 0x00000000 Number 0 epd_5in65f_test.o ABSOLUTE
..\User\Examples\EPD_5in83_V2_test.c 0x00000000 Number 0 epd_5in83_v2_test.o ABSOLUTE
..\User\Examples\EPD_5in83_test.c 0x00000000 Number 0 epd_5in83_test.o ABSOLUTE
..\User\Examples\EPD_5in83b_V2_test.c 0x00000000 Number 0 epd_5in83b_v2_test.o ABSOLUTE
..\User\Examples\EPD_5in83bc_test.c 0x00000000 Number 0 epd_5in83bc_test.o ABSOLUTE
@ -1429,17 +1540,21 @@ Image Symbol Table
..\User\e-Paper\EPD_2in13bc.c 0x00000000 Number 0 epd_2in13bc.o ABSOLUTE
..\User\e-Paper\EPD_2in13d.c 0x00000000 Number 0 epd_2in13d.o ABSOLUTE
..\User\e-Paper\EPD_2in66.c 0x00000000 Number 0 epd_2in66.o ABSOLUTE
..\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_2in9.c 0x00000000 Number 0 epd_2in9.o ABSOLUTE
..\User\e-Paper\EPD_2in9b_V2.c 0x00000000 Number 0 epd_2in9b_v2.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
..\User\e-Paper\EPD_2in9bc.c 0x00000000 Number 0 epd_2in9bc.o ABSOLUTE
..\User\e-Paper\EPD_2in9d.c 0x00000000 Number 0 epd_2in9d.o ABSOLUTE
..\User\e-Paper\EPD_3in7.c 0x00000000 Number 0 epd_3in7.o ABSOLUTE
..\User\e-Paper\EPD_4in2.c 0x00000000 Number 0 epd_4in2.o ABSOLUTE
..\User\e-Paper\EPD_4in2b_V2.c 0x00000000 Number 0 epd_4in2b_v2.o ABSOLUTE
..\User\e-Paper\EPD_4in2bc.c 0x00000000 Number 0 epd_4in2bc.o ABSOLUTE
..\User\e-Paper\EPD_5in65f.c 0x00000000 Number 0 epd_5in65f.o ABSOLUTE
..\User\e-Paper\EPD_5in83.c 0x00000000 Number 0 epd_5in83.o ABSOLUTE
..\User\e-Paper\EPD_5in83_V2.c 0x00000000 Number 0 epd_5in83_v2.o ABSOLUTE
..\User\e-Paper\EPD_5in83b_V2.c 0x00000000 Number 0 epd_5in83b_v2.o ABSOLUTE
..\User\e-Paper\EPD_5in83bc.c 0x00000000 Number 0 epd_5in83bc.o ABSOLUTE
..\User\e-Paper\EPD_7in5.c 0x00000000 Number 0 epd_7in5.o ABSOLUTE
@ -1462,16 +1577,20 @@ Image Symbol Table
..\\User\\Examples\\EPD_2in13bc_test.c 0x00000000 Number 0 epd_2in13bc_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in13d_test.c 0x00000000 Number 0 epd_2in13d_test.o ABSOLUTE
..\\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_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
..\\User\\Examples\\EPD_2in9b_V2_test.c 0x00000000 Number 0 epd_2in9b_v2_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in9b_V3_test.c 0x00000000 Number 0 epd_2in9b_v3_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in9bc_test.c 0x00000000 Number 0 epd_2in9bc_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in9d_test.c 0x00000000 Number 0 epd_2in9d_test.o ABSOLUTE
..\\User\\Examples\\EPD_3in7_test.c 0x00000000 Number 0 epd_3in7_test.o ABSOLUTE
..\\User\\Examples\\EPD_4in2_test.c 0x00000000 Number 0 epd_4in2_test.o ABSOLUTE
..\\User\\Examples\\EPD_4in2b_V2_test.c 0x00000000 Number 0 epd_4in2b_v2_test.o ABSOLUTE
..\\User\\Examples\\EPD_4in2bc_test.c 0x00000000 Number 0 epd_4in2bc_test.o ABSOLUTE
..\\User\\Examples\\EPD_5in65f_test.c 0x00000000 Number 0 epd_5in65f_test.o ABSOLUTE
..\\User\\Examples\\EPD_5in83_V2_test.c 0x00000000 Number 0 epd_5in83_v2_test.o ABSOLUTE
..\\User\\Examples\\EPD_5in83_test.c 0x00000000 Number 0 epd_5in83_test.o ABSOLUTE
..\\User\\Examples\\EPD_5in83b_V2_test.c 0x00000000 Number 0 epd_5in83b_v2_test.o ABSOLUTE
..\\User\\Examples\\EPD_5in83bc_test.c 0x00000000 Number 0 epd_5in83bc_test.o ABSOLUTE
@ -1494,17 +1613,21 @@ Image Symbol Table
..\\User\\e-Paper\\EPD_2in13bc.c 0x00000000 Number 0 epd_2in13bc.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in13d.c 0x00000000 Number 0 epd_2in13d.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in66.c 0x00000000 Number 0 epd_2in66.o ABSOLUTE
..\\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_2in9.c 0x00000000 Number 0 epd_2in9.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in9b_V2.c 0x00000000 Number 0 epd_2in9b_v2.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
..\\User\\e-Paper\\EPD_2in9bc.c 0x00000000 Number 0 epd_2in9bc.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in9d.c 0x00000000 Number 0 epd_2in9d.o ABSOLUTE
..\\User\\e-Paper\\EPD_3in7.c 0x00000000 Number 0 epd_3in7.o ABSOLUTE
..\\User\\e-Paper\\EPD_4in2.c 0x00000000 Number 0 epd_4in2.o ABSOLUTE
..\\User\\e-Paper\\EPD_4in2b_V2.c 0x00000000 Number 0 epd_4in2b_v2.o ABSOLUTE
..\\User\\e-Paper\\EPD_4in2bc.c 0x00000000 Number 0 epd_4in2bc.o ABSOLUTE
..\\User\\e-Paper\\EPD_5in65f.c 0x00000000 Number 0 epd_5in65f.o ABSOLUTE
..\\User\\e-Paper\\EPD_5in83.c 0x00000000 Number 0 epd_5in83.o ABSOLUTE
..\\User\\e-Paper\\EPD_5in83_V2.c 0x00000000 Number 0 epd_5in83_v2.o ABSOLUTE
..\\User\\e-Paper\\EPD_5in83b_V2.c 0x00000000 Number 0 epd_5in83b_v2.o ABSOLUTE
..\\User\\e-Paper\\EPD_5in83bc.c 0x00000000 Number 0 epd_5in83bc.o ABSOLUTE
..\\User\\e-Paper\\EPD_7in5.c 0x00000000 Number 0 epd_7in5.o ABSOLUTE
@ -1588,33 +1711,33 @@ Image Symbol Table
.text 0x08003b7c Section 0 stm32f1xx_hal_cortex.o(.text)
NVIC_SetPriority 0x08003d2d Thumb Code 32 stm32f1xx_hal_cortex.o(.text)
.text 0x08003d54 Section 0 system_stm32f1xx.o(.text)
.text 0x08003e00 Section 0 epd_5in83b_v2_test.o(.text)
.text 0x080042b4 Section 0 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_SendCommand 0x080046dd Thumb Code 46 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_SendData 0x0800470b Thumb Code 46 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_TurnOnDisplay 0x08004739 Thumb Code 20 epd_5in83b_v2.o(.text)
.text 0x08004750 Section 0 dev_config.o(.text)
.text 0x080047b8 Section 0 gui_paint.o(.text)
.text 0x080055bc Section 0 memseta.o(.text)
.text 0x080055e0 Section 0 uidiv.o(.text)
.text 0x0800560c Section 36 init.o(.text)
i.__0printf$3 0x08005630 Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08005650 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x0800565e Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08005660 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08005670 Section 0 printf3.o(i._printf_core)
_printf_core 0x08005671 Thumb Code 436 printf3.o(i._printf_core)
i.free 0x08005828 Section 0 malloc.o(i.free)
i.malloc 0x08005878 Section 0 malloc.o(i.malloc)
.constdata 0x080058e4 Section 16 system_stm32f1xx.o(.constdata)
.constdata 0x080058f4 Section 8 system_stm32f1xx.o(.constdata)
.constdata 0x080058fc Section 38886 imagedata.o(.constdata)
.constdata 0x0800f0e2 Section 38886 imagedata.o(.constdata)
.constdata 0x080188c8 Section 1140 font12.o(.constdata)
.constdata 0x08018d3c Section 1494 font12cn.o(.constdata)
.constdata 0x08019312 Section 3040 font16.o(.constdata)
.constdata 0x08019ef2 Section 4482 font24cn.o(.constdata)
.conststring 0x0801b074 Section 233 gui_paint.o(.conststring)
.text 0x08003e00 Section 0 epd_5in83_v2_test.o(.text)
.text 0x08004168 Section 0 epd_5in83_v2.o(.text)
EPD_5in83_V2_ReadBusy 0x08004169 Thumb Code 50 epd_5in83_v2.o(.text)
EPD_5in83_V2_SendCommand 0x08004315 Thumb Code 46 epd_5in83_v2.o(.text)
EPD_5in83_V2_SendData 0x08004343 Thumb Code 46 epd_5in83_v2.o(.text)
EPD_5in83_V2_TurnOnDisplay 0x08004371 Thumb Code 20 epd_5in83_v2.o(.text)
.text 0x080043c0 Section 0 dev_config.o(.text)
.text 0x08004428 Section 0 gui_paint.o(.text)
.text 0x0800522c Section 0 memseta.o(.text)
.text 0x08005250 Section 0 uidiv.o(.text)
.text 0x0800527c Section 36 init.o(.text)
i.__0printf$3 0x080052a0 Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x080052c0 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x080052ce Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x080052d0 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x080052e0 Section 0 printf3.o(i._printf_core)
_printf_core 0x080052e1 Thumb Code 436 printf3.o(i._printf_core)
i.free 0x08005498 Section 0 malloc.o(i.free)
i.malloc 0x080054e8 Section 0 malloc.o(i.malloc)
.constdata 0x08005554 Section 16 system_stm32f1xx.o(.constdata)
.constdata 0x08005564 Section 8 system_stm32f1xx.o(.constdata)
.constdata 0x0800556c Section 38886 imagedata.o(.constdata)
.constdata 0x0800ed52 Section 1140 font12.o(.constdata)
.constdata 0x0800f1c6 Section 1494 font12cn.o(.constdata)
.constdata 0x0800f79c Section 3040 font16.o(.constdata)
.constdata 0x0801037c Section 4482 font24cn.o(.constdata)
.conststring 0x08011500 Section 233 gui_paint.o(.conststring)
.data 0x20000000 Section 12 stm32f1xx_hal.o(.data)
.data 0x2000000c Section 4 system_stm32f1xx.o(.data)
.data 0x20000010 Section 8 font12.o(.data)
@ -1627,8 +1750,8 @@ Image Symbol Table
.bss 0x20000044 Section 88 spi.o(.bss)
.bss 0x2000009c Section 64 usart.o(.bss)
.bss 0x200000dc Section 24 gui_paint.o(.bss)
HEAP 0x200000f8 Section 36864 startup_stm32f103xe.o(HEAP)
STACK 0x200090f8 Section 4096 startup_stm32f103xe.o(STACK)
HEAP 0x200000f8 Section 40960 startup_stm32f103xe.o(HEAP)
STACK 0x2000a0f8 Section 4096 startup_stm32f103xe.o(STACK)
Global Symbols
@ -1913,65 +2036,61 @@ Image Symbol Table
HAL_SYSTICK_IRQHandler 0x08003d25 Thumb Code 8 stm32f1xx_hal_cortex.o(.text)
SystemInit 0x08003d55 Thumb Code 56 system_stm32f1xx.o(.text)
SystemCoreClockUpdate 0x08003d8d Thumb Code 82 system_stm32f1xx.o(.text)
EPD_5in83b_V2_test 0x08003e01 Thumb Code 876 epd_5in83b_v2_test.o(.text)
EPD_5IN83B_V2_WaitUntilIdle 0x080042b5 Thumb Code 48 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_Init 0x080042e5 Thumb Code 190 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_Clear 0x080043a3 Thumb Code 66 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_Clear_C 0x080043e5 Thumb Code 182 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_Display 0x0800449b Thumb Code 100 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_DisplayPicture 0x080044ff Thumb Code 450 epd_5in83b_v2.o(.text)
EPD_5IN83B_V2_Sleep 0x080046c1 Thumb Code 28 epd_5in83b_v2.o(.text)
DEV_SPI_WriteByte 0x08004751 Thumb Code 18 dev_config.o(.text)
DEV_Module_Init 0x08004763 Thumb Code 38 dev_config.o(.text)
DEV_Module_Exit 0x08004789 Thumb Code 38 dev_config.o(.text)
Paint_NewImage 0x080047b9 Thumb Code 56 gui_paint.o(.text)
Paint_SelectImage 0x080047f1 Thumb Code 6 gui_paint.o(.text)
Paint_SetRotate 0x080047f7 Thumb Code 44 gui_paint.o(.text)
Paint_SetScale 0x08004823 Thumb Code 80 gui_paint.o(.text)
Paint_SetMirroring 0x08004873 Thumb Code 62 gui_paint.o(.text)
Paint_SetPixel 0x080048b1 Thumb Code 238 gui_paint.o(.text)
Paint_Clear 0x0800499f Thumb Code 104 gui_paint.o(.text)
Paint_ClearWindows 0x08004a07 Thumb Code 52 gui_paint.o(.text)
Paint_DrawPoint 0x08004a3b Thumb Code 180 gui_paint.o(.text)
Paint_DrawLine 0x08004aef Thumb Code 654 gui_paint.o(.text)
Paint_DrawRectangle 0x08004d7d Thumb Code 170 gui_paint.o(.text)
Paint_DrawCircle 0x08004e27 Thumb Code 528 gui_paint.o(.text)
Paint_DrawChar 0x08005037 Thumb Code 172 gui_paint.o(.text)
Paint_DrawString_EN 0x080050e3 Thumb Code 116 gui_paint.o(.text)
Paint_DrawString_CN 0x08005157 Thumb Code 518 gui_paint.o(.text)
Paint_DrawNum 0x0800535d Thumb Code 140 gui_paint.o(.text)
Paint_DrawTime 0x080053e9 Thumb Code 282 gui_paint.o(.text)
Paint_DrawBitMap 0x08005503 Thumb Code 46 gui_paint.o(.text)
Paint_DrawBitMap_Block 0x08005531 Thumb Code 56 gui_paint.o(.text)
__aeabi_memset 0x080055bd Thumb Code 14 memseta.o(.text)
__aeabi_memset4 0x080055bd Thumb Code 0 memseta.o(.text)
__aeabi_memset8 0x080055bd Thumb Code 0 memseta.o(.text)
__aeabi_memclr 0x080055cb Thumb Code 4 memseta.o(.text)
__aeabi_memclr4 0x080055cb Thumb Code 0 memseta.o(.text)
__aeabi_memclr8 0x080055cb Thumb Code 0 memseta.o(.text)
_memset$wrapper 0x080055cf Thumb Code 18 memseta.o(.text)
__aeabi_uidiv 0x080055e1 Thumb Code 0 uidiv.o(.text)
__aeabi_uidivmod 0x080055e1 Thumb Code 44 uidiv.o(.text)
__scatterload 0x0800560d Thumb Code 28 init.o(.text)
__scatterload_rt2 0x0800560d Thumb Code 0 init.o(.text)
__0printf$3 0x08005631 Thumb Code 22 printf3.o(i.__0printf$3)
__1printf$3 0x08005631 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08005631 Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08005651 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x0800565f Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08005661 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
free 0x08005829 Thumb Code 76 malloc.o(i.free)
malloc 0x08005879 Thumb Code 92 malloc.o(i.malloc)
AHBPrescTable 0x080058e4 Data 16 system_stm32f1xx.o(.constdata)
APBPrescTable 0x080058f4 Data 8 system_stm32f1xx.o(.constdata)
gImage_5in83b_V2_b 0x080058fc Data 38886 imagedata.o(.constdata)
gImage_5in83b_V2_r 0x0800f0e2 Data 38886 imagedata.o(.constdata)
Font12_Table 0x080188c8 Data 1140 font12.o(.constdata)
Font12CN_Table 0x08018d3c Data 1494 font12cn.o(.constdata)
Font16_Table 0x08019312 Data 3040 font16.o(.constdata)
Font24CN_Table 0x08019ef2 Data 4482 font24cn.o(.constdata)
Region$$Table$$Base 0x0801b160 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0801b180 Number 0 anon$$obj.o(Region$$Table)
EPD_5in83_V2_test 0x08003e01 Thumb Code 506 epd_5in83_v2_test.o(.text)
EPD_5in83_V2_Init 0x0800419b Thumb Code 186 epd_5in83_v2.o(.text)
EPD_5in83_V2_Clear 0x08004255 Thumb Code 66 epd_5in83_v2.o(.text)
EPD_5in83_V2_Display 0x08004297 Thumb Code 98 epd_5in83_v2.o(.text)
EPD_5in83_V2_Sleep 0x080042f9 Thumb Code 28 epd_5in83_v2.o(.text)
DEV_SPI_WriteByte 0x080043c1 Thumb Code 18 dev_config.o(.text)
DEV_Module_Init 0x080043d3 Thumb Code 38 dev_config.o(.text)
DEV_Module_Exit 0x080043f9 Thumb Code 38 dev_config.o(.text)
Paint_NewImage 0x08004429 Thumb Code 56 gui_paint.o(.text)
Paint_SelectImage 0x08004461 Thumb Code 6 gui_paint.o(.text)
Paint_SetRotate 0x08004467 Thumb Code 44 gui_paint.o(.text)
Paint_SetScale 0x08004493 Thumb Code 80 gui_paint.o(.text)
Paint_SetMirroring 0x080044e3 Thumb Code 62 gui_paint.o(.text)
Paint_SetPixel 0x08004521 Thumb Code 238 gui_paint.o(.text)
Paint_Clear 0x0800460f Thumb Code 104 gui_paint.o(.text)
Paint_ClearWindows 0x08004677 Thumb Code 52 gui_paint.o(.text)
Paint_DrawPoint 0x080046ab Thumb Code 180 gui_paint.o(.text)
Paint_DrawLine 0x0800475f Thumb Code 654 gui_paint.o(.text)
Paint_DrawRectangle 0x080049ed Thumb Code 170 gui_paint.o(.text)
Paint_DrawCircle 0x08004a97 Thumb Code 528 gui_paint.o(.text)
Paint_DrawChar 0x08004ca7 Thumb Code 172 gui_paint.o(.text)
Paint_DrawString_EN 0x08004d53 Thumb Code 116 gui_paint.o(.text)
Paint_DrawString_CN 0x08004dc7 Thumb Code 518 gui_paint.o(.text)
Paint_DrawNum 0x08004fcd Thumb Code 140 gui_paint.o(.text)
Paint_DrawTime 0x08005059 Thumb Code 282 gui_paint.o(.text)
Paint_DrawBitMap 0x08005173 Thumb Code 46 gui_paint.o(.text)
Paint_DrawBitMap_Block 0x080051a1 Thumb Code 56 gui_paint.o(.text)
__aeabi_memset 0x0800522d Thumb Code 14 memseta.o(.text)
__aeabi_memset4 0x0800522d Thumb Code 0 memseta.o(.text)
__aeabi_memset8 0x0800522d Thumb Code 0 memseta.o(.text)
__aeabi_memclr 0x0800523b Thumb Code 4 memseta.o(.text)
__aeabi_memclr4 0x0800523b Thumb Code 0 memseta.o(.text)
__aeabi_memclr8 0x0800523b Thumb Code 0 memseta.o(.text)
_memset$wrapper 0x0800523f Thumb Code 18 memseta.o(.text)
__aeabi_uidiv 0x08005251 Thumb Code 0 uidiv.o(.text)
__aeabi_uidivmod 0x08005251 Thumb Code 44 uidiv.o(.text)
__scatterload 0x0800527d Thumb Code 28 init.o(.text)
__scatterload_rt2 0x0800527d Thumb Code 0 init.o(.text)
__0printf$3 0x080052a1 Thumb Code 22 printf3.o(i.__0printf$3)
__1printf$3 0x080052a1 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x080052a1 Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x080052c1 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x080052cf Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x080052d1 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
free 0x08005499 Thumb Code 76 malloc.o(i.free)
malloc 0x080054e9 Thumb Code 92 malloc.o(i.malloc)
AHBPrescTable 0x08005554 Data 16 system_stm32f1xx.o(.constdata)
APBPrescTable 0x08005564 Data 8 system_stm32f1xx.o(.constdata)
gImage_5in83_V2 0x0800556c Data 38886 imagedata.o(.constdata)
Font12_Table 0x0800ed52 Data 1140 font12.o(.constdata)
Font12CN_Table 0x0800f1c6 Data 1494 font12cn.o(.constdata)
Font16_Table 0x0800f79c Data 3040 font16.o(.constdata)
Font24CN_Table 0x0801037c Data 4482 font24cn.o(.constdata)
Region$$Table$$Base 0x080115ec Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0801160c Number 0 anon$$obj.o(Region$$Table)
uwTickFreq 0x20000000 Data 1 stm32f1xx_hal.o(.data)
uwTickPrio 0x20000004 Data 4 stm32f1xx_hal.o(.data)
uwTick 0x20000008 Data 4 stm32f1xx_hal.o(.data)
@ -1987,8 +2106,8 @@ Image Symbol Table
huart1 0x2000009c Data 64 usart.o(.bss)
Paint 0x200000dc Data 24 gui_paint.o(.bss)
__heap_base 0x200000f8 Data 0 startup_stm32f103xe.o(HEAP)
__heap_limit 0x200090f8 Data 0 startup_stm32f103xe.o(HEAP)
__initial_sp 0x2000a0f8 Data 0 startup_stm32f103xe.o(STACK)
__heap_limit 0x2000a0f8 Data 0 startup_stm32f103xe.o(HEAP)
__initial_sp 0x2000b0f8 Data 0 startup_stm32f103xe.o(STACK)
@ -1998,22 +2117,22 @@ Memory Map of the image
Image Entry point : 0x08000131
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0001b1c4, Max: 0x00080000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00011650, Max: 0x00080000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0001b180, Max: 0x00080000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0001160c, Max: 0x00080000, ABSOLUTE)
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 2521 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x08000130 0x08000130 0x00000004 Code RO 2821 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x08000134 0x08000134 0x00000004 Code RO 2824 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x08000138 0x08000138 0x00000000 Code RO 2826 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x08000138 0x08000138 0x00000000 Code RO 2828 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x08000138 0x08000138 0x00000008 Code RO 2829 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x08000140 0x08000140 0x00000000 Code RO 2831 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
0x08000140 0x08000140 0x00000000 Code RO 2833 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
0x08000140 0x08000140 0x00000004 Code RO 2822 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000130 0x08000130 0x00000000 Code RO 2736 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x08000130 0x08000130 0x00000004 Code RO 3036 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x08000134 0x08000134 0x00000004 Code RO 3039 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x08000138 0x08000138 0x00000000 Code RO 3041 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x08000138 0x08000138 0x00000000 Code RO 3043 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x08000138 0x08000138 0x00000008 Code RO 3044 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x08000140 0x08000140 0x00000000 Code RO 3046 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
0x08000140 0x08000140 0x00000000 Code RO 3048 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
0x08000140 0x08000140 0x00000004 Code RO 3037 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000144 0x08000144 0x00000024 Code RO 4 .text startup_stm32f103xe.o
0x08000168 0x08000168 0x000000c0 Code RO 13 .text main.o
0x08000228 0x08000228 0x00000054 Code RO 152 .text gpio.o
@ -2031,53 +2150,53 @@ Memory Map of the image
0x08003184 0x08003184 0x000009f8 Code RO 519 .text stm32f1xx_hal_dma.o
0x08003b7c 0x08003b7c 0x000001d8 Code RO 543 .text stm32f1xx_hal_cortex.o
0x08003d54 0x08003d54 0x000000ac Code RO 647 .text system_stm32f1xx.o
0x08003e00 0x08003e00 0x000004b4 Code RO 1379 .text epd_5in83b_v2_test.o
0x080042b4 0x080042b4 0x0000049c Code RO 2197 .text epd_5in83b_v2.o
0x08004750 0x08004750 0x00000068 Code RO 2365 .text dev_config.o
0x080047b8 0x080047b8 0x00000e04 Code RO 2390 .text gui_paint.o
0x080055bc 0x080055bc 0x00000024 Code RO 2528 .text mc_w.l(memseta.o)
0x080055e0 0x080055e0 0x0000002c Code RO 2836 .text mc_w.l(uidiv.o)
0x0800560c 0x0800560c 0x00000024 Code RO 2853 .text mc_w.l(init.o)
0x08005630 0x08005630 0x00000020 Code RO 2621 i.__0printf$3 mc_w.l(printf3.o)
0x08005650 0x08005650 0x0000000e Code RO 2863 i.__scatterload_copy mc_w.l(handlers.o)
0x0800565e 0x0800565e 0x00000002 Code RO 2864 i.__scatterload_null mc_w.l(handlers.o)
0x08005660 0x08005660 0x0000000e Code RO 2865 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x0800566e 0x0800566e 0x00000002 PAD
0x08005670 0x08005670 0x000001b8 Code RO 2628 i._printf_core mc_w.l(printf3.o)
0x08005828 0x08005828 0x00000050 Code RO 2793 i.free mc_w.l(malloc.o)
0x08005878 0x08005878 0x0000006c Code RO 2794 i.malloc mc_w.l(malloc.o)
0x080058e4 0x080058e4 0x00000010 Data RO 648 .constdata system_stm32f1xx.o
0x080058f4 0x080058f4 0x00000008 Data RO 649 .constdata system_stm32f1xx.o
0x080058fc 0x080058fc 0x000097e6 Data RO 705 .constdata imagedata.o
0x0800f0e2 0x0800f0e2 0x000097e6 Data RO 706 .constdata imagedata.o
0x080188c8 0x080188c8 0x00000474 Data RO 2437 .constdata font12.o
0x08018d3c 0x08018d3c 0x000005d6 Data RO 2451 .constdata font12cn.o
0x08019312 0x08019312 0x00000be0 Data RO 2465 .constdata font16.o
0x08019ef2 0x08019ef2 0x00001182 Data RO 2507 .constdata font24cn.o
0x0801b074 0x0801b074 0x000000e9 Data RO 2392 .conststring gui_paint.o
0x0801b15d 0x0801b15d 0x00000003 PAD
0x0801b160 0x0801b160 0x00000020 Data RO 2861 Region$$Table anon$$obj.o
0x08003e00 0x08003e00 0x00000368 Code RO 1438 .text epd_5in83_v2_test.o
0x08004168 0x08004168 0x00000258 Code RO 2364 .text epd_5in83_v2.o
0x080043c0 0x080043c0 0x00000068 Code RO 2580 .text dev_config.o
0x08004428 0x08004428 0x00000e04 Code RO 2605 .text gui_paint.o
0x0800522c 0x0800522c 0x00000024 Code RO 2743 .text mc_w.l(memseta.o)
0x08005250 0x08005250 0x0000002c Code RO 3051 .text mc_w.l(uidiv.o)
0x0800527c 0x0800527c 0x00000024 Code RO 3068 .text mc_w.l(init.o)
0x080052a0 0x080052a0 0x00000020 Code RO 2836 i.__0printf$3 mc_w.l(printf3.o)
0x080052c0 0x080052c0 0x0000000e Code RO 3078 i.__scatterload_copy mc_w.l(handlers.o)
0x080052ce 0x080052ce 0x00000002 Code RO 3079 i.__scatterload_null mc_w.l(handlers.o)
0x080052d0 0x080052d0 0x0000000e Code RO 3080 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x080052de 0x080052de 0x00000002 PAD
0x080052e0 0x080052e0 0x000001b8 Code RO 2843 i._printf_core mc_w.l(printf3.o)
0x08005498 0x08005498 0x00000050 Code RO 3008 i.free mc_w.l(malloc.o)
0x080054e8 0x080054e8 0x0000006c Code RO 3009 i.malloc mc_w.l(malloc.o)
0x08005554 0x08005554 0x00000010 Data RO 648 .constdata system_stm32f1xx.o
0x08005564 0x08005564 0x00000008 Data RO 649 .constdata system_stm32f1xx.o
0x0800556c 0x0800556c 0x000097e6 Data RO 707 .constdata imagedata.o
0x0800ed52 0x0800ed52 0x00000474 Data RO 2652 .constdata font12.o
0x0800f1c6 0x0800f1c6 0x000005d6 Data RO 2666 .constdata font12cn.o
0x0800f79c 0x0800f79c 0x00000be0 Data RO 2680 .constdata font16.o
0x0801037c 0x0801037c 0x00001182 Data RO 2722 .constdata font24cn.o
0x080114fe 0x080114fe 0x00000002 PAD
0x08011500 0x08011500 0x000000e9 Data RO 2607 .conststring gui_paint.o
0x080115e9 0x080115e9 0x00000003 PAD
0x080115ec 0x080115ec 0x00000020 Data RO 3076 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0801b180, Size: 0x0000a0f8, Max: 0x00010000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0801160c, Size: 0x0000b0f8, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x0801b180 0x0000000c Data RW 493 .data stm32f1xx_hal.o
0x2000000c 0x0801b18c 0x00000004 Data RW 650 .data system_stm32f1xx.o
0x20000010 0x0801b190 0x00000008 Data RW 2438 .data font12.o
0x20000018 0x0801b198 0x0000000c Data RW 2452 .data font12cn.o
0x20000024 0x0801b1a4 0x00000008 Data RW 2466 .data font16.o
0x2000002c 0x0801b1ac 0x0000000c Data RW 2508 .data font24cn.o
0x20000038 0x0801b1b8 0x00000004 Data RW 2835 .data mc_w.l(stdout.o)
0x2000003c 0x0801b1bc 0x00000004 Data RW 2840 .data mc_w.l(mvars.o)
0x20000040 0x0801b1c0 0x00000004 Data RW 2841 .data mc_w.l(mvars.o)
0x20000000 0x0801160c 0x0000000c Data RW 493 .data stm32f1xx_hal.o
0x2000000c 0x08011618 0x00000004 Data RW 650 .data system_stm32f1xx.o
0x20000010 0x0801161c 0x00000008 Data RW 2653 .data font12.o
0x20000018 0x08011624 0x0000000c Data RW 2667 .data font12cn.o
0x20000024 0x08011630 0x00000008 Data RW 2681 .data font16.o
0x2000002c 0x08011638 0x0000000c Data RW 2723 .data font24cn.o
0x20000038 0x08011644 0x00000004 Data RW 3050 .data mc_w.l(stdout.o)
0x2000003c 0x08011648 0x00000004 Data RW 3055 .data mc_w.l(mvars.o)
0x20000040 0x0801164c 0x00000004 Data RW 3056 .data mc_w.l(mvars.o)
0x20000044 - 0x00000058 Zero RW 177 .bss spi.o
0x2000009c - 0x00000040 Zero RW 207 .bss usart.o
0x200000dc - 0x00000018 Zero RW 2391 .bss gui_paint.o
0x200000f4 0x0801b1c4 0x00000004 PAD
0x200000f8 - 0x00009000 Zero RW 2 HEAP startup_stm32f103xe.o
0x200090f8 - 0x00001000 Zero RW 1 STACK startup_stm32f103xe.o
0x200000dc - 0x00000018 Zero RW 2606 .bss gui_paint.o
0x200000f4 0x08011650 0x00000004 PAD
0x200000f8 - 0x0000a000 Zero RW 2 HEAP startup_stm32f103xe.o
0x2000a0f8 - 0x00001000 Zero RW 1 STACK startup_stm32f103xe.o
==============================================================================
@ -2088,18 +2207,18 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
104 10 0 0 0 780 dev_config.o
1180 66 0 0 0 4866 epd_5in83b_v2.o
1204 328 0 0 0 1349 epd_5in83b_v2_test.o
600 60 0 0 0 2555 epd_5in83_v2.o
872 366 0 0 0 1256 epd_5in83_v2_test.o
0 0 1140 8 0 1361 font12.o
0 0 1494 12 0 1363 font12cn.o
0 0 3040 8 0 1361 font16.o
0 0 4482 12 0 1363 font24cn.o
84 8 0 0 0 799 gpio.o
3588 660 233 0 24 13545 gui_paint.o
0 0 77772 0 0 2697 imagedata.o
0 0 38886 0 0 3005 imagedata.o
192 36 0 0 0 460465 main.o
180 32 0 0 88 1413 spi.o
36 8 304 0 40960 796 startup_stm32f103xe.o
36 8 304 0 45056 796 startup_stm32f103xe.o
376 28 0 12 0 4769 stm32f1xx_hal.o
472 8 0 0 0 27198 stm32f1xx_hal_cortex.o
2552 66 0 0 0 6117 stm32f1xx_hal_dma.o
@ -2114,9 +2233,9 @@ Image component sizes
212 34 0 0 64 1657 usart.o
----------------------------------------------------------------------
21624 1606 88524 56 41140 579776 Object Totals
20712 1638 49640 56 45236 577680 Object Totals
0 0 32 0 0 0 (incl. Generated)
2 0 3 0 4 0 (incl. Padding)
2 0 5 0 4 0 (incl. Padding)
----------------------------------------------------------------------
@ -2159,15 +2278,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
22452 1656 88524 68 41140 578188 Grand Totals
22452 1656 88524 68 41140 578188 ELF Image Totals
22452 1656 88524 68 0 0 ROM Totals
21540 1688 49640 68 45236 576092 Grand Totals
21540 1688 49640 68 45236 576092 ELF Image Totals
21540 1688 49640 68 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 110976 ( 108.38kB)
Total RW Size (RW Data + ZI Data) 41208 ( 40.24kB)
Total ROM Size (Code + RO Data + RW Data) 111044 ( 108.44kB)
Total RO Size (Code + RO Data) 71180 ( 69.51kB)
Total RW Size (RW Data + ZI Data) 45304 ( 44.24kB)
Total ROM Size (Code + RO Data + RW Data) 71248 ( 69.58kB)
==============================================================================

View file

@ -102,23 +102,23 @@ ARM Macro Assembler Page 2
57 00001000 ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
58 00001000 ; </h>
59 00001000
60 00001000 00009000
60 00001000 0000A000
Heap_Size
EQU 0x9000
EQU 0xa000
61 00001000
62 00001000 AREA HEAP, NOINIT, READWRITE, ALIGN=
3
63 00000000 __heap_base
64 00000000 Heap_Mem
SPACE Heap_Size
65 00009000 __heap_limit
66 00009000
67 00009000 PRESERVE8
68 00009000 THUMB
69 00009000
70 00009000
71 00009000 ; Vector Table Mapped to Address 0 at Reset
72 00009000 AREA RESET, DATA, READONLY
65 0000A000 __heap_limit
66 0000A000
67 0000A000 PRESERVE8
68 0000A000 THUMB
69 0000A000
70 0000A000
71 0000A000 ; Vector Table Mapped to Address 0 at Reset
72 0000A000 AREA RESET, DATA, READONLY
73 00000000 EXPORT __Vectors
74 00000000 EXPORT __Vectors_End
75 00000000 EXPORT __Vectors_Size
@ -653,7 +653,7 @@ Symbol: __heap_base
Uses
At line 351 in file startup_stm32f103xe.s
Comment: __heap_base used once
__heap_limit 00009000
__heap_limit 0000A000
Symbol: __heap_limit
Definitions
@ -1414,7 +1414,7 @@ Symbol: WWDG_IRQHandler
ARM Macro Assembler Page 1 Alphabetic symbol ordering
Absolute symbols
Heap_Size 00009000
Heap_Size 0000A000
Symbol: Heap_Size
Definitions

View file

@ -57,7 +57,7 @@ __initial_sp
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x9000
Heap_Size EQU 0xa000
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base

View file

@ -82,8 +82,9 @@ int main(void)
// EPD_2in7b_test();
// EPD_2in9_test();
// EPD_2in9_V2_test();
// EPD_2in9bc_test();
// EPD_2in9b_V2_test();
// EPD_2in9b_V3_test();
// EPD_2in9d_test();
// EPD_2in13_test();
@ -93,15 +94,17 @@ int main(void)
// EPD_2in13d_test();
// EPD_2in66_test();
// EPD_2in66b_test();
// EPD_3in7_test();
// EPD_4in2_test();
// EPD_4in2bc_test();
// EPD_4in2b_V2_test();
// EPD_5in65f_test();
// EPD_5in83_test();
// EPD_5in83_V2_test();
// EPD_5in83bc_test();
// EPD_5in83b_V2_test();

View file

@ -0,0 +1,128 @@
/*****************************************************************************
* | File : EPD_2IN66b_test.c
* | Author : Waveshare team
* | Function : 2.66inch e-paper b test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-02
* | 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_2in66b.h"
int EPD_2in66b_test(void)
{
printf("EPD_2IN66B_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_2IN66B_Init();
EPD_2IN66B_Clear();
DEV_Delay_ms(500);
//Create a new image cache
UBYTE *BlackImage, *RedImage;
/* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
UWORD Imagesize = ((EPD_2IN66B_WIDTH % 8 == 0)? (EPD_2IN66B_WIDTH / 8 ): (EPD_2IN66B_WIDTH / 8 + 1)) * EPD_2IN66B_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("Paint_NewImage\r\n");
Paint_NewImage(BlackImage, EPD_2IN66B_WIDTH, EPD_2IN66B_HEIGHT, 270, WHITE);
Paint_Clear(WHITE);
Paint_NewImage(RedImage, EPD_2IN66B_WIDTH, EPD_2IN66B_HEIGHT, 270, WHITE);
Paint_Clear(WHITE);
#if 1 //show image for array
printf("show image for array\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
Paint_DrawBitMap(gImage_2in66bb);
Paint_SelectImage(RedImage);
Paint_Clear(WHITE);
Paint_DrawBitMap(gImage_2in66br);
EPD_2IN66B_Display(BlackImage, RedImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
printf("Drawing\r\n");
//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);
EPD_2IN66B_Display(BlackImage, RedImage);
DEV_Delay_ms(3000);
#endif
printf("Clear...\r\n");
EPD_2IN66B_Clear();
printf("Goto Sleep...\r\n");
EPD_2IN66B_Sleep();
free(BlackImage);
BlackImage = NULL;
free(RedImage);
RedImage = 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

@ -0,0 +1,155 @@
/*****************************************************************************
* | File : EPD_2IN9_V2_test.c
* | Author : Waveshare team
* | Function : 2.9inch e-paper V2 test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-09
* | 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_2in9_V2.h"
int EPD_2in9_V2_test(void)
{
printf("EPD_2IN9_V2_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_2IN9_V2_Init();
EPD_2IN9_V2_Clear();
//Create a new image cache
UBYTE *BlackImage;
UWORD Imagesize = ((EPD_2IN9_V2_WIDTH % 8 == 0)? (EPD_2IN9_V2_WIDTH / 8 ): (EPD_2IN9_V2_WIDTH / 8 + 1)) * EPD_2IN9_V2_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
printf("Paint_NewImage\r\n");
Paint_NewImage(BlackImage, EPD_2IN9_V2_WIDTH, EPD_2IN9_V2_HEIGHT, 90, WHITE);
Paint_Clear(WHITE);
#if 1 //show image for array
Paint_NewImage(BlackImage, EPD_2IN9_V2_WIDTH, EPD_2IN9_V2_HEIGHT, 90, WHITE);
printf("show image for array\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
Paint_DrawBitMap(gImage_2in9);
EPD_2IN9_V2_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
Paint_NewImage(BlackImage, EPD_2IN9_V2_WIDTH, EPD_2IN9_V2_HEIGHT, 90, WHITE);
printf("Drawing\r\n");
//1.Select Image
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
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_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_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawCircle(105, 95, 20, WHITE, 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_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
Paint_DrawString_CN(130, 0,"你好abc", &Font12CN, BLACK, WHITE);
Paint_DrawString_CN(130, 20, "微雪电子", &Font24CN, WHITE, BLACK);
EPD_2IN9_V2_Display_Base(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 //Partial refresh, example shows time
Paint_NewImage(BlackImage, EPD_2IN9_V2_WIDTH, EPD_2IN9_V2_HEIGHT, 90, WHITE);
printf("Partial refresh\r\n");
Paint_SelectImage(BlackImage);
PAINT_TIME sPaint_time;
sPaint_time.Hour = 12;
sPaint_time.Min = 34;
sPaint_time.Sec = 56;
UBYTE num = 10;
for (;;) {
sPaint_time.Sec = sPaint_time.Sec + 1;
if (sPaint_time.Sec == 60) {
sPaint_time.Min = sPaint_time.Min + 1;
sPaint_time.Sec = 0;
if (sPaint_time.Min == 60) {
sPaint_time.Hour = sPaint_time.Hour + 1;
sPaint_time.Min = 0;
if (sPaint_time.Hour == 24) {
sPaint_time.Hour = 0;
sPaint_time.Min = 0;
sPaint_time.Sec = 0;
}
}
}
Paint_ClearWindows(150, 80, 150 + Font20.Width * 7, 80 + Font20.Height, WHITE);
Paint_DrawTime(150, 80, &sPaint_time, &Font20, WHITE, BLACK);
num = num - 1;
if(num == 0) {
break;
}
EPD_2IN9_V2_Display_Partial(BlackImage);
DEV_Delay_ms(500);//Analog clock 1s
}
#endif
printf("Clear...\r\n");
EPD_2IN9_V2_Init();
EPD_2IN9_V2_Clear();
printf("Goto Sleep...\r\n");
EPD_2IN9_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

@ -1,11 +1,11 @@
/*****************************************************************************
* | File : EPD_2in9bc_test.c
* | File : EPD_2in9b_V3_test.c
* | Author : Waveshare team
* | Function : 2.9inch B&C e-paper test demo
* | Function : 2.9inch B V3 e-paper test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-07-03
* | This version: V1.1
* | Date : 2020-12-03
* | Info :
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
@ -28,21 +28,21 @@
#
******************************************************************************/
#include "EPD_Test.h"
#include "EPD_2IN9B_V2.h"
#include "EPD_2IN9B_V3.h"
int EPD_2in9b_V2_test(void)
int EPD_2in9b_V3_test(void)
{
printf("EPD_2IN9B_V2_test Demo\r\n");
printf("EPD_2IN9B_V3_test Demo\r\n");
DEV_Module_Init();
printf("e-Paper Init and Clear...\r\n");
EPD_2IN9B_V2_Init();
EPD_2IN9B_V2_Clear();
EPD_2IN9B_V3_Init();
EPD_2IN9B_V3_Clear();
DEV_Delay_ms(500);
//Create a new image cache named IMAGE_BW and fill it with white
UBYTE *BlackImage, *RYImage; // Red or Yellow
UWORD Imagesize = ((EPD_2IN9B_V2_WIDTH % 8 == 0)? (EPD_2IN9B_V2_WIDTH / 8 ): (EPD_2IN9B_V2_WIDTH / 8 + 1)) * EPD_2IN9B_V2_HEIGHT;
UWORD Imagesize = ((EPD_2IN9B_V3_WIDTH % 8 == 0)? (EPD_2IN9B_V3_WIDTH / 8 ): (EPD_2IN9B_V3_WIDTH / 8 + 1)) * EPD_2IN9B_V3_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
@ -52,8 +52,8 @@ int EPD_2in9b_V2_test(void)
return -1;
}
printf("NewImage:BlackImage and RYImage\r\n");
Paint_NewImage(BlackImage, EPD_2IN9B_V2_WIDTH, EPD_2IN9B_V2_HEIGHT, 270, WHITE);
Paint_NewImage(RYImage, EPD_2IN9B_V2_WIDTH, EPD_2IN9B_V2_HEIGHT, 270, WHITE);
Paint_NewImage(BlackImage, EPD_2IN9B_V3_WIDTH, EPD_2IN9B_V3_HEIGHT, 270, WHITE);
Paint_NewImage(RYImage, EPD_2IN9B_V3_WIDTH, EPD_2IN9B_V3_HEIGHT, 270, WHITE);
//Select Image
Paint_SelectImage(BlackImage);
@ -63,7 +63,7 @@ int EPD_2in9b_V2_test(void)
#if 1 // show image for array
printf("show image for array\r\n");
EPD_2IN9B_V2_Display(gImage_2in9bc_b, gImage_2in9bc_ry);
EPD_2IN9B_V3_Display(gImage_2in9bc_b, gImage_2in9bc_ry);
DEV_Delay_ms(5000);
#endif
@ -96,15 +96,15 @@ int EPD_2in9b_V2_test(void)
Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
printf("EPD_Display\r\n");
EPD_2IN9B_V2_Display(BlackImage, RYImage);
EPD_2IN9B_V3_Display(BlackImage, RYImage);
DEV_Delay_ms(5000);
#endif
// clear EPD
printf("Clear...\r\n");
EPD_2IN9B_V2_Clear();
EPD_2IN9B_V3_Clear();
//deep sleep mode, free heap ram
printf("Goto Sleep...\r\n");
EPD_2IN9B_V2_Sleep();
EPD_2IN9B_V3_Sleep();
free(BlackImage);
free(RYImage);
BlackImage = NULL;

View file

@ -0,0 +1,123 @@
/*****************************************************************************
* | File : EPD_4in2b_V2_test.c
* | Author : Waveshare team
* | Function : 4.2inch B V2 e-paper test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-11-25
* | 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_4in2b_V2.h"
int EPD_4in2b_V2_test(void)
{
printf("EPD_4IN2B_V2_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_4IN2B_V2_Init();
EPD_4IN2B_V2_Clear();
DEV_Delay_ms(500);
//Create a new image cache named IMAGE_BW and fill it with white
UBYTE *BlackImage, *RYImage; // Red or Yellow
UWORD Imagesize = ((EPD_4IN2B_V2_WIDTH % 8 == 0)? (EPD_4IN2B_V2_WIDTH / 8 ): (EPD_4IN2B_V2_WIDTH / 8 + 1)) * EPD_4IN2B_V2_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
if((RYImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for red memory...\r\n");
return -1;
}
printf("NewImage:BlackImage and RYImage\r\n");
Paint_NewImage(BlackImage, EPD_4IN2B_V2_WIDTH, EPD_4IN2B_V2_HEIGHT, 180, WHITE);
Paint_NewImage(RYImage, EPD_4IN2B_V2_WIDTH, EPD_4IN2B_V2_HEIGHT, 180, WHITE);
//Select Image
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
Paint_SelectImage(RYImage);
Paint_Clear(WHITE);
#if 1 // show image for array
printf("show image for array\r\n");
EPD_4IN2B_V2_Display(gImage_4in2bc_b, gImage_4in2bc_ry);
DEV_Delay_ms(2000);
#endif
#if 1 // Drawing on the image
/*Horizontal screen*/
//1.Draw black image
printf("Draw black image\r\n");
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
printf("Draw red image\r\n");
Paint_SelectImage(RYImage);
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_4IN2B_V2_Display(BlackImage, RYImage);
DEV_Delay_ms(2000);
#endif
printf("Clear...\r\n");
EPD_4IN2B_V2_Clear();
printf("Goto Sleep...\r\n");
EPD_4IN2B_V2_Sleep();
free(BlackImage);
free(RYImage);
BlackImage = NULL;
RYImage = 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

@ -0,0 +1,111 @@
/*****************************************************************************
* | File : EPD_5in83_V2_test.c
* | Author : Waveshare team
* | Function : 5.83inch e-paper test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-09
* | 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_5in83_V2.h"
#include "time.h"
int EPD_5in83_V2_test(void)
{
printf("EPD_5IN83_V2_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_5in83_V2_Init();
EPD_5in83_V2_Clear();
DEV_Delay_ms(500);
//Create a new image cache
UBYTE *BlackImage;
/* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
UWORD Imagesize = ((EPD_5in83_V2_WIDTH % 8 == 0)? (EPD_5in83_V2_WIDTH / 8 ): (EPD_5in83_V2_WIDTH / 8 + 1)) * EPD_5in83_V2_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
printf("Paint_NewImage\r\n");
Paint_NewImage(BlackImage, EPD_5in83_V2_WIDTH, EPD_5in83_V2_HEIGHT, 180, WHITE);
#if 1 // show image for array
printf("show image for array\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
Paint_DrawBitMap(gImage_5in83_V2);
EPD_5in83_V2_Display(BlackImage);
DEV_Delay_ms(500);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
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_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_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawCircle(105, 95, 20, WHITE, 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_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
Paint_DrawString_CN(130, 0, " ÄãºÃabc", &Font12CN, BLACK, WHITE);
Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
printf("EPD_Display\r\n");
EPD_5in83_V2_Display(BlackImage);
DEV_Delay_ms(2000);
#endif
printf("Clear...\r\n");
EPD_5in83_V2_Clear();
printf("Goto Sleep...\r\n");
EPD_5in83_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

@ -1,11 +1,11 @@
/*****************************************************************************
* | File : EPD_7in5bc_test.c
* | File : EPD_7in5b_V2_test.c
* | Author : Waveshare team
* | Function : 5.83inch B&C e-paper test demo
* | Function : 7.5inch B V2 e-paper test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2019-06-13
* | This version: V1.1
* | Date : 2020-11-30
* | Info :
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
@ -32,7 +32,7 @@
int EPD_7in5b_V2_test(void)
{
printf("EPD_7IN5BC_test Demo\r\n");
printf("EPD_7IN5B_V2_test Demo\r\n");
DEV_Module_Init();
printf("e-Paper Init and Clear...\r\n");
@ -82,8 +82,8 @@ int EPD_7in5b_V2_test(void)
Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
EPD_7IN5B_V2_WritePicture(Image, 0);
Paint_Clear(WHITE);
EPD_7IN5B_V2_WritePicture(Image, 1);
Paint_Clear(WHITE);
EPD_7IN5B_V2_WritePicture(Image, 1);
//2.Draw red image
Paint_Clear(WHITE);
Paint_DrawCircle(160, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
@ -94,8 +94,8 @@ int EPD_7in5b_V2_test(void)
Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
EPD_7IN5B_V2_WritePicture(Image, 2);
Paint_Clear(WHITE);
EPD_7IN5B_V2_WritePicture(Image, 3);
Paint_Clear(WHITE);
EPD_7IN5B_V2_WritePicture(Image, 3);
printf("EPD_Display\r\n");
DEV_Delay_ms(2000);
#endif

View file

@ -48,8 +48,9 @@ int EPD_2in7_test(void);
int EPD_2in7b_test(void);
int EPD_2in9_test(void);
int EPD_2in9_V2_test(void);
int EPD_2in9bc_test(void);
int EPD_2in9b_V2_test(void);
int EPD_2in9b_V3_test(void);
int EPD_2in9d_test(void);
int EPD_2in13_test(void);
@ -59,15 +60,18 @@ int EPD_2in13b_V3_test(void);
int EPD_2in13d_test(void);
int EPD_2in66_test(void);
int EPD_2in66b_test(void);
int EPD_3in7_test(void);
int EPD_4in2_test(void);
int EPD_4in2bc_test(void);
int EPD_4in2b_V2_test(void);
int EPD_5in65f_test(void);
int EPD_5in83_test(void);
int EPD_5in83_V2_test(void);
int EPD_5in83bc_test(void);
int EPD_5in83b_V2_test(void);

File diff suppressed because it is too large Load diff

View file

@ -42,6 +42,8 @@ extern const unsigned char gImage_1in54c_Yellow[];
extern const unsigned char gImage_2in7[];
extern const unsigned char gImage_2in7b_Black[5808];
extern const unsigned char gImage_2in7b_Red[5808];
extern const unsigned char gImage_2in7b_Black_V2[5808];
extern const unsigned char gImage_2in7b_Red_V2[5808];
extern const unsigned char gImage_2in7_4Gray[];
@ -57,6 +59,8 @@ extern const unsigned char gImage_2in13c_y[];
extern const unsigned char gImage_2in13d[];
extern const unsigned char gImage_2in66[];
extern const unsigned char gImage_2in66bb[];
extern const unsigned char gImage_2in66br[];
extern const unsigned char gImage_3in7[]; //4 Gray
@ -68,6 +72,7 @@ extern const unsigned char gImage_4in2bc_ry[];
extern const unsigned char gImage_5in65f[];//192*143
extern const unsigned char gImage_5in83[];
extern const unsigned char gImage_5in83_V2[];
extern const unsigned char gImage_5in83bc_b[];
extern const unsigned char gImage_5in83bc_ry[];
extern const unsigned char gImage_5in83b_V2_b[];

View file

@ -97,7 +97,7 @@ void Paint_NewImage(UBYTE *image, UWORD Width, UWORD Height, UWORD Rotate, UWORD
Paint.WidthMemory = Width;
Paint.HeightMemory = Height;
Paint.Color = Color;
Paint.Scale = 2;
Paint.Scale = 2;
Paint.WidthByte = (Width % 8 == 0)? (Width / 8 ): (Width / 8 + 1);
Paint.HeightByte = Height;

View file

@ -88,7 +88,7 @@ static void EPD_1IN02_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(20);
DEV_Digital_Write(EPD_RST_PIN, 0);// Module reset
DEV_Delay_ms(20);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(20);

View file

@ -110,7 +110,7 @@ static void EPD_1IN54_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -39,7 +39,7 @@ static void EPD_1IN54_V2_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}
@ -241,6 +241,13 @@ void EPD_1IN54_V2_DisplayPart(UBYTE *Image)
Width = (EPD_1IN54_V2_WIDTH % 8 == 0)? (EPD_1IN54_V2_WIDTH / 8 ): (EPD_1IN54_V2_WIDTH / 8 + 1);
Height = EPD_1IN54_V2_HEIGHT;
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(10);
EPD_1IN54_V2_SendCommand(0x3C); //BorderWavefrom
EPD_1IN54_V2_SendData(0x80);
UDOUBLE Addr = 0;
EPD_1IN54_V2_SendCommand(0x24);
for (UWORD j = 0; j < Height; j++) {

View file

@ -112,7 +112,7 @@ static void EPD_1IN54B_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
}

View file

@ -40,7 +40,7 @@ static void EPD_1IN54B_V2_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
}

View file

@ -90,7 +90,7 @@ static void EPD_1IN54C_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
}

View file

@ -73,7 +73,7 @@ static void EPD_2IN13_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -97,7 +97,7 @@ static void EPD_2IN13_V2_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -30,7 +30,7 @@
******************************************************************************/
#include "EPD_2in13b_V3.h"
#include "Debug.h"
//元太屏
/******************************************************************************
function : Software reset
parameter:
@ -40,9 +40,9 @@ static void EPD_2IN13B_V3_Reset(void)
DEV_Digital_Write(EPD_CS_PIN, 1);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(1000);
DEV_Delay_ms(100);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(10);
}

View file

@ -92,7 +92,7 @@ static void EPD_2IN13BC_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(200);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -174,7 +174,7 @@ static void EPD_2IN13D_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(200);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -59,7 +59,7 @@ static void EPD_2IN66_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(20);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -0,0 +1,213 @@
/*****************************************************************************
* | File : EPD_2in66b.c
* | Author : Waveshare team
* | Function : 2.66inch e-paper b
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-02
* | 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_2in66b.h"
#include "Debug.h"
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_2IN66B_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_2IN66B_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_2IN66B_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_2IN66B_ReadBusy(void)
{
Debug("e-Paper busy\r\n");
DEV_Delay_ms(50);
while(DEV_Digital_Read(EPD_BUSY_PIN) == 1) { //LOW: idle, HIGH: busy
DEV_Delay_ms(10);
}
DEV_Delay_ms(50);
Debug("e-Paper busy release\r\n");
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
static void EPD_2IN66B_TurnOnDisplay(void)
{
EPD_2IN66B_SendCommand(0x20);
EPD_2IN66B_ReadBusy();
}
/******************************************************************************
function : Setting the display window
parameter:
******************************************************************************/
static void EPD_2IN66B_SetWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend)
{
EPD_2IN66B_SendCommand(0x44); // SET_RAM_X_ADDRESS_START_END_POSITION
EPD_2IN66B_SendData((Xstart>>3) & 0x1F);
EPD_2IN66B_SendData((Xend>>3) & 0x1F);
EPD_2IN66B_SendCommand(0x45); // SET_RAM_Y_ADDRESS_START_END_POSITION
EPD_2IN66B_SendData(Ystart & 0xFF);
EPD_2IN66B_SendData((Ystart >> 8) & 0x01);
EPD_2IN66B_SendData(Yend & 0xFF);
EPD_2IN66B_SendData((Yend >> 8) & 0x01);
}
/******************************************************************************
function : Set Cursor
parameter:
******************************************************************************/
static void EPD_2IN66B_SetCursor(UWORD Xstart, UWORD Ystart)
{
EPD_2IN66B_SendCommand(0x4E); // SET_RAM_X_ADDRESS_COUNTER
EPD_2IN66B_SendData(Xstart & 0x1F);
EPD_2IN66B_SendCommand(0x4F); // SET_RAM_Y_ADDRESS_COUNTER
EPD_2IN66B_SendData(Ystart & 0xFF);
EPD_2IN66B_SendData((Ystart >> 8) & 0x01);
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_2IN66B_Init(void)
{
EPD_2IN66B_Reset();
EPD_2IN66B_ReadBusy();
EPD_2IN66B_SendCommand(0x12);//soft reset
EPD_2IN66B_ReadBusy();
EPD_2IN66B_SendCommand(0x11); //data entry mode
EPD_2IN66B_SendData(0x03);
EPD_2IN66B_SetWindows(0, 0, EPD_2IN66B_WIDTH-1, EPD_2IN66B_HEIGHT-1);
EPD_2IN66B_SendCommand(0x21); // Display update control
EPD_2IN66B_SendData(0x00);
EPD_2IN66B_SendData(0x80);
EPD_2IN66B_SetCursor(0, 0);
EPD_2IN66B_ReadBusy();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_2IN66B_Display(UBYTE *ImageBlack, UBYTE*ImageRed)
{
UWORD Width, Height;
Width = (EPD_2IN66B_WIDTH % 8 == 0)? (EPD_2IN66B_WIDTH / 8 ): (EPD_2IN66B_WIDTH / 8 + 1);
Height = EPD_2IN66B_HEIGHT;
EPD_2IN66B_SendCommand(0x24);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN66B_SendData(ImageBlack[i + j * Width]);
}
}
EPD_2IN66B_SendCommand(0x26);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN66B_SendData(~ImageRed[i + j * Width]);
}
}
EPD_2IN66B_TurnOnDisplay();
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_2IN66B_Clear(void)
{
UWORD Width, Height;
Width = (EPD_2IN66B_WIDTH % 8 == 0)? (EPD_2IN66B_WIDTH / 8 ): (EPD_2IN66B_WIDTH / 8 + 1);
Height = EPD_2IN66B_HEIGHT;
EPD_2IN66B_SendCommand(0x24);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN66B_SendData(0xff);
}
}
EPD_2IN66B_SendCommand(0x26);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN66B_SendData(0x00);
}
}
EPD_2IN66B_TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_2IN66B_Sleep(void)
{
EPD_2IN66B_SendCommand(0x10);
EPD_2IN66B_SendData(0x01);
}

View file

@ -0,0 +1,44 @@
/*****************************************************************************
* | File : EPD_2in66b.h
* | Author : Waveshare team
* | Function : 2.66inch e-paper b
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-02
* | 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_2IN66B_H_
#define __EPD_2IN66B_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN66B_WIDTH 152
#define EPD_2IN66B_HEIGHT 296
void EPD_2IN66B_Init(void);
void EPD_2IN66B_Display(UBYTE *ImageBlack, UBYTE*ImageRed);
void EPD_2IN66B_Clear(void);
void EPD_2IN66B_Sleep(void);
#endif

View file

@ -202,7 +202,7 @@ static void EPD_2in7_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -153,7 +153,7 @@ static void EPD_2IN7B_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -104,7 +104,7 @@ static void EPD_2IN9_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -0,0 +1,282 @@
/*****************************************************************************
* | File : EPD_2in9_V2.c
* | Author : Waveshare team
* | Function : 2.9inch e-paper V2
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-09
* | 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_2in9_V2.h"
#include "Debug.h"
UBYTE _WF_PARTIAL_2IN9[159] =
{
0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0A,0x0,0x0,0x0,0x0,0x0,0x2,
0x1,0x0,0x0,0x0,0x0,0x0,0x0,
0x1,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0,
0x22,0x17,0x41,0xB0,0x32,0x36,
};
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_2IN9_V2_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(100);
}
/******************************************************************************
function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_2IN9_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_2IN9_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:
******************************************************************************/
void EPD_2IN9_V2_ReadBusy(void)
{
Debug("e-Paper busy\r\n");
while(1)
{ //=1 BUSY
if(DEV_Digital_Read(EPD_BUSY_PIN)==0)
break;
DEV_Delay_ms(50);
}
DEV_Delay_ms(50);
Debug("e-Paper busy release\r\n");
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
static void EPD_2IN9_V2_TurnOnDisplay(void)
{
EPD_2IN9_V2_SendCommand(0x22); //Display Update Control
EPD_2IN9_V2_SendData(0xF7);
EPD_2IN9_V2_SendCommand(0x20); //Activate Display Update Sequence
EPD_2IN9_V2_ReadBusy();
}
static void EPD_2IN9_V2_TurnOnDisplay_Partial(void)
{
EPD_2IN9_V2_SendCommand(0x22); //Display Update Control
EPD_2IN9_V2_SendData(0xFF);
EPD_2IN9_V2_SendCommand(0x20); //Activate Display Update Sequence
EPD_2IN9_V2_ReadBusy();
}
/******************************************************************************
function : Setting the display window
parameter:
******************************************************************************/
static void EPD_2IN9_V2_SetWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend)
{
EPD_2IN9_V2_SendCommand(0x44); // SET_RAM_X_ADDRESS_START_END_POSITION
EPD_2IN9_V2_SendData((Xstart>>3) & 0xFF);
EPD_2IN9_V2_SendData((Xend>>3) & 0xFF);
EPD_2IN9_V2_SendCommand(0x45); // SET_RAM_Y_ADDRESS_START_END_POSITION
EPD_2IN9_V2_SendData(Ystart & 0xFF);
EPD_2IN9_V2_SendData((Ystart >> 8) & 0xFF);
EPD_2IN9_V2_SendData(Yend & 0xFF);
EPD_2IN9_V2_SendData((Yend >> 8) & 0xFF);
}
/******************************************************************************
function : Set Cursor
parameter:
******************************************************************************/
static void EPD_2IN9_V2_SetCursor(UWORD Xstart, UWORD Ystart)
{
EPD_2IN9_V2_SendCommand(0x4E); // SET_RAM_X_ADDRESS_COUNTER
EPD_2IN9_V2_SendData(Xstart & 0xFF);
EPD_2IN9_V2_SendCommand(0x4F); // SET_RAM_Y_ADDRESS_COUNTER
EPD_2IN9_V2_SendData(Ystart & 0xFF);
EPD_2IN9_V2_SendData((Ystart >> 8) & 0xFF);
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_2IN9_V2_Init(void)
{
EPD_2IN9_V2_Reset();
DEV_Delay_ms(100);
EPD_2IN9_V2_ReadBusy();
EPD_2IN9_V2_SendCommand(0x12); //SWRESET
EPD_2IN9_V2_ReadBusy();
EPD_2IN9_V2_SendCommand(0x01); //Driver output control
EPD_2IN9_V2_SendData(0x27);
EPD_2IN9_V2_SendData(0x01);
EPD_2IN9_V2_SendData(0x00);
EPD_2IN9_V2_SendCommand(0x11); //data entry mode
EPD_2IN9_V2_SendData(0x03);
EPD_2IN9_V2_SetWindows(0, 0, EPD_2IN9_V2_WIDTH-1, EPD_2IN9_V2_HEIGHT-1);
EPD_2IN9_V2_SendCommand(0x3C); //BorderWavefrom
EPD_2IN9_V2_SendData(0x05);
EPD_2IN9_V2_SendCommand(0x21); // Display update control
EPD_2IN9_V2_SendData(0x00);
EPD_2IN9_V2_SendData(0x80);
EPD_2IN9_V2_SendCommand(0x18); //Read built-in temperature sensor
EPD_2IN9_V2_SendData(0x80);
EPD_2IN9_V2_SetCursor(0, 0);
EPD_2IN9_V2_ReadBusy();
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_2IN9_V2_Clear(void)
{
UWORD i;
EPD_2IN9_V2_SendCommand(0x24); //write RAM for black(0)/white (1)
for(i=0;i<4736;i++)
{
EPD_2IN9_V2_SendData(0xff);
}
EPD_2IN9_V2_TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_2IN9_V2_Display(UBYTE *Image)
{
UWORD i;
EPD_2IN9_V2_SendCommand(0x24); //write RAM for black(0)/white (1)
for(i=0;i<4736;i++)
{
EPD_2IN9_V2_SendData(Image[i]);
}
EPD_2IN9_V2_TurnOnDisplay();
}
void EPD_2IN9_V2_Display_Base(UBYTE *Image)
{
UWORD i;
EPD_2IN9_V2_SendCommand(0x24); //Write Black and White image to RAM
for(i=0;i<4736;i++)
{
EPD_2IN9_V2_SendData(Image[i]);
}
EPD_2IN9_V2_SendCommand(0x26); //Write Black and White image to RAM
for(i=0;i<4736;i++)
{
EPD_2IN9_V2_SendData(Image[i]);
}
EPD_2IN9_V2_TurnOnDisplay();
}
void EPD_2IN9_V2_Display_Partial(UBYTE *Image)
{
UWORD i;
//Reset
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(5);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(10);
EPD_2IN9_V2_SendCommand(0x3C); //BorderWavefrom
EPD_2IN9_V2_SendData(0x80);
EPD_2IN9_V2_SetWindows(0, 0, EPD_2IN9_V2_WIDTH-1, EPD_2IN9_V2_HEIGHT-1);
EPD_2IN9_V2_SetCursor(0, 0);
EPD_2IN9_V2_SendCommand(0x24); //Write Black and White image to RAM
for(i=0;i<4736;i++)
{
EPD_2IN9_V2_SendData(Image[i]);
}
EPD_2IN9_V2_TurnOnDisplay_Partial();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_2IN9_V2_Sleep(void)
{
EPD_2IN9_V2_SendCommand(0x10); //enter deep sleep
EPD_2IN9_V2_SendData(0x01);
DEV_Delay_ms(100);
}

View file

@ -0,0 +1,47 @@
/*****************************************************************************
* | File : EPD_2in9_V2.h
* | Author : Waveshare team
* | Function : 2.9inch e-paper V2
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-09
* | 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_2IN9_V2_H_
#define __EPD_2IN9_V2_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN9_V2_WIDTH 128
#define EPD_2IN9_V2_HEIGHT 296
void EPD_2IN9_V2_Init(void);
void EPD_2IN9_V2_Clear(void);
void EPD_2IN9_V2_Display(UBYTE *Image);
void EPD_2IN9_V2_Display_Base(UBYTE *Image);
void EPD_2IN9_V2_Display_Partial(UBYTE *Image);
void EPD_2IN9_V2_Sleep(void);
#endif

View file

@ -1,11 +1,11 @@
/*****************************************************************************
* | File : EPD_2in9b_V2.c
* | File : EPD_2in9b_V3.c
* | Author : Waveshare team
* | Function : 2.9inch e-paper b V2
* | Function : 2.9inch e-paper b V3
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-07-03
* | This version: V1.1
* | Date : 2020-12-03
* | Info :
* -----------------------------------------------------------------------------
#
@ -28,14 +28,14 @@
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_2in9b_V2.h"
#include "EPD_2in9b_V3.h"
#include "Debug.h"
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_2IN9B_V2_Reset(void)
static void EPD_2IN9B_V3_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
@ -50,7 +50,7 @@ function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_2IN9B_V2_SendCommand(UBYTE Reg)
static void EPD_2IN9B_V3_SendCommand(UBYTE Reg)
{
DEV_Digital_Write(EPD_DC_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 0);
@ -63,7 +63,7 @@ function : send data
parameter:
Data : Write data
******************************************************************************/
static void EPD_2IN9B_V2_SendData(UBYTE Data)
static void EPD_2IN9B_V3_SendData(UBYTE Data)
{
DEV_Digital_Write(EPD_DC_PIN, 1);
DEV_Digital_Write(EPD_CS_PIN, 0);
@ -75,13 +75,13 @@ static void EPD_2IN9B_V2_SendData(UBYTE Data)
function : Wait until the busy_pin goes LOW
parameter:
******************************************************************************/
void EPD_2IN9B_V2_ReadBusy(void)
void EPD_2IN9B_V3_ReadBusy(void)
{
Debug("e-Paper busy\r\n");
UBYTE busy;
do
{
EPD_2IN9B_V2_SendCommand(0x71);
EPD_2IN9B_V3_SendCommand(0x71);
busy = DEV_Digital_Read(EPD_BUSY_PIN);
busy =!(busy & 0x01);
}
@ -94,24 +94,24 @@ void EPD_2IN9B_V2_ReadBusy(void)
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_2IN9B_V2_Init(void)
void EPD_2IN9B_V3_Init(void)
{
EPD_2IN9B_V2_Reset();
EPD_2IN9B_V3_Reset();
EPD_2IN9B_V2_SendCommand(0x04);
EPD_2IN9B_V2_ReadBusy();//waiting for the electronic paper IC to release the idle signal
EPD_2IN9B_V3_SendCommand(0x04);
EPD_2IN9B_V3_ReadBusy();//waiting for the electronic paper IC to release the idle signal
EPD_2IN9B_V2_SendCommand(0x00);//panel setting
EPD_2IN9B_V2_SendData(0x0f);//LUT from OTP128x296
EPD_2IN9B_V2_SendData(0x89);//Temperature sensor, boost and other related timing settings
EPD_2IN9B_V3_SendCommand(0x00);//panel setting
EPD_2IN9B_V3_SendData(0x0f);//LUT from OTP128x296
EPD_2IN9B_V3_SendData(0x89);//Temperature sensor, boost and other related timing settings
EPD_2IN9B_V2_SendCommand(0x61);//resolution setting
EPD_2IN9B_V2_SendData (0x80);
EPD_2IN9B_V2_SendData (0x01);
EPD_2IN9B_V2_SendData (0x28);
EPD_2IN9B_V3_SendCommand(0x61);//resolution setting
EPD_2IN9B_V3_SendData (0x80);
EPD_2IN9B_V3_SendData (0x01);
EPD_2IN9B_V3_SendData (0x28);
EPD_2IN9B_V2_SendCommand(0X50);//VCOM AND DATA INTERVAL SETTING
EPD_2IN9B_V2_SendData(0x77);//WBmode:VBDF 17|D7 VBDW 97 VBDB 57
EPD_2IN9B_V3_SendCommand(0X50);//VCOM AND DATA INTERVAL SETTING
EPD_2IN9B_V3_SendData(0x77);//WBmode:VBDF 17|D7 VBDW 97 VBDB 57
//WBRmode:VBDF F7 VBDW 77 VBDB 37 VBDR B7
}
@ -119,71 +119,71 @@ void EPD_2IN9B_V2_Init(void)
function : Clear screen
parameter:
******************************************************************************/
void EPD_2IN9B_V2_Clear(void)
void EPD_2IN9B_V3_Clear(void)
{
UWORD Width = (EPD_2IN9B_V2_WIDTH % 8 == 0)? (EPD_2IN9B_V2_WIDTH / 8 ): (EPD_2IN9B_V2_WIDTH / 8 + 1);
UWORD Height = EPD_2IN9B_V2_HEIGHT;
UWORD Width = (EPD_2IN9B_V3_WIDTH % 8 == 0)? (EPD_2IN9B_V3_WIDTH / 8 ): (EPD_2IN9B_V3_WIDTH / 8 + 1);
UWORD Height = EPD_2IN9B_V3_HEIGHT;
//send black data
EPD_2IN9B_V2_SendCommand(0x10);
EPD_2IN9B_V3_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN9B_V2_SendData(0xFF);
EPD_2IN9B_V3_SendData(0xFF);
}
}
//send red data
EPD_2IN9B_V2_SendCommand(0x13);
EPD_2IN9B_V3_SendCommand(0x13);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN9B_V2_SendData(0xFF);
EPD_2IN9B_V3_SendData(0xFF);
}
}
EPD_2IN9B_V2_SendCommand(0x12);
EPD_2IN9B_V2_ReadBusy();
EPD_2IN9B_V3_SendCommand(0x12);
EPD_2IN9B_V3_ReadBusy();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_2IN9B_V2_Display(const UBYTE *blackimage, const UBYTE *ryimage)
void EPD_2IN9B_V3_Display(const UBYTE *blackimage, const UBYTE *ryimage)
{
UWORD Width, Height;
Width = (EPD_2IN9B_V2_WIDTH % 8 == 0)? (EPD_2IN9B_V2_WIDTH / 8 ): (EPD_2IN9B_V2_WIDTH / 8 + 1);
Height = EPD_2IN9B_V2_HEIGHT;
Width = (EPD_2IN9B_V3_WIDTH % 8 == 0)? (EPD_2IN9B_V3_WIDTH / 8 ): (EPD_2IN9B_V3_WIDTH / 8 + 1);
Height = EPD_2IN9B_V3_HEIGHT;
//send black data
EPD_2IN9B_V2_SendCommand(0x10);
EPD_2IN9B_V3_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN9B_V2_SendData(blackimage[i + j * Width]);
EPD_2IN9B_V3_SendData(blackimage[i + j * Width]);
}
}
EPD_2IN9B_V2_SendCommand(0x92);
EPD_2IN9B_V3_SendCommand(0x92);
//send red data
EPD_2IN9B_V2_SendCommand(0x13);
EPD_2IN9B_V3_SendCommand(0x13);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN9B_V2_SendData(ryimage[i + j * Width]);
EPD_2IN9B_V3_SendData(ryimage[i + j * Width]);
}
}
EPD_2IN9B_V2_SendCommand(0x92);
EPD_2IN9B_V3_SendCommand(0x92);
EPD_2IN9B_V2_SendCommand(0x12);
EPD_2IN9B_V2_ReadBusy();
EPD_2IN9B_V3_SendCommand(0x12);
EPD_2IN9B_V3_ReadBusy();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_2IN9B_V2_Sleep(void)
void EPD_2IN9B_V3_Sleep(void)
{
EPD_2IN9B_V2_SendCommand(0x02); // POWER_OFF
EPD_2IN9B_V2_ReadBusy();
EPD_2IN9B_V2_SendCommand(0x07); // DEEP_SLEEP
EPD_2IN9B_V2_SendData(0xA5); // check code
EPD_2IN9B_V3_SendCommand(0x02); // POWER_OFF
EPD_2IN9B_V3_ReadBusy();
EPD_2IN9B_V3_SendCommand(0x07); // DEEP_SLEEP
EPD_2IN9B_V3_SendData(0xA5); // check code
}

View file

@ -0,0 +1,45 @@
/*****************************************************************************
* | File : EPD_2in9b V3.h
* | Author : Waveshare team
* | Function : 2.9inch e-paper b V3
* | Info :
*----------------
* | This version: V1.1
* | Date : 2020-12-03
* | 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_2IN9B_V3_H_
#define __EPD_2IN9B_V3_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN9B_V3_WIDTH 128
#define EPD_2IN9B_V3_HEIGHT 296
void EPD_2IN9B_V3_Init(void);
void EPD_2IN9B_V3_Clear(void);
void EPD_2IN9B_V3_Display(const UBYTE *blackimage, const UBYTE *ryimage);
void EPD_2IN9B_V3_Sleep(void);
#endif

View file

@ -165,7 +165,7 @@ static void EPD_2IN9D_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -273,7 +273,7 @@ static void EPD_4IN2_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(200);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -0,0 +1,184 @@
/*****************************************************************************
* | File : EPD_4in2b_V2.c
* | Author : Waveshare team
* | Function : 4.2inch e-paper b V2
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-11-25
* | 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_4in2b_V2.h"
#include "Debug.h"
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_4IN2B_V2_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(5);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}
/******************************************************************************
function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_4IN2B_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_4IN2B_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:
******************************************************************************/
void EPD_4IN2B_V2_ReadBusy(void)
{
Debug("e-Paper busy\r\n");
unsigned char busy;
do{
EPD_4IN2B_V2_SendCommand(0x71);
busy = DEV_Digital_Read(EPD_BUSY_PIN);
busy =!(busy & 0x01);
}while(busy);
Debug("e-Paper busy release\r\n");
DEV_Delay_ms(200);
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
static void EPD_4IN2B_V2_TurnOnDisplay(void)
{
EPD_4IN2B_V2_SendCommand(0x12); // DISPLAY_REFRESH
DEV_Delay_ms(100);
EPD_4IN2B_V2_ReadBusy();
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_4IN2B_V2_Init(void)
{
EPD_4IN2B_V2_Reset();
EPD_4IN2B_V2_SendCommand(0x04);
EPD_4IN2B_V2_ReadBusy();
EPD_4IN2B_V2_SendCommand(0x00);
EPD_4IN2B_V2_SendData(0x0f);
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_4IN2B_V2_Clear(void)
{
UWORD Width, Height;
Width = (EPD_4IN2B_V2_WIDTH % 8 == 0)? (EPD_4IN2B_V2_WIDTH / 8 ): (EPD_4IN2B_V2_WIDTH / 8 + 1);
Height = EPD_4IN2B_V2_HEIGHT;
EPD_4IN2B_V2_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_4IN2B_V2_SendData(0xFF);
}
}
EPD_4IN2B_V2_SendCommand(0x13);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_4IN2B_V2_SendData(0xFF);
}
}
EPD_4IN2B_V2_TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_4IN2B_V2_Display(const UBYTE *blackimage, const UBYTE *ryimage)
{
UWORD Width, Height;
Width = (EPD_4IN2B_V2_WIDTH % 8 == 0)? (EPD_4IN2B_V2_WIDTH / 8 ): (EPD_4IN2B_V2_WIDTH / 8 + 1);
Height = EPD_4IN2B_V2_HEIGHT;
EPD_4IN2B_V2_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_4IN2B_V2_SendData(blackimage[i + j * Width]);
}
}
EPD_4IN2B_V2_SendCommand(0x13);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_4IN2B_V2_SendData(ryimage[i + j * Width]);
}
}
EPD_4IN2B_V2_TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_4IN2B_V2_Sleep(void)
{
EPD_4IN2B_V2_SendCommand(0X50);
EPD_4IN2B_V2_SendData(0xf7); //border floating
EPD_4IN2B_V2_SendCommand(0X02); //power off
EPD_4IN2B_V2_ReadBusy(); //waiting for the electronic paper IC to release the idle signal
EPD_4IN2B_V2_SendCommand(0X07); //deep sleep
EPD_4IN2B_V2_SendData(0xA5);
}

View file

@ -1,11 +1,11 @@
/*****************************************************************************
* | File : EPD_2in9b V2.h
* | File : EPD_4in2b_V2.h
* | Author : Waveshare team
* | Function : 2.9inch e-paper b V2
* | Function : 4.2inch e-paper b&c
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-04-12
* | Date : 2020-11-25
* | Info :
* -----------------------------------------------------------------------------
#
@ -28,18 +28,18 @@
# THE SOFTWARE.
#
******************************************************************************/
#ifndef __EPD_2IN9B_V2_H_
#define __EPD_2IN9B_V2_H_
#ifndef __EPD_4IN2B_V2_H_
#define __EPD_4IN2B_V2_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN9B_V2_WIDTH 128
#define EPD_2IN9B_V2_HEIGHT 296
#define EPD_4IN2B_V2_WIDTH 400
#define EPD_4IN2B_V2_HEIGHT 300
void EPD_2IN9B_V2_Init(void);
void EPD_2IN9B_V2_Clear(void);
void EPD_2IN9B_V2_Display(const UBYTE *blackimage, const UBYTE *ryimage);
void EPD_2IN9B_V2_Sleep(void);
void EPD_4IN2B_V2_Init(void);
void EPD_4IN2B_V2_Clear(void);
void EPD_4IN2B_V2_Display(const UBYTE *blackimage, const UBYTE *ryimage);
void EPD_4IN2B_V2_Sleep(void);
#endif

View file

@ -96,7 +96,7 @@ static void EPD_5IN83_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(200);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -0,0 +1,196 @@
/*****************************************************************************
* | File : EPD_5in83_V2.c
* | Author : Waveshare team
* | Function : 5.83inch e-paper V2
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-09
* | 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_5in83_V2.h"
#include "Debug.h"
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_5in83_V2_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(3);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}
/******************************************************************************
function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_5in83_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_5in83_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_5in83_V2_ReadBusy(void)
{
Debug("e-Paper busy\r\n");
do {
EPD_5in83_V2_SendCommand(0x71);
DEV_Delay_ms(50);
}
while(!DEV_Digital_Read(EPD_BUSY_PIN));
Debug("e-Paper busy release\r\n");
DEV_Delay_ms(50);
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
static void EPD_5in83_V2_TurnOnDisplay(void)
{
EPD_5in83_V2_SendCommand(0x12); //DISPLAY REFRESH
DEV_Delay_ms(100); //!!!The delay here is necessary, 200uS at least!!!
EPD_5in83_V2_ReadBusy(); //waiting for the electronic paper IC to release the idle signal
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_5in83_V2_Init(void)
{
EPD_5in83_V2_Reset();
EPD_5in83_V2_SendCommand(0x01); //POWER SETTING
EPD_5in83_V2_SendData (0x07);
EPD_5in83_V2_SendData (0x07); //VGH=20V,VGL=-20V
EPD_5in83_V2_SendData (0x3f); //VDH=15V
EPD_5in83_V2_SendData (0x3f); //VDL=-15V
EPD_5in83_V2_SendCommand(0x04); //POWER ON
DEV_Delay_ms(100);
EPD_5in83_V2_ReadBusy(); //waiting for the electronic paper IC to release the idle signal
EPD_5in83_V2_SendCommand(0X00); //PANNEL SETTING
EPD_5in83_V2_SendData(0x1F); //KW-3f KWR-2F BWROTP 0f BWOTP 1f
EPD_5in83_V2_SendCommand(0x61); //tres
EPD_5in83_V2_SendData (0x02); //source 648
EPD_5in83_V2_SendData (0x88);
EPD_5in83_V2_SendData (0x01); //gate 480
EPD_5in83_V2_SendData (0xE0);
EPD_5in83_V2_SendCommand(0X15);
EPD_5in83_V2_SendData(0x00);
EPD_5in83_V2_SendCommand(0X50); //VCOM AND DATA INTERVAL SETTING
EPD_5in83_V2_SendData(0x10);
EPD_5in83_V2_SendData(0x07);
EPD_5in83_V2_SendCommand(0X60); //TCON SETTING
EPD_5in83_V2_SendData(0x22);
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_5in83_V2_Clear(void)
{
UWORD Width, Height, i;
Width = (EPD_5in83_V2_WIDTH % 8 == 0)? (EPD_5in83_V2_WIDTH / 8 ): (EPD_5in83_V2_WIDTH / 8 + 1);
Height = EPD_5in83_V2_HEIGHT;
EPD_5in83_V2_SendCommand(0x10);
for(i=0; i<Width*Height; i++) {
EPD_5in83_V2_SendData(0x00);
}
EPD_5in83_V2_SendCommand(0x13);
for(i=0; i<Width*Height; i++) {
EPD_5in83_V2_SendData(0x00);
}
EPD_5in83_V2_TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_5in83_V2_Display(UBYTE *Image)
{
UWORD Width, Height, i, j;
Width = (EPD_5in83_V2_WIDTH % 8 == 0)? (EPD_5in83_V2_WIDTH / 8 ): (EPD_5in83_V2_WIDTH / 8 + 1);
Height = EPD_5in83_V2_HEIGHT;
EPD_5in83_V2_SendCommand(0x10);
for(i=0;i<Height;i++) {
for(j=0; j<Width; j++) {
EPD_5in83_V2_SendData(0x00);
}
}
EPD_5in83_V2_SendCommand(0x13);
for(i=0;i<Height;i++) {
for(j=0; j<Width; j++) {
EPD_5in83_V2_SendData(~Image[i*Width + j]);
}
}
EPD_5in83_V2_TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_5in83_V2_Sleep(void)
{
EPD_5in83_V2_SendCommand(0X02); //power off
EPD_5in83_V2_ReadBusy(); //waiting for the electronic paper IC to release the idle signal
EPD_5in83_V2_SendCommand(0X07); //deep sleep
EPD_5in83_V2_SendData(0xA5);
}

View file

@ -0,0 +1,44 @@
/*****************************************************************************
* | File : EPD_5in83_V2.h
* | Author : Waveshare team
* | Function : 5.83inch e-paper V2
* | Info :
*----------------
* | This version: V1.0
* | Date : 2020-12-09
* | 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_5in83_V2_H_
#define __EPD_5in83_V2_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_5in83_V2_WIDTH 648
#define EPD_5in83_V2_HEIGHT 480
void EPD_5in83_V2_Init(void);
void EPD_5in83_V2_Clear(void);
void EPD_5in83_V2_Display(UBYTE *Image);
void EPD_5in83_V2_Sleep(void);
#endif

View file

@ -94,7 +94,7 @@ static void EPD_5IN83BC_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(200);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -96,7 +96,7 @@ static void EPD_7IN5_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(200);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -39,7 +39,7 @@ static void EPD_7IN5B_HD_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}

View file

@ -1,11 +1,11 @@
/*****************************************************************************
* | File : EPD_7IN5B_V2_7in5.c
* | File : EPD_7IN5b_V2.c
* | Author : Waveshare team
* | Function : Electronic paper driver
* | Info :
*----------------
* | This version: V2.0
* | Date : 2018-11-09
* | This version: V2.1
* | Date : 2020-11-30
* | Info :
******************************************************************************
# Permission is hereby granted, free of charge, to any person obtaining a copy
@ -136,12 +136,17 @@ UBYTE EPD_7IN5B_V2_Init(void)
EPD_7IN5B_V2_SendCommand(0X60); //TCON SETTING
EPD_7IN5B_V2_SendData(0x22);
EPD_7IN5B_V2_SendCommand(0X82);
EPD_7IN5B_V2_SendData(0x08);
EPD_7IN5B_V2_SendCommand(0X30);
EPD_7IN5B_V2_SendData(0x06);
EPD_7IN5B_V2_SendCommand(0X82);
EPD_7IN5B_V2_SendData(0x08);
EPD_7IN5B_V2_SendCommand(0X30);
EPD_7IN5B_V2_SendData(0x06);
EPD_7IN5B_V2_SendCommand(0x65); // Resolution setting
EPD_7IN5B_V2_SendData(0x00);
EPD_7IN5B_V2_SendData(0x00);//800*480
EPD_7IN5B_V2_SendData(0x00);
EPD_7IN5B_V2_SendData(0x00);
return 0;
}

View file

@ -1,11 +1,11 @@
/*****************************************************************************
* | File : EPD_7in5.h
* | File : EPD_7in5b_V2.h
* | Author : Waveshare team
* | Function : Electronic paper driver
* | Info :
*----------------
* | This version: V2.0
* | Date : 2018-11-09
* | This version: V2.1
* | Date : 2020-11-30
* | Info :
* 1.Remove:ImageBuff[EPD_HEIGHT * EPD_WIDTH / 8]
* 2.Change:EPD_Display(UBYTE *Image)

View file

@ -94,7 +94,7 @@ static void EPD_7IN5BC_Reset(void)
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(10);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(200);
}