完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//串口2,printf 函数
//确保一次发送数据不超过USART2_MAX_SEND_LEN字节 void u2_printf(char* fmt,...) { va_list ap; va_start(ap,fmt); vsprintf((char*)USART2_TX_BUF,fmt,ap); va_end(ap); while(DMA_GetCurrDataCounter(DMA1_Channel7)!=0); //等待通道7传输完成 UART_DMA_Enable(DMA1_Channel7,strlen((const char*)USART2_TX_BUF)); //通过dma发送出去 } 为什么while(DMA_GetCurrDataCounter(DMA1_Channel7)!=0); //等待通道7传输完成 不是放在UART_DMA_Enable()函数后面呢?应该先开启DMA传输,然后再等待传输完成才对啊?请高手指导一下,谢谢! |
|
相关推荐
4个回答
|
|
这是等待上一次传输完成,放前面,可以提高速度。放后面,可以提高稳定性。
|
|
|
|
有知道的吗?自己顶一下。
|
|
|
|
多谢回复,原来这里很有讲究啊。
|
|
|
|
问题来了,DMA第一次传输的时候还没有打开DMA,程序会不会死在while(DMA_GetCurrDataCounter(DMA1_Channel7)!=0);这儿?
|
|
|
|
只有小组成员才能发言,加入小组>>
7356 浏览 9 评论
2441 浏览 2 评论
为什么我用esp8266做TCP服务器网络调试助手一直连接不上去?
9537 浏览 3 评论
为什么我的ESP8266 AT指令一直返回error无法正常使用?
7378 浏览 0 评论
4196 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 23:38 , Processed in 0.621446 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191