STM8的UART问题

[复制链接]
5009|6
 楼主| wxx116zh 发表于 2009-10-16 16:50 | 显示全部楼层 |阅读模式
STM8的UART初始化完成后,不能发送数据,按例程中的再后面加上这个函数之后才能发送,想问一下大侠们,是不是在发送前还需要什么操作。。
char putchar (char c)
{
    if (c == '\n')
    {
      /* put '\r' to hardware here */
      /* Wait transmission is completed : otherwise the first data is not sent */
      while (!(UART2_SR & 0x40));
      UART2_DR = ('\r');
      /* Wait transmission is completed */
      while (!(UART2_SR & 0x40));
    }
    /* put c to hardware here */
    /* Wait transmission is completed : otherwise the first data is not sent */
    while (!(UART2_SR & 0x80));
    UART2_DR = (c);
    /* Wait transmission is completed */
    while (!(UART2_SR & 0x80));
    return (c);
}
zhaoxinzxzx 发表于 2009-10-16 23:52 | 显示全部楼层
不知道楼主在说什么,是要用标准C的Printf函数吗?
 楼主| wxx116zh 发表于 2009-10-17 22:35 | 显示全部楼层
这是资料里面给的例子,是用的Printf函数。。
hsbjb 发表于 2009-10-18 18:55 | 显示全部楼层
程序有点乱,不知道这个程序能实现什么功能
sinadz 发表于 2009-10-18 19:33 | 显示全部楼层
这是个判断语句,而且有返回值,具体干什么用的,也不是很清楚
aolin 发表于 2009-10-19 09:18 | 显示全部楼层
Cosmic的printf函数库没有实现对硬件支持,因此你要自己做具体的putchar函数,这样你可以任意定义printf输出到UART1,UART2,还是UART3,甚至你都可以将其定义输出到SPI,CAN
 楼主| wxx116zh 发表于 2009-10-19 11:19 | 显示全部楼层
哦,明白,谢谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

62

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部