[STM8] STM8采用查询方式获取串口数据(求助)

[复制链接]
3195|3
 楼主| kill3393913 发表于 2010-10-9 14:22 | 显示全部楼层 |阅读模式
我用查询的方式获取串口数据不成功是怎么回事,代码如下:
void GetStr(void)
{
   UART3_CR2 &=~ MASK_UART3_CR2_RIEN;    //关中断
   while(UART_Time)
   {
        if(UART3_SR & MASK_UART3_SR_RXNE)
       {
            UART_Buffer[UART_Buffer_Point] = UART3_DR;
            UART_Buffer_Point = (UART_Buffer_Point + 1)%UART_BUFFER_SIZE;
            //UART3_SR &= ~MASK_UART3_SR_RXNE;
       }
   }
   UART3_CR2 |= MASK_UART3_CR2_RIEN;    //开中断
   Delay_nms(10);
}
但是程序跑起来不行,当电脑发一段数据过来时只能收到第一个字符,其他的都收不到了是怎么回事啊。刚开始做STM8好多东西不懂,那位大侠指点一下
 楼主| kill3393913 发表于 2010-10-9 14:24 | 显示全部楼层
问题很急,在线等
 楼主| kill3393913 发表于 2010-10-9 14:46 | 显示全部楼层
人呢?
 楼主| kill3393913 发表于 2010-10-9 15:19 | 显示全部楼层
问题解决了,原来是iostm8s207rb.h头文件里的宏定义搞错了,只要把#define MASK_UART3_SR_RXNE       0x40改为#define MASK_UART3_SR_RXNE       0x20就行了。头文件把MASK_UART3_SR_RXNE和MASK_UART3_SR_TC搞反了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

56

帖子

1

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