#include "stm32f4xx.h"
#include "usart.h"

void My_USART1_Init(void)
{

//GPIO结构体定义
    GPIO_InitTypeDef  GPIO_InitStructure;

//串口结构体定义
    USART_InitTypeDef USART_InitStructure;

//中断结构体定义
    NVIC_InitTypeDef NVIC_InitStructure;
    //使能时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能USART1时钟
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//使能GPIOA时钟

//引脚映射

GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);

//端口初始化

//GPIOA9端口初始化结构体参数设置

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

//GPIOA9端口初始化
    GPIO_Init(GPIOA, &GPIO_InitStructure);

//GPIOA10端口初始化结构体参数设置

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

//GPIOA10端口初始化
    GPIO_Init(GPIOA, &GPIO_InitStructure);

//串口初始化结构体参数设置

USART_InitStructure.USART_BaudRate=115200;
    USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
    USART_InitStructure.USART_Parity=USART_Parity_No;
    USART_InitStructure.USART_StopBits=USART_StopBits_1;
    USART_InitStructure.USART_WordLength=USART_WordLength_8b;

//串口初始化
    USART_Init(USART1,&USART_InitStructure);

//串口使能
    USART_Cmd(USART1 ,ENABLE);
    //中断使能
    USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//接收非空使能

//中断初始化结构体参数设置
    NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;

//中断初始化
    NVIC_Init(&NVIC_InitStructure);
}

void USART1_IRQHandler(void)
{
    u8 res;

//判断串口1
    if(USART_GetITStatus(USART1,USART_IT_RXNE)){

//从串口1是否发生接收中断
        res=USART_ReceiveData(USART1);

//通过串口1发送数据
        USART_SendData(USART1,res);
    }

}
int main(void)
{

//中断分组使能
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

//串口初始化
    My_USART1_Init();
    while(1);
}

STM32F407串口相关推荐

  1. STM32F407的USART

    文章目录 波特率 概念 波特率相对误差 UART误差保证 协议 常见的串行接口 协议之间的比较 USB 转串口PL2303 USB 转串口CP2102 USB转232 串口电平 TTL电平 485电平 ...

  2. 嵌入式课程设计 —— STM32串口编程

    STM32F407 串口个数:6个串口 串口1:用来输出调试信息 STM32串口2的使用: 1)STM32F407开发板 ----------------- tiny4412开发板 通信 网络串口 2 ...

  3. stm32f407 6路串口dma如何配置_stm32cubeMX学习十、扫码模块程序开发(基于正点原子STM32F407开发板)...

    本程序编写基于正点原子STM32F407开发板. 本文使用的扫码模块是下面这个品牌. 扫码模块的应用场景非常广泛,我们可以上百度搜索一下: 等等. 今天就来说说如何在开发板上实现控制它吧,打开数据手册 ...

  4. 基于STM32F407标准库串口DMA+空闲中断

    核心板:STM32F407 实验目的:通过DMA接收串口发来的数据,并且利用串口空闲中断在将这些数据发送至串口助手. 在通常我们使用串口接收数据时,会使能串口接收中断,并在每次接收到数据后会进入中断将 ...

  5. STM32F407使用串口3获取攀腾G7的PM2.5数据

    STM32F407使用该程序主要是复用串口3用来接收PM2.5所发出的数据,然后获取所需要的pm2.5的值,引脚接口为pb11和pb10,5v电压. u8 USART3_RX_BUF[USART3_R ...

  6. STM32F407使用USB作虚拟串口出现黄感叹号

    最近因为工作需要使用到了STM32F407VET6的USB_OTG_FS作为虚拟串口. 之前用STM32 CubeMX生成过STM32F103C8T6的虚拟串口代码,感觉用起来很方便,于是这次的F40 ...

  7. STM32F407 USB虚拟双串口

    STM32F407 USB 虚拟双串口 文章目录 STM32F407 USB 虚拟双串口 准备工作 代码修改 端点配置修改 描述符修改 数据处理 准备工作 通过STM32CubeMX生成一份标准的US ...

  8. STM32F407霸天虎HAL库学习笔记——串口发送

    STM32F407霸天虎HAL库学习笔记--串口收发 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil printf重写 main函数 五.实验效果 一.软件准备 软件准备 二.硬件准备 ...

  9. STM32学习笔记-USART串口通信+与野火STM32F407板载ESP8266进行通信

    文章目录 STM32USART介绍 STM32USART框图 第一部分 第二部分 第三部分 发送器 时序图 接收器 第四部分 软件部分: STM32通过USART与板载ESP8266通讯实验 板载WI ...

最新文章

  1. P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希)
  2. 【C 语言】数组 ( 一维数组形参退化 | 二维数组形参退化 | 函数形参等价关系 )
  3. 全志 增加启动默launcher函数 Patch
  4. 开关电源环路的零极点可以在反馈端补偿吗_【干货分享】开关电源环路补偿设计步骤讲解...
  5. Linux下部署Kubernetes+Kubesphere(一)Kubernetes基础
  6. 机器阅读理解首次超越人类!云从刷新自然语言处理新纪录
  7. 流式计算storm核心组件介绍以及入门案例---跟着就能在本地跑起来的storm项目
  8. 长庆企业信息化管理课件_会博通浅谈企业档案管理信息化的必要性和优势
  9. 判断页面打开的浏览器信息
  10. python 轻量级邮件发送库
  11. 新浪微博自动发送微博 功能已实现(net)
  12. 安徽省级办公室高级应用计算机二级,2019年9月安徽省计算机等级二级考试教程:二级MSOffice高级应用上机指导...
  13. 水系图一般在哪里找得到_Nano Energy:铝离子扩层V2O5nH2O用于高性能水系锌离子电池...
  14. CSP-X模拟题第三套-信心赛题解
  15. 三个团队的站立会议旁观笔记
  16. 字节辟谣被裁员工与 HR 互殴;苹果头显多个新功能曝光;谷歌希望 RISC-V 成为 T1 级 Android 架构|极客头条...
  17. python调用系统本地程序
  18. [线段树]小喵喵的新家
  19. 记录自己折腾不止的人生,留住时光的一抹轨迹
  20. PostgreSQL 社交类好友关系系统实践 - 正反向关系查询加速

热门文章

  1. 魔方网表CEO邵苏毅:无代码带来的一系列质变才是真正的革命
  2. Cadence (Allegro) 转 Altium Designer
  3. Unity快速获取图片宽高
  4. 推荐4款超简单的画平面图的软件
  5. Unity 武器的刀光剑影效果
  6. 基础计算机指令,计算机科学基础_2 - CPU,指令
  7. android 加载ttf流程分析,Android自定义字体 TextView 从SD卡加载TTF字体
  8. STC,PCR,DTS,PTS
  9. 海外休闲游戏的网络连接方案
  10. 一个聪明男人的娶人经验,很实在很有道理