STM32串口1发送,串口2接收

发布者:AngelicJourney最新更新时间:2019-03-14 来源: eefocus关键字:STM32  串口1发送  串口2接收 手机看文章 扫描二维码
随时随地手机看文章

/**

  ******************************************************************************

  * @file    Project/STM32F10x_StdPeriph_Template/stm32f10x_it.c 

  * @author  MCD Application Team

  * @version V3.5.0

  * @date    08-April-2011

  * @brief   Main Interrupt Service Routines.

  *          This file provides template for all exceptions handler and 

  *          peripherals interrupt service routine.

  ******************************************************************************

  * @attention

  *

  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS

  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE

  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY

  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING

  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE

  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.

  *

  *

© COPYRIGHT 2011 STMicroelectronics


  ******************************************************************************

  */


/* Includes ------------------------------------------------------------------*/

#include "stm32f10x_it.h"


/** @addtogroup STM32F10x_StdPeriph_Template

  * @{

  */


/* Private typedef -----------------------------------------------------------*/

/* Private define ------------------------------------------------------------*/

/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/

/* Private function prototypes -----------------------------------------------*/

/* Private functions ---------------------------------------------------------*/


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

/*            Cortex-M3 Processor Exceptions Handlers                         */

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


/**

  * @brief  This function handles NMI exception.

  * @param  None

  * @retval None

  */

void NMI_Handler(void)

{

}


/**

  * @brief  This function handles Hard Fault exception.

  * @param  None

  * @retval None

  */

void HardFault_Handler(void)

{

  /* Go to infinite loop when Hard Fault exception occurs */

  while (1)

  {

  }

}


/**

  * @brief  This function handles Memory Manage exception.

  * @param  None

  * @retval None

  */

void MemManage_Handler(void)

{

  /* Go to infinite loop when Memory Manage exception occurs */

  while (1)

  {

  }

}


/**

  * @brief  This function handles Bus Fault exception.

  * @param  None

  * @retval None

  */

void BusFault_Handler(void)

{

  /* Go to infinite loop when Bus Fault exception occurs */

  while (1)

  {

  }

}


/**

  * @brief  This function handles Usage Fault exception.

  * @param  None

  * @retval None

  */

void UsageFault_Handler(void)

{

  /* Go to infinite loop when Usage Fault exception occurs */

  while (1)

  {

  }

}


/**

  * @brief  This function handles SVCall exception.

  * @param  None

  * @retval None

  */

void SVC_Handler(void)

{

}

/********************me**************/

void USART1_IRQHandler(void)

{

 //static u8 k;

 USART_ClearFlag(USART1,USART_FLAG_TC);//清除USARTx的待处理标志位

  if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET)

 {

  USART_ReceiveData(USART1);

  USART_SendData(USART2,USART_ReceiveData(USART1));

  while(USART_GetFlagStatus(USART1,USART_IT_RXNE)!=RESET);

 }

}

void USART2_IRQHandler(void)

{

 //static u8 j;

 USART_ClearFlag(USART2,USART_FLAG_TC);//清除USARTx的待处理标志位

  if(USART_GetITStatus(USART2,USART_IT_RXNE)!=Bit_RESET)

 {

  USART_ReceiveData(USART2);

  USART_SendData(USART2, USART_ReceiveData(USART2));

  //led_display();                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  while(USART_GetFlagStatus(USART2,USART_IT_RXNE)!=RESET);

  }

}


/**

  * @brief  This function handles Debug Monitor exception.

  * @param  None

  * @retval None

  */

void DebugMon_Handler(void)

{

}


/**

  * @brief  This function handles PendSVC exception.

  * @param  None

  * @retval None

  */

void PendSV_Handler(void)

{

}


/**

  * @brief  This function handles SysTick Handler.

  * @param  None

  * @retval None

  */

void SysTick_Handler(void)

{

}


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

/*                 STM32F10x Peripherals Interrupt Handlers                   */

/*  Add here the Interrupt Handler for the used peripheral(s) (PPP), for the  */

/*  available peripheral interrupt handler's name please refer to the startup */

/*  file (startup_stm32f10x_xx.s).                                            */

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


/**

  * @brief  This function handles PPP interrupt request.

  * @param  None

  * @retval None

  */

/*void PPP_IRQHandler(void)

{

}*/


/**

  * @}

  */

关键字:STM32  串口1发送  串口2接收 引用地址:STM32串口1发送,串口2接收

上一篇:STM32输入,输出详细介绍
下一篇:STM32-----LED

推荐阅读最新更新时间:2024-03-16 16:25

