当前位置:首页 > 单片机 > 单片机
[导读] 1,开发环境 1,适用芯片:STM32F4全部芯片 2,固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 3,IDE:MDK5172,驱动源码 USART.h文件/*************************************************************

1,开发环境

1,适用芯片:STM32F4全部芯片

2,固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0

3,IDE:MDK517


2,驱动源码

USART.h文件

/****************************************************************

* Copyright (C) 2016, XinLi, all right reserved.

* File name: USART.h

* Date: 2016.03.22

* Description: USART Driver

*****************************************************************/

#ifndef __USART_H

#define __USART_H

/****************************************************************

* Header include

*****************************************************************/

#include "stm32f4xx.h"

/****************************************************************

* Macro definition

*****************************************************************/

/********************* USART1 Configuration *********************/

#define RCC_AHB1Periph_USART1_Tx RCC_AHB1Periph_GPIOA

#define RCC_AHB1Periph_USART1_Rx RCC_AHB1Periph_GPIOA

#define GPIO_USART1_Tx GPIOA

#define GPIO_USART1_Rx GPIOA

#define GPIO_Pin_USART1_Tx GPIO_Pin_9

#define GPIO_Pin_USART1_Rx GPIO_Pin_10

#define GPIO_PinSource_USART1_Tx GPIO_PinSource9

#define GPIO_PinSource_USART1_Rx GPIO_PinSource10

/****************************************************************/

/********************* USART2 Configuration *********************/

#define RCC_AHB1Periph_USART2_Tx RCC_AHB1Periph_GPIOA

#define RCC_AHB1Periph_USART2_Rx RCC_AHB1Periph_GPIOA

#define GPIO_USART2_Tx GPIOA

#define GPIO_USART2_Rx GPIOA

#define GPIO_Pin_USART2_Tx GPIO_Pin_2

#define GPIO_Pin_USART2_Rx GPIO_Pin_3

#define GPIO_PinSource_USART2_Tx GPIO_PinSource2

#define GPIO_PinSource_USART2_Rx GPIO_PinSource3

/****************************************************************/

#if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F469_479xx) || defined(STM32F446xx) || defined(STM32F412xG) || defined(STM32F413_423xx)

/********************* USART3 Configuration *********************/

#define RCC_AHB1Periph_USART3_Tx RCC_AHB1Periph_GPIOB

#define RCC_AHB1Periph_USART3_Rx RCC_AHB1Periph_GPIOB

#define GPIO_USART3_Tx GPIOB

#define GPIO_USART3_Rx GPIOB

#define GPIO_Pin_USART3_Tx GPIO_Pin_10

#define GPIO_Pin_USART3_Rx GPIO_Pin_11

#define GPIO_PinSource_USART3_Tx GPIO_PinSource10

#define GPIO_PinSource_USART3_Rx GPIO_PinSource11

/****************************************************************/

#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F469_479xx || STM32F446xx || STM32F412xG || STM32F413_423xx */

#if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F469_479xx) || defined(STM32F446xx) || defined(STM32F413_423xx)

/********************* USART4 Configuration *********************/

#define RCC_AHB1Periph_USART4_Tx RCC_AHB1Periph_GPIOC

#define RCC_AHB1Periph_USART4_Rx RCC_AHB1Periph_GPIOC

#define GPIO_USART4_Tx GPIOC

#define GPIO_USART4_Rx GPIOC

#define GPIO_Pin_USART4_Tx GPIO_Pin_10

#define GPIO_Pin_USART4_Rx GPIO_Pin_11

#define GPIO_PinSource_USART4_Tx GPIO_PinSource10

#define GPIO_PinSource_USART4_Rx GPIO_PinSource11

/****************************************************************/

/********************* USART5 Configuration *********************/

#define RCC_AHB1Periph_USART5_Tx RCC_AHB1Periph_GPIOC

#define RCC_AHB1Periph_USART5_Rx RCC_AHB1Periph_GPIOD

#define GPIO_USART5_Tx GPIOC

#define GPIO_USART5_Rx GPIOD

#define GPIO_Pin_USART5_Tx GPIO_Pin_12

#define GPIO_Pin_USART5_Rx GPIO_Pin_2

#define GPIO_PinSource_USART5_Tx GPIO_PinSource12

#define GPIO_PinSource_USART5_Rx GPIO_PinSource2

/****************************************************************/

#endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F469_479xx || STM32F446xx || STM32F413_423xx */

/********************* USART6 Configuration *********************/

#define RCC_AHB1Periph_USART6_Tx RCC_AHB1Periph_GPIOC

#define RCC_AHB1Periph_USART6_Rx RCC_AHB1Periph_GPIOC

#define GPIO_USART6_Tx GPIOC

#define GPIO_USART6_Rx GPIOC

#define GPIO_Pin_USART6_Tx GPIO_Pin_6

#define GPIO_Pin_USART6_Rx GPIO_Pin_7

#define GPIO_PinSource_USART6_Tx GPIO_PinSource6

#define GPIO_PinSource_USART6_Rx GPIO_PinSource7

/****************************************************************/

#if defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F469_479xx) || defined(STM32F413_423xx)

/********************* USART7 Configuration *********************/

