串口无限制发送00

2019-07-20 22:12发布

在使用串口的时候(F4,我用的是F429),我把引脚一配置好(Tx,Rx的复用功能),串口助手就会收到单片机发送的0x00,但是过程中我只是初始化,Tx和Rx的引脚,而没有启用发送命令。请问该如何解决。他们说这个是单片机自己的bug,该怎么避免呢 ?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
Gohome_soon
1楼-- · 2019-07-20 22:28
 精彩回答 2  元偷偷看……
Sunwaz
2楼-- · 2019-07-20 23:59
[mw_shl_code=c,true]/**
        * @brief  USART串口GPIO初始化
        * @param  无
        * @retval 无
**/
static void GPIO_USARTConfig(void)
{
    GPIO_InitTypeDef     GPIO_InitStructure;/*GPIO时钟初始化*/
/*对GPIO引脚的时钟进行初始化,此处为AHB1时钟总线*/
/*USART1 GPIO初始化*/
  #ifdef USART1_RX_EN    //USART1接收模式
            RCC_AHB1PeriphClockCmd(USART1_RX_GPIO_Clk ,ENABLE);
  #endif
  #ifdef USART1_TX_EN   //USART1发送模式
            RCC_AHB1PeriphClockCmd(USART1_TX_GPIO_Clk,ENABLE);
  #endif
  #ifdef USART1_EN      //USART1接收发送模式
            RCC_AHB1PeriphClockCmd(USART1_RX_GPIO_Clk |
                                                  USART1_TX_GPIO_Clk ,ENABLE);
   #endif
   /*USART2 GPIO初始化*/
   #ifdef USART2_RX_EN   //USART2接收模式
             RCC_AHB1PeriphClockCmd(USART2_RX_GPIO_Clk,ENABLE);
   #endif
   #ifdef USART2_TX_EN   //USART2发送模式
             RCC_AHB1PeriphClockCmd(USART2_TX_GPIO_Clk,ENABLE);
   #endif
   #ifdef USART2_EN      //USART2发送模式
             RCC_AHB1PeriphClockCmd(USART2_RX_GPIO_Clk |
                                                   USART2_TX_GPIO_Clk ,ENABLE);
   #endif
       
        /*配置GPIO*/
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;        //引脚复用模式
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;       //推挽模式
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;        //上拉电阻
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     //输出速度为50MHz                       
   #if defined (USART1_RX_EN) || defined (USART1_TX_EN) || defined(USART1_EN)
          /*配置USART1 Rx GPIO*/
          GPIO_InitStructure.GPIO_Pin   = USART1_RX_GPIO_Pin;   //配置RX
          GPIO_Init(USART1_RX_GPIO_Port,&GPIO_InitStructure);
        /*配置USART1 Tx GPIO*/
          GPIO_InitStructure.GPIO_Pin = USART1_TX_GPIO_Pin;
          GPIO_Init(USART1_TX_GPIO_Port,&GPIO_InitStructure);                       
        /*引脚关联*/                                                                                 
          GPIO_PinAFConfig(USART1_RX_GPIO_Port,USART1_RX_GPIO_Source,
                                 GPIO_AF_USART1);                   //Rx引脚关联到USART2_Rx上
          GPIO_PinAFConfig(USART1_TX_GPIO_Port,USART1_TX_GPIO_Source,
                                 GPIO_AF_USART1);                                                                                   //Tx引脚关联到USART2_Tx上
    #endif                                                                                 
                                                                                 
   #if defined (USART2_RX_EN) || defined (USART2_TX_EN) || defined(USART2_EN)
          /*配置USART2 Rx GPIO*/
           GPIO_InitStructure.GPIO_Pin   = USART2_RX_GPIO_Pin;   //配置RX
           GPIO_Init(USART2_RX_GPIO_Port,&GPIO_InitStructure);
                /*配置USART2 Tx GPIO*/
               GPIO_InitStructure.GPIO_Pin = USART2_TX_GPIO_Pin;
        GPIO_Init(USART2_TX_GPIO_Port,&GPIO_InitStructure);       
                /*引脚关联*/                                                                                 
        GPIO_PinAFConfig(USART2_RX_GPIO_Port,USART2_RX_GPIO_Source,
                                 GPIO_AF_USART2);                   //Rx引脚关联到USART2_Rx上
        GPIO_PinAFConfig(USART2_TX_GPIO_Port,USART2_TX_GPIO_Source,
                                 GPIO_AF_USART2);                                                                    //Tx引脚关联到USART2_Tx上
          #endif                                 
}[/mw_shl_code]
Sunwaz
3楼-- · 2019-07-21 02:29
Gohome_soon 发表于 2016-5-14 13:20
串个22欧电阻

在哪个位置串?
Sunwaz
4楼-- · 2019-07-21 07:34
Gohome_soon 发表于 2016-5-14 13:20
串个22欧电阻

意思 是这是一个硬件问题?
Gohome_soon
5楼-- · 2019-07-21 08:47
 精彩回答 2  元偷偷看……
Sunwaz
6楼-- · 2019-07-21 13:27
 精彩回答 2  元偷偷看……

一周热门 更多>