[STM8] STN8串口输出问题

[复制链接]
2203|3
 楼主| huangfeng33 发表于 2013-7-29 17:41 | 显示全部楼层 |阅读模式
#include "stm8s.h"
#include "stm8s_uart2.h"
#include "stm8s_gpio.h"
#include "stm8s_clk.h"
#include "stdio.h"

void Delay(u16 time)
{
  while(time != 0)
  {
    time--;
  }
}
//初始化串口   波特率115200,8位数据位 1位停止位,无奇偶校验
//查询发送,中断方式接收。
void UART_Init(void)
{
    UART2_DeInit();
    UART2->BRR2 = 0X01; //设置波特率为9600
    UART2->BRR1 = 0X34;
    UART2->CR2 = 0X2C;  //设置串口中断,允许接收发送
   // UART2_Cmd(ENABLE);
}


void Init_CLK(void)
{

  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);//设置主频为内部高速时钟,8MHz
}

void UART2_SendChar(unsigned char dat)
{
  while((UART2->SR & 0X80) == 0X00);
  UART2->DR = dat;
}

void main(void)
{
  Init_CLK();
  enableInterrupts();
  UART_Init();
  while(1);
}        

#pragma vector=0x14
__interrupt void UART2_RX_IRQHandler(void)
{
   UART2_SendChar(0x02);
}                  
各位 朋友,,这是我的UART2的程序,用的是硬件仿真,STM8S105,每次在线仿真都不能把0x02输出来,什么情况啊?求帮助,先谢谢大家了。
拿起书本 发表于 2014-4-15 15:29 | 显示全部楼层
根据楼主的描述,这个应该是中断并没有进去。
 楼主| huangfeng33 发表于 2014-4-15 15:31 | 显示全部楼层
谢谢楼上的朋友了,已经解决了 ,串口中断用错了。STM8S中断2,但是翻译过来写的中断1,把中断地址改为2的地址就Ok了 。结贴。
拿起书本 发表于 2014-4-15 15:32 | 显示全部楼层
看来翻译的文档还是很坑人的

我一般都是看英文的,不太信任翻译的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

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