Launchpad 移植printf和scanf,以及对超级终端交互的优化

前言

printf,scanf只负责格式化输入输出的字符,他们分别依靠getchar和putchar函数,只要实现在单片机上的getchar函数和putchar函数,并且头文件包含stdio.h即可正常使用printf函数和scanf函数。

第一步,配置UART及初始化模块

/*
*UART模块初始化函数
*/
void Uart_Init(void)
{
  //-----开启IO口的TXD和RXD功能-----
  P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
  P1SEL2 = BIT1 + BIT2;

  UCA0CTL1 |= UCSWRST;
  //-----设置UART时钟源为ACLK-----
  UCA0CTL1 |= UCSSEL_2; // CLK = SMCLK
  //-----配置波特率参数9600bps-----
  UCA0BR0 = 0x41;
  UCA0BR1 = 0x03;
  UCA0MCTL = 0x00; 
  //复位及开中断
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt
  __bis_SR_register(GIE); 
}

第二步,编写基本收发函数

/*
*发送一个字符/数字 八位-一个字节
*参数:__Char:字符
*/
void Send_Char(uint8 Char)
{
    while(!(IFG2 & UCA0TXIFG));//SBUFF为空时触发标志位执行下面语句
    UCA0TXBUF=Char; 
}

/*
*发送一个字符串
*参数:__Str:字符
*/
void Send_String(uchar *Str)
{
  uchar i=0;
  while(Str[i]!='\0')
  {
    Send_Char(Str[i]);
    i++;
  }
  Send_Char(Str[i]);
}

/*
*接收一个字符
*/
uchar get_char(void)
{
  __bis_SR_register(LPM0_bits); //进入低功耗等待接受中断发生
  return Receive_Data;   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值