你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
ADCå®éª1.rar
2020-6-2 09:11 上传
点击文件名下载附件
3.02 MB, 下载次数: 2, 下载积分: ST金币 -1
举报
查看全部评分
wenyangzeng 发表于 2020-6-2 09:52 从发送的数据量看是奇数,串口发送时漏了第一个字节的数据。查查发送代码的BUG ...
倔强红军 发表于 2020-6-2 11:15 应该不会吧,我数据数组就设置了16位大小,如果漏了数据那我前16位中应该有一个值是00的呀,我数据发送是 ...
wenyangzeng 发表于 2020-6-2 13:11 楼主的贴图是19个数据,扣除0D 0A,还有17个数据是单数呀!STM32的12位ADC每个数据需要2个字节。3楼贴出的 ...
MrJiu 发表于 2020-6-2 13:02 直接使用STM32Cube配置,他不香么?
评分
查看全部评分
应该不会吧,我数据数组就设置了16位大小,如果漏了数据那我前16位中应该有一个值是00的呀,我数据发送是这样的:
void DMA1_Channel1_IRQHandler(void)
{
u8 i=0;
if(DMA_GetITStatus(DMA1_IT_TC1)!=RESET)
{
if(MYDMA_Enable_flag==1)
{
for(i=0;i<16;i++)
{
USART_SendData(USART1, AD_VStoregy.AD_B_Value);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
}
Logic_value[0]=logic_IO_Read();
for(i=0;i<3;i++)
{
USART_SendData(USART1, Logic_value);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
}
MYDMA_Enable_flag=0;
}
}
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
DMA_ClearITPendingBit(DMA1_IT_TC1);
}
楼主的贴图是19个数据,扣除0D 0A,还有17个数据是单数呀!STM32的12位ADC每个数据需要2个字节。3楼贴出的代码是DMA处理,但是串行发送19个数据就肯定有问题的。
是这样的,哥.我是这样采集数据的:我用了一个联合体来存储采集数据并用串口发送
union AD_values
{
uint16_t AD_A_Value[8];
uint8_t AD_B_Value[16];
} AD_VStoregy;
其中 uint16_t AD_A_Value[8];是我8个adc采集通道的采集数据缓存,然后 uint8_t AD_B_Value[16];
是我串口发送的数据,应为联合体共用一段内存,所以我只是把采集到的16位ad数值按8位发送,这个应该不会丢失数据吧,我觉得。
听说过有这么个软件,但是一直使用keil习惯了,,谢谢大哥
哥哥 我ad数据就前面的16哥数据后面三位是帧尾
评分
查看全部评分