我正在尝试使用“ CDC_Transmit_FS()”通过USB从ADC发送值
在接收方,我正在使用readline()接收数据并将'string'解码为'int'
代码工作正常,但偶尔我会收到b'\ x00234 \ n'而不是b'1234 \ n',这会引起解码错误。
您知道为什么出现“ \ x”吗?
另一个问题是:是否有更聪明的方法通过USB发送ADC值,而不是将int值转换为字符串?
我想使传输更快。 预先感谢!
uint32_t adcbuff[sample];
char endofpacket[5] = {'9','9','\n'};
char txbuff[sample*5];
while(1)
{
HAL_ADC_Start_DMA(&hadc2,(uint32_t*)adcbuff,sample);
for(i = 0; i < sample; i++)
{
sprintf (tempbuff,"%u\n",((adcbuff[i] * 5000) / 0xFFFF)-2000);
strcat( txbuff,tempbuff);
}
strcat( txbuff,endofpacket);
CDC_Transmit_FS( (uint8_t*)txbuff,strlen(txbuff));
strcpy(txtbuff,"");
}