打印
[MM32软件]

MM32串口2接收Rx线则PA0输出被影响

[复制链接]
582|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hhhfff|  楼主 | 2020-12-24 20:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void sUART2Init(void)
{
    //GPIO端口设置
    GPIO_InitTypeDef GPIO_InitStructure;
    UART_InitTypeDef UART_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;


    RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART2, ENABLE);        //使能UART1,GPIOA时钟
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);  //开启GPIOA,GPIOB时钟

        //UART1 NVIC ÅäÖÃ
    NVIC_InitStructure.NVIC_IRQChannel = UART2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPriority = 3;               
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                       
    NVIC_Init(&NVIC_InitStructure);

        GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_0);
    //UART 初始化设置
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1);
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1);
   
    UART_InitStructure.UART_BaudRate = cUART2Band;//串口波特率
    UART_InitStructure.UART_WordLength = UART_WordLength_8b;//字长为8位数据格式
    UART_InitStructure.UART_StopBits = UART_StopBits_1;//一个停止位
    UART_InitStructure.UART_Parity = UART_Parity_No;//无奇偶校验位
    UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;//无硬件数据流控制
    UART_InitStructure.UART_Mode = UART_Mode_Rx|UART_Mode_Tx;        //收发模式
   
    UART_Init(UART2, &UART_InitStructure);                         //初始化串口1
        UART_ITConfig(UART2, UART_IT_RXIEN,ENABLE);
        UART_Cmd(UART2, ENABLE);                                    //使能串口1
   
    //UART1_TX   GPIOA.9
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA.9
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //复用推挽输出
    GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9
   
    //UART1_RX          GPIOA.10初始化
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA10
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
    GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  
}

使用特权

评论回复
沙发
hhhfff|  楼主 | 2020-12-24 20:34 | 只看该作者
void sTimerInit(void)
{
    TIM_TimeBaseInitTypeDef TIM_StructInit;
    NVIC_InitTypeDef NVIC_StructInit;
   
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
   
   
    TIM_StructInit.TIM_Period =        999;                                                                    
    TIM_StructInit.TIM_Prescaler =47;                                                            
    TIM_StructInit.TIM_ClockDivision=TIM_CKD_DIV1;                                                     
    TIM_StructInit.TIM_CounterMode=TIM_CounterMode_Up;                                                
    TIM_StructInit.TIM_RepetitionCounter=0;
   
    TIM_TimeBaseInit(TIM2, &TIM_StructInit);
   

    NVIC_StructInit.NVIC_IRQChannel=TIM2_IRQn;
    NVIC_StructInit.NVIC_IRQChannelPriority=1;
    NVIC_StructInit.NVIC_IRQChannelCmd=ENABLE;
    NVIC_Init(&NVIC_StructInit);
   

    TIM_ClearFlag(TIM2, TIM_FLAG_Update);
    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
   
    TIM_Cmd(TIM2, ENABLE);

}

使用特权

评论回复
板凳
hhhfff|  楼主 | 2020-12-24 20:35 | 只看该作者
Rx PA3接到USB转TTL上时,PA0就会输出高电平;这是真的搞不懂了

使用特权

评论回复
地板
zhu^zhu| | 2020-12-25 09:25 | 只看该作者
UART通讯的双方设备电源电压相同吗?PA0的电压与USB转TTL的Tx电压有关联或相关吗?

使用特权

评论回复
5
家有两宝呀| | 2020-12-26 21:48 | 只看该作者

使用特权

评论回复
6
hhhfff|  楼主 | 2020-12-28 09:45 | 只看该作者
zhu^zhu 发表于 2020-12-25 09:25
UART通讯的双方设备电源电压相同吗?PA0的电压与USB转TTL的Tx电压有关联或相关吗? ...

我是5V给芯片供电,如果我把Rx串接个电阻或者接到3.3V单片机上就不会对IO有影响;不知道是不是我再频繁操作IO(开漏输出为高和模拟输入之间频繁切换,ms级别)

使用特权

评论回复
7
zhu^zhu| | 2020-12-28 12:24 | 只看该作者
问题应该出现在电平匹配上。谢谢!

使用特权

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

本版积分规则

2

主题

16

帖子

0

粉丝