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