P100脱机下载器
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
5.8 KiB

4 years ago
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "lcd.h"
  6. /* ����UID����ͷ�ļ� */
  7. #include "UID_Encryption.h"
  8. //ALIENTEK Mini STM32�����巶������11
  9. //TFTLCD��ʾʵ��
  10. //����֧�֣�www.openedv.com
  11. //�������������ӿƼ����޹�˾
  12. /*
  13. V1.2:
  14. £
  15. ԿΪ4ֽڡ8ֽʱȡûԶ IDԽԿȷ
  16. MINI-Proѻ V1.20B ̼ʹV1.2
  17. MINIѻ V1.4A2 ̼ʹV1.2
  18. Ӱ
  19. ǰ
  20. (1).MINIѻ˹̼V1.4A2ʹMINIѻõV1.2;
  21. (2).MINI-Proѻ˹̼V1.20BʹMINIѻõV1.2;
  22. (3).ԿΪ4ֽڡ8ֽڵ
  23. (1).ԿΪ 4/8ֽʱ߼ԿԿΪ4/8ֽӰ
  24. V1.1ǰĴͬ
  25. (1).MINI-ProѻѾV1.20B̼ûԻ˵ɰ̼ʹá
  26. (2).MINIѻѾV1.4A2̼ûԻ˵ɰ̼ʹá
  27. Ӱ
  28. (1).ֻҪԿΪ12ֽھӰ
  29. V1.1:
  30. £
  31. MINIѻV1,3A5̼ʹV1.1V1.1޸V1.0
  32. UID_Encryption_Key_Check(),UID_Encryption_Key_Calculate()ʹô
  33. ģʽпֵܳڴԽ
  34. Ӱ
  35. ǰ
  36. (1).MINIѻĹ̼V1.3A5ʹMINIѻõV1.1;
  37. (2).ǰ ʹV1.3A4֮ǰ̼MINIѻ ΪģʽûʹõV1.0
  38. (1).ʹV1.3A5̼MINIѻUIDԶܹܣȻ¼V1.0û
  39. V1.1ĴģʽԿV1.0Կһ£˻оƬлֻԿ֤ͨ
  40. (1).ûеV1.0ͬµV1.1
  41. Ӱ
  42. (1).ǰʹ Сģʽ õûƷܵV1.1ԼMINIѻ̼µӰ
  43. (2).ѾʹV1.0IJƷʹIAPʽ򲻻ܵӰ
  44. (3).ѾʹV1.0IJƷʹMINIѻƷ UIDԶܹ¸ԿܵӰ
  45. ʹѻƷĻû˵UIDԶܴΪV1.1ͬʱUIDԶ¸Կ
  46. (4)MINI-Proѻװ̼ʹõV1.1ĴӰ
  47. V1.0
  48. MINIѻV1.3A4̼֮ǰĹ̼оʹV1.0Ĵ
  49. */
  50. /*
  51. * ԿڵǰоƬеĴַ
  52. *עûʹʱ޸ĸֵռûλüоƬflashķΧλԿַһ£
  53. */
  54. #define KEY_LOCATION 0x08020000
  55. /*
  56. * ǰоƬUIDڵַעݲͬоƬĵַһ,ûð޸ģ
  57. * оƬUIDĻûUIDƴյһڴʹUID_Encryption_Key_Check()ӿ
  58. */
  59. #define UID_LOCATION 0x1FFFF7E8
  60. u8 myID[12] = {
  61. 0x01, 0x02, 0x03, 0x04,
  62. 0x05, 0x06, 0x07, 0x08,
  63. 0x09, 0x0A, 0x0B, 0x0C};//�û��Զ���ID
  64. u8 checkResult = 0; //��֤����
  65. int main(void)
  66. {
  67. u8 x=0;
  68. u8 lcd_id[12]; //����LCD ID�ַ���
  69. delay_init(); //��ʱ������ʼ��
  70. uart_init(115200); //���ڳ�ʼ��Ϊ9600
  71. LED_Init(); //��ʼ����LED���ӵ�Ӳ���ӿ�
  72. LCD_Init();
  73. POINT_COLOR=RED;
  74. sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//��LCD ID��ӡ��lcd_id���顣
  75. /**** ��֤��Կ�Ƿ���Ч start ****/
  76. checkResult = UID_Encryption_Key_Check( (void*)KEY_LOCATION,//���뵱ǰоƬFLASH�е���Կ���˴������IJ�������¼������Ӧ����ȫһ��
  77. (void*)UID_LOCATION,//���뵱ǰоƬUID
  78. myID, //�����û��Զ���ID, �˴������IJ�������¼������Ӧ����ȫһ��
  79. LENGTH_12, //������Կ���ȣ� �˴������IJ�������¼������Ӧ����ȫһ��
  80. LITTLE_ENDIA, //��������ѡ���� �˴������IJ�������¼������Ӧ����ȫһ��
  81. ALGORITHM_2); //�����㷨ѡ���� �˴������IJ�������¼������Ӧ����ȫһ��
  82. if(checkResult != 0)//������֤����Ϊ����ֵ������֤��ͨ��
  83. {
  84. printf("\r\n��Կ�Ƿ�!\r\n");
  85. LCD_ShowString(30,40,200,24,24,"Invalid Key !!!");
  86. LED0=0;
  87. while(1)
  88. {
  89. delay_ms(100);
  90. LED0=!LED0;
  91. LED1=!LED1;
  92. }
  93. }
  94. printf("\r\n��Կ�Ϸ�!\r\n");
  95. /**** ��֤��Կ�Ƿ���Ч end ****/
  96. while(1)
  97. {
  98. switch(x)
  99. {
  100. case 0:LCD_Clear(WHITE);break;
  101. case 1:LCD_Clear(BLACK);break;
  102. case 2:LCD_Clear(BLUE);break;
  103. case 3:LCD_Clear(RED);break;
  104. case 4:LCD_Clear(MAGENTA);break;
  105. case 5:LCD_Clear(GREEN);break;
  106. case 6:LCD_Clear(CYAN);break;
  107. case 7:LCD_Clear(YELLOW);break;
  108. case 8:LCD_Clear(BRRED);break;
  109. case 9:LCD_Clear(GRAY);break;
  110. case 10:LCD_Clear(LGRAY);break;
  111. case 11:LCD_Clear(BROWN);break;
  112. }
  113. POINT_COLOR=RED;
  114. LCD_ShowString(30,40,200,24,24,"Mini STM32 ^_^");
  115. LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");
  116. LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  117. LCD_ShowString(30,110,200,16,16,lcd_id); //��ʾLCD ID
  118. LCD_ShowString(30,130,200,12,12,"2014/3/7");
  119. x++;
  120. if(x==12)x=0;
  121. LED0=!LED0;
  122. delay_ms(1000);
  123. }
  124. }