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

DMA串口接收不定长数据,不同的固件版本会挑对方串口硬件

[复制链接]
冬子 提问时间:2017-5-25 16:40 /

经典的DMA串口接收方式,接收不定长数据,下面是其中一段代码,MCU为STM32F207,CubeMx生成固件Firmware Package for Family STM32F2  版本1.2.0下一直使用没有问题,但是换用固件版本1.4.0以上之后,接收对方数据就一直出问题了,但是并不完全出问题,它会挑对方的串口硬件(不知道挑的是什么),大多数情况下不会出现接收问题,如果换回1.2.0的固件(只更换stm32f2xx_hal_uart.c与stm32f2xx_hal_uart.h)重新编译后问题就解决(就能接收到对方数据)。不知道这个问题怎么解决,如果不能解决这个问题,只能使用低版本的固件了
void USART6_IRQHandler(void)
{
  uint32_t tmp_flag = 0;
        uint32_t temp;
  tmp_flag =  __HAL_UART_GET_FLAG(&huart6,UART_FLAG_IDLE);
        if((tmp_flag != RESET))
  {
                __HAL_UART_CLEAR_IDLEFLAG(&huart6);
                temp = huart6.Instance->SR;
                temp = huart6.Instance->DR;
                HAL_UART_DMAStop(&huart6);
                temp  = hdma_usart6_rx.Instance->NDTR;
                if(temp>=RX_LEN)bRecCount=RX_LEN;
                else bRecCount =  RX_LEN - temp;
                GunDataProc(bRxBuf,bRecCount);
                HAL_UART_Receive_DMA(&huart6,bRxBuf,RX_LEN);
               
  }
        HAL_UART_IRQHandler(&huart6);
}

收藏 评论2 发布时间:2017-5-25 16:40

举报

2个回答
冬子 回答时间:2017-5-26 17:37:11
没人看,失望啊
anobodykey 回答时间:2017-5-26 17:57:34
那就对比一下新旧固件的stm32f2xx_hal_uart.c与stm32f2xx_hal_uart.h文件呗

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版