硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2463|回复: 1
收起左侧

大家好,在用v6串口2时遇到个问题,用的PD5,PD6脚,加了个使能脚PD4,这个脚一直为高电平

[复制链接]

24

主题

24

回帖

96

积分

初级会员

积分
96
发表于 2020-6-29 17:56:11 | 显示全部楼层 |阅读模式
大家好,在用v6串口2时遇到个问题,用的PD5,PD6脚,加了个使能脚PD4,这个脚一直为高电平,怎么能使这个脚为低电平呢,并且可以设置电平高低;
串口配置如下:
#if UART2_FIFO_EN == 1                /* 串口2 TX = PD5   RX = PD6 或  TX = PA2, RX = PA3  */
        /* 第1步: 配置GPIO */
        #if 1        /* 串口2 TX = PD5   RX = PD6 */
                /* 打开 GPIO 时钟 */
                RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

                /* 打开 UART 时钟 */
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

                /* 将 PD5 映射为 USART2_TX */
                GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_USART2);

                /* 将 PD6 映射为 USART2_RX */
                GPIO_PinAFConfig(GPIOD, GPIO_PinSource6, GPIO_AF_USART2);

                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; //GPIOA9与GPIOA10
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //速度50MHz
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽复用输出
                GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
                GPIO_Init(GPIOD,&GPIO_InitStructure); //初始化PA9,PA10



        #else        /* 串口2   TX = PA2, RX = PA3 */
                /* 打开 GPIO 时钟 */
                RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

                /* 打开 UART 时钟 */
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

                /* 将 PA2 映射为 USART2_TX. 在STM32-V5板中,PA2 管脚用于以太网 */
                //GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);

                /* 将 PA3 映射为 USART2_RX */
                GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);
                GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);


                        //USART2端口配置
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; //GPIOA2与GPIOA3
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //速度50MHz
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽复用输出
                GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
                GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化PA2,PA3
        #endif

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF | GPIO_Mode_OUT;//输出
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;  //推挽输出
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;  //输出
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz; //高速 GPIO
        GPIO_Init(GPIOD,&GPIO_InitStructure);
        GPIO_ResetBits(GPIOD,GPIO_Pin_4);

        /* 第2步: 配置串口硬件参数 */
        USART_InitStructure.USART_BaudRate = UART2_BAUD;        /* 波特率 */
        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_Init(USART2, &USART_InitStructure);

        USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);        /* 使能接收中断 */
        /*
                USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
                注意: 不要在此处打开发送中断
                发送中断使能在SendUart()函数打开
        */
        USART_Cmd(USART2, ENABLE);                /* 使能串口 */

        /* CPU的小缺陷:串口配置好,如果直接Send,则第1个字节发送不出去
                如下语句解决第1个字节无法正确发送出去的问题 */
        USART_ClearFlag(USART2, USART_FLAG_TC);     /* 清发送完成标志,Transmission Complete flag */

#endif


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2020-6-29 18:49:14 | 显示全部楼层
帮你修改了下题目,方便检索。

遇到这种问题的试试,第1件事情就是看原理图。

在V6板子上,PD6是完全引不出来的,除非有高超的焊接技术,用漆包线从引脚上直接飞线。

如果你是在V6板子上面搞,你当前的测试,没有研究价值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-10 22:51 , Processed in 0.260208 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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