OpenEdv-开源电子网

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

stm32战舰 双串口 双printf

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-12-24
在线时间
1 小时
发表于 2016-7-31 23:31:54 | 显示全部楼层 |阅读模式
首先得感谢 [size=1em]fire_Man [size=1em](UID: 30267 )提供的双串口源码(地址:http://www.openedv.com/forum.php?mod=viewthread&tid=50255&highlight=%CB%AB%B4%AE%BF%DA)。

已经习惯了 printf 的好用,自己琢磨着串口2的 printf 输出。搜索论坛的文章,试着改例程,总是有错误出现,后来在网上百度了下,发现有个博客有成功的案例分享,于是试着改了下,果然可以。经常从OPENDEV上下例程,非常感谢原子哥创造的这个开源世界。本人是菜鸟,也没什么好贡献的,就把这个例程分享输出,方便需要的人。

步骤很简单:

1、在双串口源码的基础上加入两个头文件:"stdio.h"    "stdarg.h" .  


2、在main前加入如下函数
void USART2_printf (char *fmt, ...)
{
char buffer[CMD_BUFFER_LEN+1];  // CMD_BUFFER_LEN???????
u8 i = 0;


va_list arg_ptr;
va_start(arg_ptr, fmt);   
vsnprintf(buffer, CMD_BUFFER_LEN+1, fmt, arg_ptr);
while ((i < CMD_BUFFER_LEN) && buffer)
{
        USART_SendData(USART2, (u8) buffer[i++]);
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);  
}
va_end(arg_ptr);
}

3、直接调用,我这里很简单地向各自的串口发了一句话 “我是串口1/2”。

4、烧录前记得勾选 use microLIB
.

1

1

2

2

3

3

4

4

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-9-23
在线时间
3 小时
发表于 2016-9-23 19:42:04 | 显示全部楼层
CMD_BUFFER_LEN 是在哪里定义的呢?定义成多少?这句话一直编译不过去。就这一点就是能用和不能用的天壤之别啊
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 18:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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