11智能在线
新记
我在用STM32串口DMA接收数据时,为什么在接收过程中,我的程序停止运行了,接收完成后又开始运行,求解?
如题所述
举报该文章
相关建议 2012-12-05
亲,您用DMA都没有看说明的么?DMA传输数据的时候会占用系统总线,这时候CPU除了能够做运算之外什么事情都干不了,只有等DMA完成数据传输之后,才会把系统数据总线交给CPU,所以你接收数据的时候程序看起来好像就是停止运行的,当你接收完成之后,DMA释放了数据总线,这时候CPU才又开始执行程序...具体内容建议你还是看一下datasheet吧
温馨提示:内容为网友见解,仅供参考
当前网址:
https://11.t2y.org/zz/2qs2f8sp2.html
其他看法
第1个回答 推荐于2018-04-19
STM32F10X芯片手册中写道,当CPU接到DMA请求后,会停止若干个时钟周期,等待总线仲裁,仲裁完成后DMA和CPU各分一半的数据总线,CPU不会停止工作,只是部分总线被占用,运行变慢。
本回答被网友采纳
第2个回答 2012-12-10
总线有冲突吧
第3个回答 2012-12-05
发程序看看。
相似回答
大家正在搜
相关问题
关于stm32串口使用DMA接收数据的问题
stm32串口dma怎么接受数据
串口接收数据问题:我是用STM32的串口中断接收数据的,但是...
stm32DMA接收完成中断的问题
关于STM32串口接收中断,网上有如下中断方式接收数据的程序...
我想用stm32的DMA方式接收SPI接收到的数据,但是配置...
STM32F103串口dma发送与中断接收能同时进行么
STM32的DMA功能能够实现串口接收数据直接存储到Flas...