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

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

[复制链接]
create_ce 提问时间: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个回答
create_ce 回答时间:2017-5-26 17:37:11
没人看,失望啊
anobodykey 回答时间:2017-5-26 17:57:34
那就对比一下新旧固件的stm32f2xx_hal_uart.c与stm32f2xx_hal_uart.h文件呗

所属标签

相似问题

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