你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103RCT6的USART1不能接收多字节数据

[复制链接]
chh650319 提问时间:2019-8-23 18:17 /
用串口助手手动发送和1秒一次的定时发送时,STM32F103RCT6能完整地接收到15个字节的数据。
用串口助循环发送时,与延时有关。500毫秒延时,STM32F103RCT6能接收到12个字节的数据。5毫秒延时,STM32F103RCT6只能接收到2个字节的数据。
用实际上位机发送时,STM32F103RCT6能接收到最后1个字节的数据。
实际上位机是这样发送的:
for(int j=0;j<16;j++)
  {
        mLogMotorNet.SendData(buf[j]);
  }


STM32F103RCT6是这样接收的:
for(i=0;i<16;i++)
  {
    j=i+1;
    if(USART_RX_STA==j) a=USART_ReceiveData(USART1);//
  }
串口是USART1,程序模板是使用正点原子的。USART配置、初始化和中断服务函数都没变动(照抄正点原子的)。
上位机是很早以前开发的,主板和软件系统也是公司自行设计的。上位机发送的速度很快,一瞬间就发送了(眼睛看不出其循环发送过程)。这种情况,STM32F103RCT6怎样才能完整地接收到15个字节的数据?
烦请指导,谢谢!
收藏 评论8 发布时间:2019-8-23 18:17

举报

8个回答
00-405686 回答时间:2019-8-29 14:55:36
调试看看你串口中断接收那儿数据是否收完了,程序不完整,看不出来太多问题,建议把串口接收中断函数贴出来吧,
hh_song 回答时间:2019-8-29 15:04:25
把串口优先级调到最高,把单片机主频调到最高,把串口堆栈改成环形堆栈。500ms都有错误帧,这个应该不至于,我觉得还是好好检查代码吧。
andrewsss 回答时间:2019-8-31 11:38:41
用个全局的数组在串口中断里接收
天臆弄人 回答时间:2019-8-31 11:38:41
新手吧,中口接收这样写不丢才怪,在中断接收,我都发过5M的文件给STM32照样一个接收不丢
哀歌与世无争 回答时间:2019-9-1 16:12:04
接收程序有问题吧,串口接收中断是来一个字节中断一次,所以每次进中断都要读接收到的字节,正点原子里也是先接收,再判断接收是否完成
Res =USART_ReceiveData(USART1);        //读取接收到的数据
                if((USART_RX_STA&0x8000)==0)//接收未完成
怎么你这是先判断再接收,这样就可能丢字节了
qazplm3218 回答时间:2019-9-1 17:44:16
应该是中断接收程序有问题!在中断里先用数组来接收所以数据,在进行判断数组里的数据
void USART3_IRQHandler(void)                       
{
        uint8_t temp=0;  
  
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
        {   
                USART_ClearITPendingBit(USART3,USART_IT_RXNE);                                                       
                temp = USART_ReceiveData(USART3);
          usart3_tabel_r[usart3_r_count]=temp;
stm1024 回答时间:2019-10-15 12:52:16
这么快的话,为什么不换DMA试试?
butterflyspring 回答时间:2019-11-5 17:29:16
串口可以查询,中断和DMA方式。官方都有相应的例程。建议先了解串口发送和接收的流程,包括中间设置了那么几个标志,则各种方式随便用都可以

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版