关于u2_printf函数的问题

2019-07-25 11:22发布

//串口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(DMA1_Channel7->CNDTR!=0); //等待通道7传输完成  
 UART_DMA_Enable(DMA1_Channel7,strlen((const char*)USART2_TX_BUF));  //通过dma发送出去
} 请问原子哥: vsprintf((char*)USART2_TX_BUF,fmt,ap);这个宏的意思:不就是用USTART2发送数据么 为啥还用到DMA在发送一遍数据
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
水青
1楼-- · 2019-07-26 06:36
usb123 发表于 2017-8-24 11:17
就是在sim800a发短信的时候会丢失一个字节的unicode编码

我也遇见这个问题了,就是遇见0就结束了,0后面的东西都没了,va_start(ap,fmt);的原因。有可能是个bug,不知道说的对不对原子哥

一周热门 更多>