打印
[STM8]

uart配置问题

[复制链接]
968|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wenfen|  楼主 | 2016-1-27 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下stm8的uart配置问题,我参照手册,初始化如下:void uart2_init()
{
  UART2->CR1  = 0x00;//8位数据位
  UART2->CR3  = 0x00;//1个停止位
  UART2->BRR2 = 0x02;//波特率9600bps,默认内部晶振,16M,16000000/9600=0000 0110 1000 0010,取头尾各4位
  UART2->BRR1 = 0x68;//取中间8位
  UART2->CR2  = 0x08;//发送使能
}

按下面这样发送可以吗?
if( data1 == !data2)
  {
    while(!(UART2->SR & 0x80));//数据发送到移位寄存器?
    UART2->DR = data2;
    while(!(UART2->SR & 0x40));//发送完成?
  }
沙发
zhuhuis| | 2016-1-27 20:01 | 只看该作者
差不多了

使用特权

评论回复
板凳
DreamofOven| | 2016-1-29 10:31 | 只看该作者
就是这样,我用库函数写的时候也是这样

使用特权

评论回复
地板
54212脑白金| | 2016-1-29 10:43 | 只看该作者
<div class="blockcode"><blockquote>void UART_Init(void)
{
asm("sim"); //这个不能少
UART2_CR1_M=0; //8位数据
UART2_CR1_PCEN=0; //无校验
UART2_CR2_REN=1; //接收使能
UART2_CR2_TEN=1; //发送使能
UART2_CR3_STOP=0; //停止位1位
UART2_BRR2=0x0B; //波特率 0:3
UART2_BRR1=0x08; //波特率 4:11
UART2_CR2_RIEN=1; //开启接受中断
asm("rim");
}
#pragma vector=UART2_R_RXNE_vector                     //中断向量号加2
__interrupt void UART2_handler(void)               
{
   if(UART2_SR_RXNE)
   {
                  DATA[k]=UART2_DR;
}
}



使用特权

评论回复
5
huangcunxiake| | 2016-1-29 13:50 | 只看该作者
就是这样的

使用特权

评论回复
6
Tennasi| | 2016-1-29 14:41 | 只看该作者
为什么不判断接收的状态位呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