OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5983|回复: 7

关于u2_printf函数的问题

[复制链接]

52

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2012-10-17
在线时间
20 小时
发表于 2015-1-1 15:27:24 | 显示全部楼层 |阅读模式
5金钱

//串口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在发送一遍数据


最佳答案

查看完整内容[请看2#楼]

vsprintf,只是将数据打印到USART2_TX_BUF,并没有输出到串口,你别搞错对象了,vsprintf不是printf!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-1-1 15:27:25 | 显示全部楼层
vsprintf,只是将数据打印到USART2_TX_BUF,并没有输出到串口,你别搞错对象了,vsprintf不是printf!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

52

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2012-10-17
在线时间
20 小时
 楼主| 发表于 2015-1-3 09:33:36 | 显示全部楼层
知道了,非常感谢!
回复

使用道具 举报

5

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2016-7-14
在线时间
30 小时
发表于 2016-8-24 08:22:53 | 显示全部楼层
请问调用这个函数可以利用串口调试助手将单片机要传输的数据打印到调试助手里面显示出来么?
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-3-27
在线时间
12 小时
发表于 2016-8-26 09:15:55 | 显示全部楼层
您好,请问那个va_start(ap,fmt);函数是怎么样的?
回复

使用道具 举报

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2017-2-21
在线时间
159 小时
发表于 2017-8-24 11:16:58 | 显示全部楼层
为什么这个函数在使用sim800a的时候丢失最后一个字节数据啊
回复

使用道具 举报

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2017-2-21
在线时间
159 小时
发表于 2017-8-24 11:17:33 | 显示全部楼层
就是在sim800a发短信的时候会丢失一个字节的unicode编码
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2017-11-15
在线时间
38 小时
发表于 2017-11-15 11:34:46 | 显示全部楼层
usb123 发表于 2017-8-24 11:17
就是在sim800a发短信的时候会丢失一个字节的unicode编码

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 17:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表