找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3876|回复: 3
打印 上一主题 下一主题
收起左侧

STM32串口用于IrDA通信的设置

[复制链接]
跳转到指定楼层
楼主
ID:139086 发表于 2016-9-12 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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);

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:1 发表于 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);
回复

使用道具 举报

板凳
ID:140716 发表于 2016-9-30 23:43 来自手机 | 只看该作者
收下了
回复

使用道具 举报

地板
ID:467292 发表于 2019-1-13 11:01 | 只看该作者
admin 发表于 2019-1-13 01:41
STM32串口用于IrDA通信的设置

#define IrDA_GPIO                                                        GPIOA                                        // GPIOA

谢谢分享!!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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