STM32和STM8认证软件包,助力设备达到功能安全标准
意法半导体发布了三款功能安全软件包,简化基于STM32和STM8微控制器和微处理器的安全至关重要的工业、医疗、消费和汽车产品的开发。 这些软件包可免费下载使用,其中包含满足适用的IEC和ISO规范所需的资源。意法半导体拥有1000多款STM32微控制器,以及包括STM8AF汽车级认证产品在内的STM8系列微控制器,为开发者提供广泛的产品选型和亲民的价格,而价格昂贵的专用安全MCU通常是无法做到这两点的。 工业用功能安全软件包X-CUBE-STL通过了TÜV Rheinland认证测试机构的IEC 61508 SC3认证,与安全手册的使用条件配合使用,可以在STM32上实现安全完整性等级SIL-2或SIL-3的安全功能
[单片机]
<font color='red'>STM32</font>和STM8认证软件包,助力设备达到功能安全标准
STM32 printf函数的调用
stm32中调用 printf()函数,实质上添加对应的 int fputc(int ch, FILE *f) 函数 (如 fputc对应目标是串口则printf输在串口上,如 fputc对应目标是LCD则是输在LCD) 具体步骤如下: 1、 首先要在main文件中包含 stdio.h (标准输入输出头文件) 2、在main文件中重定义函数 //加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdou
[单片机]
STM32——通用设备单元
不说废话,直接来说: 首先,STM32的通用设备单元包括了以下个部分,分别是通用输入/输出口(GPIO或者I/O)、外部中断单元、ADC转换模块、通用/高级定时器、实时时钟RTC、备份寄存器、入侵检测引脚。 通用输入/输出口 GPIO(总共有80个),分布在5个端口中,其中每个端口有16个GPIO,分别以A~E来命名这16个GPIO口。最大耐压值为5V。大部分的外部引脚都可以从通用的GPIO切换为用户设备的专用I/O口。STM32还有一个外部中断控制单元,允许将每个端口上的16个GPIO通过映射成为外部中断输入口。 外部中断单元 外部中断单元(共19个外部中断(EXTI)通道),通过内嵌向量中断控制器(NVIC)与中断
[单片机]
Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址
一、内存分配 栈区(stack):指那些由编译器在需要的时候分配,不需要时自动清除的变量所在的储存区,如函数执行时,函数的形参以及函数内的局部变量分配在栈区,函数运行结束后,形参和局部变量去栈(自动释放)。栈内存分配运算内置与处理器的指令集中,效率高但是分配的内存空间有限。 堆区(heap):指哪些由程序员手动分配释放的储存区,如果程序员不释放这块内存,内存将一直被占用,直到程序运行结束由系统自动收回,c语言中使用malloc,free申请和释放空间。 静态储存区(static):全局变量和静态变量的储存是放在一块的,其中初始化的全局变量和静态变量在一个区域,这块空间当程序运行结束后由系统释放。 常量储存区(const
[单片机]
Ubuntu、<font color='red'>stm32</font>下的C程序中堆、栈、全局、局部等变量的分配地址
STM32 PWM学习
首先,确定可以使用PWM输出的定时器,在STM32中,定时器共有8个,分别为TIM1~TIM8。 定时器 属性 是否可用PWM 输出路数 TM1,TIM8 高级定时器 可用 7路 TIM2~TIM6 通用定时器 可用 4路 TIM6,TIM7 基本时器 不可用 无 开发步骤1: 使能定时器3和相关IO口时钟。 使能定时器3时钟:RCC_APB1PeriphClockCmd(); 使能GPIOB时钟:RCC_APB2PeriphClockCmd(); 初始化IO口为复用功能输出。函数: GPIO_Init(); PIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 这里我
[单片机]
<font color='red'>STM32</font> PWM学习
STM32-串口通信printf重定向
前言:平时我们进行c语言编程的时候会经常用到printf函数进行打印输出,来调试代码。可是这个printf函数C库已经帮我们实现好了,通常只需要直接调用即可,但是如果在一个新的开发平台,如果库没有帮我们实现好,比如STM32开发板,那么我们怎么实现printf打印输出呢? 首先我们来了解一下串口通信! 1、什么是串口通信? 串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。 串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。 2、串口通信协议 在串口通信中,常用的协议包括RS-232、RS-422和RS-485
[单片机]
关于STM32网络电路设计方案
如果有同学对SMI,MII和RMII接口不熟悉,建议看一下上面提到的两篇文章,不然可能看不太懂下文。 区域1:我们称为SMI接口,用于配置外部PHY芯片。 区域2:是数据交换接口,也就是上面我们说的MII接口和RMII接口。 利用这些接口可以有多种不同的网络电路设计方案,这里我来总结下。 01MII接口方案 MII接口在文章《STM32网络之MII和RMII》已经详细介绍过了,从中得知,需要一个25MHz的时钟。 对于MII接口,最常用的方案是,STM32外接25MHz的晶振。 内部的PLL配置HCLK,提供给内核和外设等。 外部PHY连接提供了25MHz的MCO脚。 此方案适合STM32F107/2x7/4x7。 02R
[单片机]
关于<font color='red'>STM32</font>网络电路设计方案
stm32学习笔记---ADC电压采集
1. ①电压输入范围 ADC 输入范围为:VREF- ≤ VIN ≤ VREF+。由 VREF-、VREF+ 、VDDA 、VSSA、这四个外部引脚决定。 我们在设计原理图的时候一般把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得到 ADC 的输入电压范围为:0~3.3V。 如果我们想让输入的电压范围变宽,去到可以测试负电压或者更高的正电压,我们可 以在外部加一个电压调理电路,把需要转换的电压抬升或者降压到 0~3.3V,这样 ADC 就 可以测量了。 2. ②输入通道 我们确定好 ADC 输入电压之后,那么电压怎么输入到 ADC?这里我们引入通道的概念, STM32 的 ADC
[单片机]
<font color='red'>stm32</font>学习笔记---ADC电压采集
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved