打印
[STM8]

关于STM8S103F3使用中一直进串口收中断的问题

[复制链接]
4479|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoxiaohai|  楼主 | 2011-5-13 16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
困扰了一下午,希望得到大家的帮助。问题如题。串口初始化后不会进中断,但是在中断触发发,收完一个整包后,就会一直进串口1的收中断,收到的数据全是0xff。我把程序简单写下,大家看看怎么回事?比较着急,希望得到帮助!
#include "stm8s.h"
#include "stm8s_gpio.h"
#include "stm8s_tim1.h"
#include "stm8s_exti.h"
#include "stm8s_uart1.h"
#include "stm8s_clk.h"
#include "stm8s_flash.h"
...
void main()
{
....
   UART1_DeInit();
   UART1_Cmd(ENABLE);  
   UART1_Init((u32)2400, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_EVEN, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
    UART1_ITConfig(UART1_IT_TXE, DISABLE);  //需要的时候再打开  UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
...
  enableInterrupts();
while()
}
以上是主函数的关于串口1的初始化定义。
下面是关于中断处。
#include "stm8s_gpio.h"
#include "stm8s_tim1.h"
#include "stm8s_uart1.h"
#include "stm8s.h"

...
@far @interrupt void UART1_RX_IRQHandler(void)
{
u8 Temp;
  u8 uCRC;
  u8 ii;
     Temp= UART1_ReceiveData8();
  UART1_ClearITPendingBit(UART1_IT_RXNE
  //UART1->SR&=0xDF;
  PCL_UART.RxBuffer[PCL_UART.RdPtr++]=Temp;
...
}
struct interrupt_vector const _vectab[] = {
...
{0x82, UART1_RX_IRQHandler}, /* irq18 */
...
}
沙发
xiaoxiaohai|  楼主 | 2011-5-13 16:48 | 只看该作者
问题补充:硬件接收口管脚通过示波器测试并无数据输入。

使用特权

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

本版积分规则

0

主题

5

帖子

1

粉丝