打印
[STM8]

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

[复制链接]
2696|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

粉丝