为什么串口传输STM32采样数据,一个周期数据太少
stm32l4r5过采样,41.64khz采样率,采样50hz的市电,理论上应该一个周期采800个点,但实际上我的串口输出只有10个点,波特率是115200,请问怎么样解...
stm32l4r5过采样,41.64khz采样率,采样50hz的市电,理论上应该一个周期采800个点,但实际上我的串口输出只有10个点,波特率是115200,请问怎么样解决,求大神帮忙。
展开
2019-03-15
展开全部
也有人回答了,按115200波特率,,1个字节8位加起始位与停止位共10位,在20ms内撑死只能传输230个字节,所以理论上你最多也就输出230个点,但CPU处理命令也要时间哒,你收集到数据然后响应中断,在进入中断调用串口发送函数,这期间也是会消耗一定时间的,如果你采样一个数据就进一次中断,中断在发送串口,那中断里面肯定还没执行完中断信号又来了,这样肯定是不行了。解决方法:提高波特率至少40k,使用DMA来搬运数据,DAC采样到数据就搬运到串口,这样可以极大减少CPU的干预,利用DMA模块来完成工作
展开全部
估计是你的编写代码不对,估计你是采一个点就串口通讯一次。虽然理论上成立,但是实际上中断响应不过来。一般处理方法就是采完一个周期,串口输出一个周期的点数。或者用个数组存储完所需要的几个周期点数之後再一起串口发送。如果在时效性上还不满足要求,那就需要别的方式进行通讯了,比如SPI等
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你一个点的数据量是多少,几个字节。有没有从理论上算过你这个波特率能不能支撑800包@20ms?
按115200波特率,在20ms内撑死只能传输230个字节……
按115200波特率,在20ms内撑死只能传输230个字节……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在他150年的历史中,保守和封闭的战略让诺基亚多次濒于破产边界,但聚焦与并购的战略也让他屡屡化险为夷,重回巅峰。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
周期数据太少
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询