新手上路
- 积分
- 35
- 金钱
- 35
- 注册时间
- 2014-12-24
- 在线时间
- 1 小时
|
首先得感谢 [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
2
3
4
|
|