标题: STM32串口用于IrDA通信的设置 [打印本页]

作者: love16811187    时间: 2016-9-12 16:30
标题: STM32串口用于IrDA通信的设置
STM32串口用于IrDA通信的设置

#define IrDA_GPIO                            GPIOA                    // GPIOA
#define IrDA_TX                                GPIO_Pin_9        // PA09
#define IrDA_RX                                GPIO_Pin_10        // PA10
#define IrDA_PD                                GPIO_Pin_11        // PA11

#define IrDA_USART                            USART1                // 使用 USART1
#define IrDA_BAUDRATE                        230400                // 波特率设置

//------------------------------------------------------------USART IO CONFIG开始
    /* USART1  IrDA  */
    /* Configure USART Tx as alternate function push-pull */
    GPIO_InitStructure.GPIO_Pin        = IrDA_TX;
    GPIO_InitStructure.GPIO_Mode     = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(IrDA_GPIO, &GPIO_InitStructure);   
    /* Configure USART Rx as input floating */
    GPIO_InitStructure.GPIO_Pin        = IrDA_RX;
    GPIO_InitStructure.GPIO_Mode    = GPIO_Mode_IN_FLOATING;
    GPIO_Init(IrDA_GPIO, &GPIO_InitStructure);
//------------------------------------------------------------USART IO CONFIG结束


//-----------------------------------------------------------/* IrDA_USART 设置 */
    USART_InitStructure.USART_BaudRate                        = IrDA_BAUDRATE;
    USART_InitStructure.USART_WordLength                    = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits                        = USART_StopBits_1;
    USART_InitStructure.USART_Parity                        = USART_Parity_No;
    USART_InitStructure.USART_Mode                            = USART_Mode_Rx | USART_Mode_Tx;
    USART_InitStructure.USART_HardwareFlowControl            = USART_HardwareFlowControl_None;
    /* Configure IrDA_USART basic and asynchronous paramters */
    USART_Init(IrDA_USART, &USART_InitStructure);   
    USART_ITConfig(IrDA_USART, USART_IT_RXNE, ENABLE);
    /* Enable IrDA_USART */
    USART_Cmd(IrDA_USART, ENABLE);
    /* Set the IrDA_USART prescaler */
    USART_SetPrescaler(IrDA_USART, 0x1);
    /* Configure the IrDA_USART IrDA mode */
    USART_IrDAConfig(IrDA_USART, USART_IrDAMode_Normal);
    /* Enable the IrDA_USART IrDA mode */
    USART_IrDACmd(IrDA_USART, ENABLE);


作者: 章鱼哥    时间: 2016-9-30 23:43
收下了
作者: admin    时间: 2019-1-13 01:41
STM32串口用于IrDA通信的设置

#define IrDA_GPIO                                                        GPIOA                                        // GPIOA
#define IrDA_TX                                                            GPIO_Pin_9                // PA09
#define IrDA_RX                                                            GPIO_Pin_10                // PA10
#define IrDA_PD                                                            GPIO_Pin_11                // PA11

#define IrDA_USART                                                        USART1                                // 使用 USART1
#define IrDA_BAUDRATE                                        230400                                // 波特率设置

//------------------------------------------------------------USART IO CONFIG开始
        /* USART1  IrDA  */
        /* Configure USART Tx as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin                = IrDA_TX;
        GPIO_InitStructure.GPIO_Mode         = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(IrDA_GPIO, &GPIO_InitStructure);       
        /* Configure USART Rx as input floating */
        GPIO_InitStructure.GPIO_Pin                = IrDA_RX;
        GPIO_InitStructure.GPIO_Mode        = GPIO_Mode_IN_FLOATING;
        GPIO_Init(IrDA_GPIO, &GPIO_InitStructure);
//------------------------------------------------------------USART IO CONFIG结束


//-----------------------------------------------------------/* IrDA_USART 设置 */
        USART_InitStructure.USART_BaudRate                                                = IrDA_BAUDRATE;
        USART_InitStructure.USART_WordLength                                        = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits                                                = USART_StopBits_1;
        USART_InitStructure.USART_Parity                                                = USART_Parity_No;
        USART_InitStructure.USART_Mode                                                        = USART_Mode_Rx | USART_Mode_Tx;
        USART_InitStructure.USART_HardwareFlowControl                = USART_HardwareFlowControl_None;
        /* Configure IrDA_USART basic and asynchronous paramters */
        USART_Init(IrDA_USART, &USART_InitStructure);       
        USART_ITConfig(IrDA_USART, USART_IT_RXNE, ENABLE);
        /* Enable IrDA_USART */
        USART_Cmd(IrDA_USART, ENABLE);
        /* Set the IrDA_USART prescaler */
    USART_SetPrescaler(IrDA_USART, 0x1);
    /* Configure the IrDA_USART IrDA mode */
    USART_IrDAConfig(IrDA_USART, USART_IrDAMode_Normal);
    /* Enable the IrDA_USART IrDA mode */
    USART_IrDACmd(IrDA_USART, ENABLE);

作者: hanpingx    时间: 2019-1-13 11:01
admin 发表于 2019-1-13 01:41
STM32串口用于IrDA通信的设置

#define IrDA_GPIO                                                        GPIOA                                        // GPIOA

谢谢分享!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1