首页 > 其他分享 >STM32 第20章 USART--串口通信3

STM32 第20章 USART--串口通信3

时间:2024-11-03 20:20:17浏览次数:3  
标签:20 USART 串口 DEBUG GPIO RCC define

时间:2024.10.30

参考资料:

《零死角玩转STM32》“USART--串口通信”章节

 

一、学习内容

1、串口2345代码移植

实现控制串口2-->将串口1的宏修改成串口2的即可

1.1 串口的宏

串口1:
//为了方便移植,定义的宏
//串口1-USART
#define  DEBUG_USARTx                      USART1
#define  DEBUG_USART_CLK                   RCC_APB2Periph_USART1
#define  DEBUG_USART_APBxClkCmd            RCC_APB2PeriphClockCmd
#define  DEBUG_USART_BAUDRATE              115200
//USART GPIO引脚宏定义
#define  DEBUG_USART_GPIO_CLK              (RCC_APB2Periph_GPIOA)
#define  DEBUG_USART_GPIO_APBxClkCmd       RCC_APB2PeriphClockCmd

#define  DEBUG_USART_TX_GPIO_PORT          GPIOA
#define  DEBUG_USART_TX_GPIO_PIN           GPIO_Pin_9
#define  DEBUG_USART_RX_GPIO_PORT          GPIOA
#define  DEBUG_USART_RX_GPIO_PIN           GPIO_Pin_10

#define  DEBUG_USART_IRQ                   USART1_IRQn
#define  DEBUG_USART_IRQHandler            USART1_IRQHandler
串口2:
// 串口2-USART2
//#define  DEBUG_USARTx                   USART2
//#define  DEBUG_USART_CLK                RCC_APB1Periph_USART2
//#define  DEBUG_USART_APBxClkCmd         RCC_APB1PeriphClockCmd
//#define  DEBUG_USART_BAUDRATE           115200

 USART GPIO 引脚宏定义
//#define  DEBUG_USART_GPIO_CLK           (RCC_APB2Periph_GPIOA)
//#define  DEBUG_USART_GPIO_APBxClkCmd    RCC_APB2PeriphClockCmd
//    
//#define  DEBUG_USART_TX_GPIO_PORT         GPIOA   
//#define  DEBUG_USART_TX_GPIO_PIN          GPIO_Pin_2
//#define  DEBUG_USART_RX_GPIO_PORT       GPIOA
//#define  DEBUG_USART_RX_GPIO_PIN        GPIO_Pin_3

//#define  DEBUG_USART_IRQ                USART2_IRQn
//#define  DEBUG_USART_IRQHandler         USART2_IRQHandler
串口3:
 串口3-USART3
//#define  DEBUG_USARTx                   USART3
//#define  DEBUG_USART_CLK                RCC_APB1Periph_USART3
//#define  DEBUG_USART_APBxClkCmd         RCC_APB1PeriphClockCmd
//#define  DEBUG_USART_BAUDRATE           115200

 USART GPIO 引脚宏定义
//#define  DEBUG_USART_GPIO_CLK           (RCC_APB2Periph_GPIOB)
//#define  DEBUG_USART_GPIO_APBxClkCmd    RCC_APB2PeriphClockCmd
//    
//#define  DEBUG_USART_TX_GPIO_PORT         GPIOB   
//#define  DEBUG_USART_TX_GPIO_PIN          GPIO_Pin_10
//#define  DEBUG_USART_RX_GPIO_PORT       GPIOB
//#define  DEBUG_USART_RX_GPIO_PIN        GPIO_Pin_11

//#define  DEBUG_USART_IRQ                USART3_IRQn
//#define  DEBUG_USART_IRQHandler         USART3_IRQHandler
串口4:
// 串口4-UART4
#define  DEBUG_USARTx                   UART4
#define  DEBUG_USART_CLK                RCC_APB1Periph_UART4
#define  DEBUG_USART_APBxClkCmd         RCC_APB1PeriphClockCmd
#define  DEBUG_USART_BAUDRATE           115200

// USART GPIO 引脚宏定义
#define  DEBUG_USART_GPIO_CLK           (RCC_APB2Periph_GPIOC)
#define  DEBUG_USART_GPIO_APBxClkCmd    RCC_APB2PeriphClockCmd
    
#define  DEBUG_USART_TX_GPIO_PORT         GPIOC   
#define  DEBUG_USART_TX_GPIO_PIN          GPIO_Pin_10
#define  DEBUG_USART_RX_GPIO_PORT       GPIOC
#define  DEBUG_USART_RX_GPIO_PIN        GPIO_Pin_11

