串口的移植(代码片段)

Hi,WenshinLee. Hi,WenshinLee.     2022-11-07     598

关键词:

在串口的移植时候一定要更改

  1. 使能USART时钟 串口1挂载在RCC_APB2Periph,而其他的挂载在RCC_APB1Periph.
  2. TX RX的GPIO引脚和时钟
  3. 中断源
  4. 杜邦线的连接.(相应的引脚)
  5. 利用条件编译防止重复编译.

 

#define DEBUG_USART1     1
#define DEBUG_USART2     0
#define DEBUG_USART3     0
#define DEBUG_USART4     0
#define DEBUG_USART5     0
//通过修改上面的01 决定那个串口的使用
#if DEBUG_USART1
// 串口1-USART1
#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

#elif DEBUG_USART2
//串口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

#elif DEBUG_USART3
//串口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

#elif DEBUG_USART4
//串口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

#elif DEBUG_USART5
//串口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

#endif

018_stm32程序移植之_串口接收中文(代码片段)

...数据:0xc4,0xe3,0xba,0xc3(四)我们的目的还是单片机通过串口来进行数据的接收,用CH340短接T和R看看发送“你好”也是会接 查看详情

tiny4412--uboot移植串口(代码片段)

...2B-Schematic.pdf   可看出,底板使用UART0作为外接串口 2、uart0初始化步骤选择UART的时钟源将所涉及的UART通道管脚设为UART功能设置波特率:UBRDIVn寄存器(UARTBAUDRATEDIVISOR)、UFRACVALn寄存器设置传输格式:ULCONn寄存器(UARTLIN... 查看详情

uboot研读笔记|03-初步移植uboot2012.04到jz2440(修改时钟,配置串口)(代码片段)

项目开源地址:https://github.com/Mculover666/uboot-jz24400.教程完整目录00-嵌入式Linux系统中Bootloader的作用和基本运行原理01-下载uboot源码并使用VSCode远程查看源码、编译uboot(2012.04.01版本)02-详细探索uboot启动过程(基于... 查看详情

segger调试利器rtt,替代串口,高速数据上传(代码片段)

...到MDK工程添加RTT文件夹的路径到工程移植完成!替代串口使用JLINKRTTViewer给板子供电,然后连接好SWD或JTAG。打开电脑端软件JLINKRTTViewerÿ 查看详情

segger调试利器rtt,替代串口,高速数据上传(代码片段)

...到MDK工程添加RTT文件夹的路径到工程移植完成!替代串口使用JLINKRTTViewer给板子供电,然后连接好SWD或JTAG。打开电脑端软件JLINKRTTViewerÿ 查看详情

stm32f1基于stm32cubemx配置移植dmp库通过串口打印mpu6050数据(代码片段)

STM32F1基于STM32CubeMX配置移植dmp库通过串口打印MPU6050数据📜串口打印mpu6050数据信息✨本文将分享基于STM32CubeIDE和KeilMDK两个版本的工程。(当然你也可以根据STM32CubeMX自行重新配置自己所需版本的工程)✨本文不做代码... 查看详情

stm32cubemx移植mpu6050的dmp库读取角度信息(代码片段)

....软件平台3.MPU6050原理图二、操作步骤1.CubeMX配置硬件IIC、串口(用于调试)生成代码2.导入DMP库3.调用API4.程序下载,观察现象(通用步骤)5.实验现象5分钟使用Cube 查看详情

六,移植uboot-设置默认环境变量,完善u-boot(代码片段)

...:2013.10 1,修改uboot默认环境变量前面章节得到的uboot串口打印信息如下:可以看出,读出的是坏的CRC,使用默认的环境变量,搜索"usingdefaultenvironment",找到位于 common/env_common.c文件  查看详情

linux下查看串口是否可用的笨方法(代码片段)

...最近尝试将一个网关程序从VxWorks平台移植到Linux平台。在串口方面遇到了一些问题,这里记录一下。  首先在VxWorks下,用devs命令查看设备:->devsdrvname0/null1/tyCo/01/tyCo/12/pcConsole/02/pcConsole/19host:4/ram11/vio4/ahci01:1value&... 查看详情

鸿蒙openharmony-hi3861l移植教程(代码片段)

...楚自己选择的是哪一款,HI3861的程序烧进HI3861L会发生串口0报错H 查看详情

openharmony移植3.1版本系统到stm32(代码片段)

...置文件七、修改链接脚本八、修改中断服务函数九、修改串口映射十、添加测试任务十一、实验现象十二、工程源码【OpenHarmony】STM32F407移植3.1版本系统一、前言最近OpenHarmony3.1已正式发布 查看详情

stm32cubemx配置工程移植dmp库配合匿名四轴上位机三维动态显示测试(代码片段)

...测试📌相关篇《STM32F1基于STM32CubeMX配置移植dmp库通过串口打印MPU6050数据》📍参考文章《STM32MPU6050与匿名上位机通讯(V2.6版)》✨该工程代码匹配的是匿名四轴上位机软件的2.6版本通讯协议,所以支持使用2.6... 查看详情

ch9434嵌入式linux与安卓系统驱动移植和使用教程(代码片段)

1前言CH9434是一款SPI转四串口转接芯片,提供四组全双工的9线异步串口,用于单片机/嵌入式/安卓系统扩展异步串口。提供25路GPIO,以及支持RS485收发控制引脚TNOW。本篇基于STM32MP157处理器平台,介绍CH9434在嵌入式Li... 查看详情

2内核的配置和移植(代码片段)

...有三种:第一种是kernel.org上的官方版本,第二种是三星移植过的,第三种是九鼎X210的移植版本。我们讲课时使用第三种内核来讲解,后面的移植实验使用第二种内核来移植。源码在开发板光盘中有。可以自己去linux下解压然后ma... 查看详情

将 POSIX C 代码移植到 Windows

...问题描述】:我刚刚完成了一个用C编写的小项目,我从串口读取数据流并解析传入的数据。该软件是为POSIX系统编写的(使用termios),并遵循使用串行i/o的标准步骤使用open()打开串口设备配置通信参数(termios)在文件句柄(fcntl)上... 查看详情

移植jz2440开发板(代码片段)

4.1移植第一步  前面已经分析过了.config的过程,可以知道移植需要用到的文件:.config文件arch/arm/cpu下的文件board目录   .config文件是根据后面两个文件生成的,所以我们重点需要配置后面两个目录4.1.2移植board目录  ... 查看详情

stm32串口实验:stm32通过usart1进行串口收发,pa9(tx)和pa10(rx)(代码片段)

这是stm32开发中比较简单的实验,原理是通过串口助手发送信息,stm32接收到信息以后在串口助手中打印相同的内容。这里直接分享keil5工程代码,是在工程模板的基础上移植和修改了正点原子的串口代码百度网盘链接:https://pan.... 查看详情

黑金ax7z100fpga开发板移植lwip库pl端(代码片段)

...下来要配置PS与PL两端的系统硬件,这样我们可以借助串口和A 查看详情