#define RCC_AHB1Periph_USART7_Tx RCC_AHB1Periph_GPIOE

#define RCC_AHB1Periph_USART7_Rx RCC_AHB1Periph_GPIOE

#define GPIO_USART7_Tx GPIOE

#define GPIO_USART7_Rx GPIOE

#define GPIO_Pin_USART7_Tx GPIO_Pin_8

#define GPIO_Pin_USART7_Rx GPIO_Pin_7

#define GPIO_PinSource_USART7_Tx GPIO_PinSource8

#define GPIO_PinSource_USART7_Rx GPIO_PinSource7

/****************************************************************/

/********************* USART8 Configuration *********************/

#define RCC_AHB1Periph_USART8_Tx RCC_AHB1Periph_GPIOE

#define RCC_AHB1Periph_USART8_Rx RCC_AHB1Periph_GPIOE

#define GPIO_USART8_Tx GPIOE

#define GPIO_USART8_Rx GPIOE

#define GPIO_Pin_USART8_Tx GPIO_Pin_1

#define GPIO_Pin_USART8_Rx GPIO_Pin_0

#define GPIO_PinSource_USART8_Tx GPIO_PinSource1

#define GPIO_PinSource_USART8_Rx GPIO_PinSource0

/****************************************************************/

#endif /* STM32F427_437xx || STM32F429_439xx || STM32F469_479xx || STM32F413_423xx */

#if defined(STM32F413_423xx)

/********************* USART9 Configuration *********************/

#define RCC_AHB1Periph_USART9_Tx RCC_AHB1Periph_GPIOG

#define RCC_AHB1Periph_USART9_Rx RCC_AHB1Periph_GPIOG

#define GPIO_USART9_Tx GPIOG

#define GPIO_USART9_Rx GPIOG

#define GPIO_Pin_USART9_Tx GPIO_Pin_1

#define GPIO_Pin_USART9_Rx GPIO_Pin_0

#define GPIO_PinSource_USART9_Tx GPIO_PinSource1

#define GPIO_PinSource_USART9_Rx GPIO_PinSource0

/****************************************************************/

/******************** USART10 Configuration *********************/

#define RCC_AHB1Periph_USART10_Tx RCC_AHB1Periph_GPIOE

#define RCC_AHB1Periph_USART10_Rx RCC_AHB1Periph_GPIOE

#define GPIO_USART10_Tx GPIOE

#define GPIO_USART10_Rx GPIOE

#define GPIO_Pin_U

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

物联网设备普遍面临内存资源高度受限的困境。以STM32F103为例,其20KB RAM需同时承载任务栈、通信协议栈及业务逻辑。传统FreeRTOS默认的heap_3策略(封装标准库malloc/free)存在三大致命缺陷...

关键字: 物联网 内存

2026 年 3 月 5 日,爱达荷州博伊西市 — 美光科技股份有限公司(纳斯达克股票代码:MU)近日宣布开始向客户送样业界容量领先的 LPDRAM 模块 256GB SOCAMM2,进一步巩固其在低功耗服务器内存领域的...

关键字: 数据中心 服务器 内存

3月2日消息,三星电子的内存、闪存芯片业务靠着这一年的大涨价实现了巨额利润,现在三星还在亏损的主要业务就是芯片代工了。

关键字: 内存 闪存芯片

2月27日,魅族科技发布战略转型公告,正式宣布暂停国内手机新产品自研硬件项目,引发行业震动。

关键字: 魅族 手机 内存 AI软件

Linux内存管理是操作系统的核心机制之一,通过虚拟内存与物理内存的分离设计,实现了多进程内存隔离、高效资源利用和系统稳定性保障。

关键字: Linux 内存

在一个智能电表项目曾因结构体布局不当导致RAM使用量超出硬件限制23%,最终通过结构体重排算法将内存占用降低19%。这种优化技术基于一个简单却深刻的原理:通过调整结构体字段的排列顺序,可以显著减少内存对齐带来的填充空间浪...

关键字: 结构体重排 内存

2月23日消息,半导体是韩国的支柱产业,尤其是内存及闪存芯片领域是世界第一大,堪称韩国的国本,而日本现在要挖韩国墙角,拉拢三星、SK海力士去日本建厂生产。

关键字: 内存 DDR5

应用材料公司总裁兼首席执行官盖瑞·狄克森表示:“得益于行业加速在人工智能计算领域的投资,应用材料公司在本财年第一季度业绩表现强劲。市场对更高性能、更高能效芯片的需求正推动着前沿逻辑、高带宽内存和先进封装的高速增长。这些领...

关键字: 人工智能 计算 内存

芯片巨头高通的股价应声暴跌超 8%。这一跌幅的背后,表面看是公司发布的远低于市场预期的业绩指引,而核心诱因直指席卷行业的内存芯片短缺危机。

关键字: 内存 消费电子 高通

1月18日,美国商务部部长霍华德・卢特尼克(Howard Lutnick)在美光纽约工厂奠基仪式上的表态,为本已沸腾的全球内存市场投下又一颗 “炸弹”:存储芯片制造商若不选择在美国本土建厂,将面临高达 100% 的惩罚性...

关键字: 内存 存储 AI算力
关闭