Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226436
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 781
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-08 10:41
个人简介

爱莉清

文章分类

全部博文(80)

文章存档

2018年(1)

2017年(18)

2016年(49)

2015年(7)

2014年(5)

我的朋友

分类: C/C++

2016-05-15 17:28:42


点击(此处)折叠或打开

  1. /* MAIN.C file
  2.  *
  3.  * Copyright (c) 2002-2005 STMicroelectronics
  4.  */
  5. #include "stm8s.h"
  6. #include "stm8s_clk.h"
  7. #include "stm8s_conf.h"
  8. #include "stm8s_uart1.h"
  9. #include <stdio.h>
  10. void SendSrting(unsigned char *str);

  11. main()
  12. {
  13.     char u8_data=100;
  14.     
  15.     CLK_HSECmd(DISABLE); //关闭外部高速振荡器
  16.     CLK_HSICmd(ENABLE);     //启用内部高速时钟
  17.     CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //设置 内部 时钟16M 为主时钟(默认是8分配2MHz)
  18.     
  19.     UART1_DeInit();
  20.     /*     初始化串口115200 8 1 不校验 允许收发 */
  21.     UART1_Init((u32)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
  22.     UART1_Cmd(ENABLE);

  23.     printf("Hello Nguhyw =%d\n",(int)u8_data);
  24.     while (1);
  25. }

  26. char putchar(char c)
  27. {
  28.         if (c == '\n')
  29.     {
  30.       while (!(UART1->SR & 0x40));
  31.       UART1->DR = ('\r');
  32.       while (!(UART1->SR & 0x40)); //等待发送完成
  33.     }

  34.     while (!(UART1->SR & 0x80));
  35.     UART1->DR = (c);
  36.     while (!(UART1->SR & 0x80)); //等待发送完成

  37.     return (c);
  38. }




要使用c语音的printf函数只需定义 char putchar(char c)即可

点击(此处)折叠或打开

  1. char putchar(char c)
  2. {
  3.         if (c == '\n')
  4.     {
  5.       while (!(UART1->SR & 0x40));
  6.       UART1->DR = ('\r');
  7.       while (!(UART1->SR & 0x40)); //等待发送完成
  8.     }

  9.     while (!(UART1->SR & 0x80));
  10.     UART1->DR = (c);
  11.     while (!(UART1->SR & 0x80)); //等待发送完成

  12.     return (c);
  13. }

但是需要注意的是
整数输出的时候就必须强制转换成int型的数据才能正确的输出。
阅读(4807) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~