1
DATA_PC/data_pc.cpp
- Committer:
- panzhan
- Date:
- 2020-11-17
- Revision:
- 1:a71791b81b8a
- Parent:
- 0:d80c66cb1b3a
File content as of revision 1:a71791b81b8a:
#include "data_pc.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 phase_flag_get[1] = {0}; uint16_t phase_flag_use[1] = {0}; unsigned int phase_flag = 0; void pc_decode(){ phase_flag = phase_flag_use[0]; } void pc_clear(){ phase_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; phase_flag_get[0] = 0; break; } if(c == 'B'){ flag_B = 1; } if(flag_A == 1){ if((flag_B != 1) && (pc_num < 1)) { phase_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; phase_flag_use[0] = phase_flag_get[0] - '0'; pc_decode(); pc.printf("%d", phase_flag); // 命令帧接收成功 pc_clear(); } pc_control = 1; } } }