打印
[STM32F4]

stm32f407IGT6串口问题

[复制链接]
1604|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
btiger2000|  楼主 | 2018-1-17 13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近做一个项目,使用407用到多个串口,串口一,二正常,串口三,六波特率不对,找了半天也沒发现问题,哪位大侠
遇到过?
沙发
df_flying| | 2018-1-17 14:12 | 只看该作者
自己用LL库写的还是 CubeMX生成的?自己配置的仔细看下时钟的配置吧,你这么表述别人也很难具体分析原因的

使用特权

评论回复
板凳
btiger2000|  楼主 | 2018-1-17 14:17 | 只看该作者
串口一六用的同一个时钟,串口二三用的同一个时钟,如果是时钟配置不对,串口一二应该也不正常才对

使用特权

评论回复
地板
bioger2| | 2018-1-17 14:30 | 只看该作者
btiger2000 发表于 2018-1-17 14:17
串口一六用的同一个时钟,串口二三用的同一个时钟,如果是时钟配置不对,串口一二应该也不正常才对

...

你要这么说那就是对的 肯定是你看错了
你这种得把实际东西贴出来啊 不然不都是猜吗  对结果毫无意义啊

使用特权

评论回复
5
btiger2000|  楼主 | 2018-1-17 14:55 | 只看该作者
初始化代码如下:

UARTn_Init(COM1,115200);
UARTn_Init(COM2,115200);
UARTn_Init(COM3,115200);
UARTn_Init(COM6,115200);


void UARTn_Init(COMn_TypeDef COM,uint32_t BaudRate)
{
  GPIO_InitTypeDef GPIO_InitStructure;

       
        USART_InitTypeDef USART_InitStructure;   
      
  
        /* Enable GPIO clock */
  RCC_AHB1PeriphClockCmd(COM_TX_PORT_CLK[COM] | COM_RX_PORT_CLK[COM], ENABLE);

  if (COM == COM1 ||COM == COM6)
  {
    /* Enable UART clock */
    RCC_APB2PeriphClockCmd(COM_USART_CLK[COM], ENABLE);
  }
  else
  {
    /* Enable UART clock */
    RCC_APB1PeriphClockCmd(COM_USART_CLK[COM], ENABLE);
  }
       
        /* USARTx configured as follow:
        - BaudRate = 115200 baud  
        - Word Length = 8 Bits
        - One Stop Bit
        - No parity
        - Hardware flow control disabled (RTS and CTS signals)
        - Receive and transmit enabled
  */
  USART_InitStructure.USART_BaudRate = BaudRate;//115200;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
       
        /* USART configuration */
  USART_Init(COM_USART[COM], &USART_InitStructure);
  

  /* Connect PXx to USARTx_Tx*/
  GPIO_PinAFConfig(COM_TX_PORT[COM], COM_TX_PIN_SOURCE[COM], COM_TX_AF[COM]);

  /* Connect PXx to USARTx_Rx*/
  GPIO_PinAFConfig(COM_RX_PORT[COM], COM_RX_PIN_SOURCE[COM], COM_RX_AF[COM]);

  /* Configure USART Tx as alternate function  */
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

  GPIO_InitStructure.GPIO_Pin = COM_TX_PIN[COM];
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(COM_TX_PORT[COM], &GPIO_InitStructure);

  /* Configure USART Rx as alternate function  */
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Pin = COM_RX_PIN[COM];
  GPIO_Init(COM_RX_PORT[COM], &GPIO_InitStructure);

  
   
       
        Buf_Fifo_Init(COM);       
               
  /* Enable USART */
  USART_Cmd(COM_USART[COM], ENABLE);
        USART_ClearFlag(COM_USART[COM],USART_FLAG_TC);
        USARTn_Int_Init(COM);
}

使用特权

评论回复
6
yiyigirl2014| | 2018-1-17 16:12 | 只看该作者
串口太多了,没搞过。

使用特权

评论回复
7
mmuuss586| | 2018-1-17 17:48 | 只看该作者
都一样的;
最好程序都贴出来;

使用特权

评论回复
8
btiger2000|  楼主 | 2018-1-19 10:18 | 只看该作者
代码没问题,犯了一个低级错误,问题解决了,感谢各位关注

使用特权

评论回复
9
yiy| | 2018-1-19 15:28 | 只看该作者
btiger2000 发表于 2018-1-19 10:18
代码没问题,犯了一个低级错误,问题解决了,感谢各位关注

楼主,讲讲你所谓的低级错误啊,免得我也犯这个错误。

使用特权

评论回复
10
btiger2000|  楼主 | 2018-1-19 17:43 | 只看该作者
yiy 发表于 2018-1-19 15:28
楼主,讲讲你所谓的低级错误啊,免得我也犯这个错误。

错误太低级。作为一个老司机都不好意思说了。232电平和ttl电平搞错了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

1177

帖子

6

粉丝