cun
This commit is contained in:
@ -64,6 +64,78 @@ u16 test_id=0;
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// /**
|
||||
// * @brief 向匿名上位机发送数据帧
|
||||
// * @param function_id 功能码 (例如 0x01, 0x03)
|
||||
// * @param data 指向 int16_t 数据数组的指针 (例如加速度、欧拉角)
|
||||
// * @param data_len int16_t 数据的个数 (例如发送6轴数据时为6,发送3个欧拉角时为3)
|
||||
// * @param status_byte 附加的状态字节 (例如 SHOCK_STA 或 FUSION_STA)
|
||||
// */
|
||||
// void send_data_anotc(uint8_t function_id, int16_t* data, uint8_t data_len, uint8_t status_byte) {
|
||||
// // 定义一个足够大的缓冲区来构建数据帧
|
||||
// // 最大长度(ID 0x01): 1(HEAD)+1(D_ADDR)+1(ID)+1(LEN)+13(DATA)+1(SC)+1(AC) = 19字节
|
||||
// uint8_t buffer[32];
|
||||
|
||||
// uint8_t data_payload_len = data_len * sizeof(int16_t) + sizeof(uint8_t);
|
||||
|
||||
// // 1. 填充帧头和地址
|
||||
// buffer[0] = 0xAA; // 帧头 HEAD
|
||||
// buffer[1] = 0xFF; // 目标地址 D_ADDR
|
||||
|
||||
// // 2. 填充功能码和数据长度
|
||||
// buffer[2] = function_id;
|
||||
// buffer[3] = data_payload_len;
|
||||
|
||||
// // 3. 填充数据内容 (DATA)
|
||||
// // 首先使用 memcpy 拷贝主要的 int16_t 数组数据
|
||||
// // &buffer[4] 是数据区的起始地址
|
||||
// memcpy(&buffer[4], (uint8_t*)data, data_len * sizeof(int16_t));
|
||||
// // 然后在数据区末尾填充状态字节
|
||||
// buffer[4 + data_len * sizeof(int16_t)] = status_byte;
|
||||
|
||||
// // 4. 计算校验和 (SC 和 AC)
|
||||
// uint8_t sum_check = 0;
|
||||
// uint8_t add_check = 0;
|
||||
|
||||
// // SC: 和校验 (从帧头到数据区最后一个字节)
|
||||
// for (int i = 0; i < 4 + data_payload_len; ++i) {
|
||||
// sum_check += buffer[i];
|
||||
// }
|
||||
|
||||
// // 将SC填充到缓冲区
|
||||
// buffer[4 + data_payload_len] = sum_check;
|
||||
|
||||
// // AC: 附加校验 (从帧头到SC)
|
||||
// for (int i = 0; i < 4 + data_payload_len + 1; ++i) {
|
||||
// add_check += buffer[i];
|
||||
// }
|
||||
|
||||
// // 将AC填充到缓冲区
|
||||
// buffer[4 + data_payload_len + 1] = add_check;
|
||||
|
||||
// // 5. 发送整个数据帧
|
||||
// uint16_t frame_length = 4 + data_payload_len + 2;
|
||||
// // Serial_Send_Buffer(buffer, frame_length);
|
||||
// for (int i = 0; i < frame_length; ++i) {
|
||||
// // 使用 %c 格式化字符来发送单个字节的原始值
|
||||
// printf("%c", buffer[i]);
|
||||
// }
|
||||
// printf("\n");
|
||||
// }
|
||||
|
||||
void ble_send_data(signed short *acc_gyro_input, float *Angle_output){
|
||||
char buffer[50]; //一次最多发送50字节
|
||||
u8 len = 0;
|
||||
//AA FF 01 六轴数据 EE
|
||||
//TO DO
|
||||
send_data_to_ble_client(&buffer,len);
|
||||
|
||||
|
||||
//AA FF 02 欧若拉角数据 EE
|
||||
// TO DO
|
||||
send_data_to_ble_client(&buffer,len);
|
||||
}
|
||||
|
||||
// 从环形缓冲区读取数据并发送
|
||||
void send_sensor_data_task(void) {
|
||||
// printf("xtell_ble_send\n");
|
||||
|
||||
Reference in New Issue
Block a user