OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3135|回复: 4

使用查询的方式实现uart接收,发送03 20 20,每次只能接收到前面两个字节。多次方式的结果是03 20 03 20 03 20 03 20

[复制链接]

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2015-11-22
在线时间
4 小时
发表于 2015-12-4 21:44:17 | 显示全部楼层 |阅读模式
5金钱
使用查询的方式实现uart接收,发送03 20 20,每次只能接收到前面两个字节。多次方式的结果是03 20 03 20 03 20 03 20。
代码如下:
void DrvUart1Receive(uint8_t *pui8Data, uint32_t ui32Size)
{

    while(ui32Size--)
    {

        if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
    {
      *pui8Data++ = USART_ReceiveData(USART1);


     while(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET);
    }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-12-6 00:25:37 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2015-11-22
在线时间
4 小时
 楼主| 发表于 2015-12-7 21:05:09 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我是做远程升级的bootloader代码,我不希望里面有中断,所以想用查询方式实现,但是发现用查询方式实现接收有问题。不知道你是否有好的建议,谢谢!
回复

使用道具 举报

49

主题

341

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5271
金钱
5271
注册时间
2012-8-25
在线时间
1025 小时
发表于 2015-12-8 17:25:57 | 显示全部楼层
直接寄存器操作
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-12-10 00:08:33 | 显示全部楼层
回复【3楼】悦中天:
---------------------------------
猛查,然后不要再做其他任何操作。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-15 21:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表