Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: DATA_PC/data_pc.cpp
- Revision:
- 0:dd5d4837292c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/DATA_PC/data_pc.cpp Wed Jun 09 01:41:45 2021 +0000
@@ -0,0 +1,66 @@
+#include "data_pc.h"
+#include "data_command.h"
+
+Serial pc(PA_2, PA_3); // tx, rx U2 min
+
+
+int pc_control = 0; // 命令帧标志位
+unsigned int flag_A = 0, flag_B = 0;
+unsigned int pc_num = 0;
+
+uint16_t mode_flag_get[1] = {0};
+uint16_t mode_flag_use[1] = {0};
+unsigned int mode_flag = 3;
+
+void pc_decode(){
+ mode_flag = mode_flag_use[0];
+}
+
+void pc_clear(){
+ mode_flag_use[0] = 0;
+}
+
+void serial_pc_isr(){
+ while(pc.readable()){
+ uint16_t c=pc.getc();
+ if(c == 'A'){
+ flag_A = 1;
+ flag_B = 0;
+ pc_num = 0;
+ mode_flag_get[0] = 0;
+ break;
+ }
+ if(c == 'B'){
+ flag_B = 1;
+ }
+ if(flag_A == 1){
+ if((flag_B != 1) && (pc_num < 1))
+ {
+ mode_flag_get[pc_num] = c;
+ }
+ pc_num++;
+
+ if((flag_B == 1) && (pc_num != 2))
+ {
+ flag_A = 0;
+ flag_B = 0;
+ pc_num = 0;
+ }
+ if((flag_B == 1) && (pc_num == 2))
+ {
+ flag_A = 0;
+ flag_B = 0;
+ pc_num = 0;
+
+ mode_flag_use[0] = mode_flag_get[0] - '0';
+ pc_decode();
+
+ command.printf("%d", mode_flag); // 命令帧接收成功
+
+ pc_clear();
+
+ }
+ pc_control = 1;
+ }
+ }
+}
\ No newline at end of file