내가 다음변환 플로트
float temperature = getTemperature();
char array[15];
sprintf(array, "temperature %f", temperature);
int length = strlen(array);
protocol_WriteMessage(length,(unsigned char*)&array);
로, 내가 sprintf를 사용 문자의 문자열을 부동 소수점으로 변환하기 위해 노력하고있어 sprintf를 할 수 있지만, protocol_WriteMessage 서명되지 않은 숯불 *을 받아, 그래서 그것을 주조하지만, 프로그램이 충돌. 우선
void protocol_WriteMessage(UINT16 wLen, UINT8 *pbData)
{
UINT16 crc_calc;
// Calculate transmitt CRC16
crc_calc = calc_crc16(&pbData[COMM_POS_COMMAND1], wLen-COMM_POS_COMMAND1);
comm_states.TxActive = true; // signal that the Tx_UART is working
// write data without further checks
hal_uart_WriteBuffer(wLen, pbData);
}
'15 '가 너무 짧다고 생각하지 않습니까? –
누군가 위의 설명에 대해 나쁜 말장난을 만들 수 있습니까? 그리고 네, 더 큰 배열이 필요합니다. – Treycos
안녕하세요, 제발 잘해주세요! –