搜索
bottom↓
回复: 3

碰到一个怪问题:F105RC,HAL设置uart5影响uart4(解决:有短路)

[复制链接]

出0入4汤圆

发表于 2019-6-19 10:58:09 | 显示全部楼层 |阅读模式
本帖最后由 liuqian 于 2019-6-19 14:38 编辑

CPU:F105RC,STM32CubeIde V1.0.0
初始化代码,由cube生成
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();
  MX_I2C2_Init();
  MX_SPI1_Init();
  MX_SPI2_Init();
  MX_TIM3_Init();
  MX_UART4_Init();                // 到这里正常
  MX_UART5_Init();                // 执行完这个就不对了,详情如下
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();

UART4初始化以后,串口是正常的,外面有数据过来,示波器可以看到UART4_RX(PC11)上有正常的波形
执行完MX_UART5_Init(),PC11就变成高电平了,用示波器看,在贴近3.3V的地方有大约200mv的波动,好像PC11强制输出高,外面的max232过来的数据,不能出低电平
跟踪进MX_UART5_Init(),进去HAL_UART_Init(&huart5)
执行
  /* Enable the peripheral */
  __HAL_UART_ENABLE(huart);
前,uart4是正常的,执行完这个就不对了,出现上面的强制拉高现象
__HAL_UART_ENABLE(huart) 是一个宏,如下:
#define __HAL_UART_ENABLE(__HANDLE__)               ((__HANDLE__)->Instance->CR1 |=  USART_CR1_UE) // 设置CR1中的Bit 13 UE: USART enable
PC11的端口设置是0x8:input+pull-up
执行这一行后还是0x8,没有变
Instance的地址0x40005000,确实指向uart5


暂时解决办法是注释掉 //  MX_UART5_Init();
先不用uart5
uart4接收发送都正常

搞不懂为什么会这样

------------------------------------------------
操,板上有短路,PC11(UART4RX)和PC12(UART5TX),设置UART5后PC12强制输出高,把PC11拉住了

出0入4汤圆

 楼主| 发表于 2019-6-29 23:43:49 | 显示全部楼层
需要ram大,跑freertos,不用usb

出0入362汤圆

发表于 2019-6-30 00:08:50 | 显示全部楼层
类似问题有通用的解决方案:每次做至少两块完全一样的板,发现问题了,无脑换另一块板
如果解决,说明是虚焊短路之类,否则是软件问题。

出0入4汤圆

 楼主| 发表于 2019-6-30 11:42:23 | 显示全部楼层
tomzbj 发表于 2019-6-30 00:08
类似问题有通用的解决方案:每次做至少两块完全一样的板,发现问题了,无脑换另一块板
如果解决,说明是虚 ...

通常是这样,但这次特殊,只有一块板
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 01:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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