#define  DEBUG_USART_IRQ                UART4_IRQn
#define  DEBUG_USART_IRQHandler         UART4_IRQHandler
串口5:
// 串口5-UART5
//#define  DEBUG_USARTx                   UART5
//#define  DEBUG_USART_CLK                RCC_APB1Periph_UART5
//#define  DEBUG_USART_APBxClkCmd         RCC_APB1PeriphClockCmd
//#define  DEBUG_USART_BAUDRATE           115200

 USART GPIO 引脚宏定义
//#define  DEBUG_USART_GPIO_CLK           (RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD)
//#define  DEBUG_USART_GPIO_APBxClkCmd    RCC_APB2PeriphClockCmd
//    
//#define  DEBUG_USART_TX_GPIO_PORT         GPIOC   
//#define  DEBUG_USART_TX_GPIO_PIN          GPIO_Pin_12
//#define  DEBUG_USART_RX_GPIO_PORT       GPIOD
//#define  DEBUG_USART_RX_GPIO_PIN        GPIO_Pin_2

//#define  DEBUG_USART_IRQ                UART5_IRQn
//#define  DEBUG_USART_IRQHandler         UART5_IRQHandler

 

TIPS:

在串口宏定义修改后,记得出口重复定义的问题--->使用条件编译

//条件编译解决重复定义的问题
/*当我们使用哪个串口是,就把它的宏定义成1,其余不使用的定义成0*/ 

//条件编译解决重复定义的问题
/*当我们使用哪个串口是,就把它的宏定义成1,其余不使用的定义成0*/
#define DEBUG_USART1    1
#define DEBUG_USART2    0
#define DEBUG_USART3    0
#define DEBUG_USART4    0
#define DEBUG_USART5    0


#if DEBUG_USART1
//为了方便移植,定义的宏
//串口1-USART
#define  DEBUG_USARTx                      USART1
#define  DEBUG_USART_CLK                   RCC_APB2Periph_USART1
#define  DEBUG_USART_APBxClkCmd            RCC_APB2PeriphClockCmd
#define  DEBUG_USART_BAUDRATE              115200
//USART GPIO引脚宏定义
#define  DEBUG_USART_GPIO_CLK              (RCC_APB2Periph_GPIOA)
#define  DEBUG_USART_GPIO_APBxClkCmd       RCC_APB2PeriphClockCmd

#define  DEBUG_USART_TX_GPIO_PORT          GPIOA
#define  DEBUG_USART_TX_GPIO_PIN           GPIO_Pin_9
#define  DEBUG_USART_RX_GPIO_PORT          GPIOA
#define  DEBUG_USART_RX_GPIO_PIN           GPIO_Pin_10

#define  DEBUG_USART_IRQ                   USART1_IRQn
#define  DEBUG_USART_IRQHandler           

标签:20,USART,串口,DEBUG,GPIO,RCC,define
From: https://blog.csdn.net/2201_75297369/article/details/143361788

相关文章

  • STM32 第20章 USART--串口通信2
    时间:2024.10.29参考资料:《零死角玩转STM32》“USART--串口通信”章节编程是从GPIO输出-使用固件库点亮LED灯的基础上开始一、学习内容1、STM32串口初始化结构体和固件库1.1USART初始化结构体 /***@briefUSARTInitStructuredefinition*/typedef......
  • ACR2024官方预告_互动式规划以探索跨学科团队的多样化需求
    InteractiveProgrammingtoExploreDiverseNeedsofInterdisciplinaryTeam互动式规划以探索跨学科团队的多样化需求November1,2024 2024年11月1日Newadvancementsandprovenapproachesacrossthepracticeofrheumatologywillbeattheforefro......
  • GB/T 28046.3-2011 道路车辆 电气及电子设备的环境条件和试验 第3部分:机械负荷(3)
    写在前面本系列文章主要讲解道路车辆电气及电子设备的环境条件和试验GB/T28046标准的相关知识,希望能帮助更多的同学认识和了解GB/T28046标准。若有相关问题,欢迎评论沟通,共同进步。(*^▽^*)第3部分:机械负荷4.1振动4.1.2试验4.1.2.3试验III——乘用车柔性气室4.1.2.......
  • 2024-2025-1 20241318《计算机基础与程序设计》第六周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06这个作业的目标<Polya如何解决问题简单类型与组合类型复合数据结构查找与排序算法算法复杂度......