初识stm32-----串口1的中断收发

发布者:ularof不加糖最新更新时间:2018-12-20 来源: eefocus关键字:stm32  串口1  中断收发 手机看文章 扫描二维码
随时随地手机看文章

stm32-----中断收发

#include "stm32f10x.h"

#include "usart.h"

 

void My_USART1_Init(void)

{

GPIO_InitTypeDef GPIO_InitStrue;

USART_InitTypeDef USART_InitStrue;

NVIC_InitTypeDef NVIC_InitStrue;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//①

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_InitStrue.GPIO_Pin=GPIO_Pin_9;

GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;

  GPIO_Init(GPIOA,&GPIO_InitStrue);//②

GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_InitStrue.GPIO_Pin=GPIO_Pin_10;

GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;

  GPIO_Init(GPIOA,&GPIO_InitStrue);//②

USART_InitStrue.USART_BaudRate=115200;

USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;

USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;

USART_InitStrue.USART_Parity=USART_Parity_No;

USART_InitStrue.USART_StopBits=USART_StopBits_1;

USART_InitStrue.USART_WordLength=USART_WordLength_8b;

USART_Init(USART1,&USART_InitStrue);//③

USART_Cmd(USART1,ENABLE);//使能串口1

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启接收中断

NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn;

NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;

NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;

NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;

NVIC_Init(&NVIC_InitStrue);

}

 

void USART1_IRQHandler(void)

{

u8 res;

//uint8_t data;

if(USART_GetITStatus(USART1,USART_IT_RXNE))

 {

     res= USART_ReceiveData(USART1); 

   

     USART_SendData(USART1,res);

     UART_PutStr(USART1, "hello world!");             //  字符串  

  }

}

 

 int main(void)

 {

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

My_USART1_Init();

while(1);

 

 }

关键字:stm32  串口1  中断收发 引用地址:初识stm32-----串口1的中断收发

上一篇:ARM 中断函数定义
下一篇:STM32之 UART4 和UART5所遇到的问题

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

STM32的四种输入方式
STM32的四种输入方式 1、上拉输入(GPIO_Mode_IPU) 上拉输入就是信号进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平为高电平; 2、下拉输入(GPIO_Mode_IPD) 下拉输入就是信号进入 芯片后加了一个下拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平为低电平; 3、模拟输入(GPIO_Mode_AIN) 信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。比如传送给ADC模块,由ADC采集电压信号。所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。虽然我也知道这样表达不准确。 4、浮空输入(GPIO
[单片机]
Cortex-M3内核的异常中断
有许多朋友在学习,或者开发 STM32 时都遇到过HardFault_Handler的情况。 那么,又有多少人认真去分析过Fault这类异常中断呢? 下面结合STM32F1(Cortex‐M3内核)来给大家讲述一下这些异常中断的内容。 1Cortex‐M3异常 说起Fault,我们就要说一下Cortex‐M3的异常。 Cortex‐M3 在内核上搭载了一个异常响应系统, 支持为数众多的系统异常和外部中断。 CM3部分异常列表: 这些异常中断的优先级,有些却是固定的,有些是可以通过软件来配置,如UART发送中断、DMA中断等。 相信大家看到这个列表不会陌生,因为在STM32的启动代码,中断代码中都会看到这些异常。 比如在st
[单片机]
Cortex-M3内核的异常<font color='red'>中断</font>
【菜鸟入门】stm32 之 eeprom
/* at24c02.c */ #include stm32f10x.h #include init.h #include iic.h #define send_slave_addr(a) iic_send_byte(a) #define send_rom_addr(a) iic_send_byte(a) #define ROM_SIZE (2*1024) //2K #define ADDR_SIZE 256 #define PAGE_SIZE 8 #define PAGE 32 int at24c02_init(unsigned char slave_addr) { iic_init(); iic_start(
[单片机]
基于STM32设计的掌上游戏机详细开发过程
一、环境与硬件介绍 开发环境:keil5 代码风格: 寄存器风格,没有采用库函数,底层代码全部寄存器方式编写,运行效率高,注释清楚。 MCU型号: STM32F103ZET6 开发板: 正常的一块STM32开发板,带LCD插槽,带4颗独立按键。 游戏模拟器: NES游戏模拟器 LCD : ALIENTEK的3.5寸屏幕。(屏幕型号不重要,随便一款都可以的,把屏幕底层驱动代码写好,适配即可) 声音输出设备 : 采用VS1053 (SPI接口,操作方便) 游戏手柄: 支持FC游戏手柄 完成这个掌上游戏机需要使用的硬件设备不复杂,如果想要体验游戏,需要的必备硬件: 1. (必要)STM32F103系列最小系统版一个 2. (必要)L
[单片机]
基于<font color='red'>STM32</font>设计的掌上游戏机详细开发过程
STM32 SPI通信时钟极性和相位设置
通过 SPI_CR1 寄存器中的 CPOL 和 CPHA 位,可以用软件选择四种可能的时序关系。 CPOL(时钟极性)位控制不传任何数据时的时钟电平状态。此位对主器件和从 器件都有作 用。如果复位 CPOL,SCK 引脚在空闲状态处于低电平。如果将 CPOL 置 1,SCK 引脚在 空闲状态处于高电平。 如果将 CPHA(时钟相位)位置 1,则 SCK 引脚上的第二个边沿(如果复位 CPOL 位,则 为下降沿;如果将 CPOL 位置 1,则为上升沿)对 MSBit 采样。即,在第二个时钟边沿锁存 数据。如果复位 CPHA 位,则 SCK 引脚上的第一个边沿(如果将 CPOL 位置 1,则为下降 沿;如果复位 CPOL 位,则为
[单片机]
基于W5500的NetBIOS应用实例
一 实例背景 最近一个做智能家居的朋友面临这样的一个烦恼,他想让用户通过智能手机在家里方便地控制家居设备,又想让用户免除下载安装App的麻烦,通过浏览器直接打开设备内嵌的网页便可实现控制。但是设备的IP地址都是通过家里的路由器自动获得的,设备上又没有屏幕来显示其IP地址。问我有没有办法不输入IP地址来实现浏览器访问该设备网页的办法,就是类似DNS之类,但是无需连外网,只在家庭网络内能访问即可。 这使我想起一个古老的协议,NetBIOS(Network Basic Input/Output System)。这个在上世纪80年代由IBM开发的协议,主要用于数十台左右计算机组成的小型局域网,该协议的主要用途之一就是把计算机名称解
[单片机]
基于W5500的NetBIOS应用实例
STM32使用fsmc控制NOR flash 例程
一、基本概念(详细内容见st网站stm32应用笔记AN2784) 1. FSMC配置 控制一个NOR闪存存储器,需要FSMC提供下述功能: ●选择合适的存储块映射NOR闪存存储器:共有4个独立的存储块可以用于与NOR闪存、SRAM和PSRAM存储器接口,每个存储块都有一个专用的片选管脚。 ●使用或禁止地址/数据总线的复用功能。 ●选择所用的存储器类型:NOR闪存、SRAM或PSRAM。 ●定义外部存储器的数据总线宽度:8或16位。 ●使用或关闭同步NOR闪存存储器的突发访问模式。 ●配置等待信号的使用:开启或关闭,极性设置,时序配置。 ●使用或关闭扩展模式:扩展模式用于访问那些具有不同读写操作时序的存储器。 因为NOR闪存/SRA
[单片机]
开漏输出和推挽输出
概述 在STM32或者GD32中,普通的输出GPIO输出方式主要是开漏输出和推挽输出,下面我们开始讲解这2种模式的区别。 下图是GPIO内部的结构示意图。 在上图中,P-MOS带了一个⚪,说明是低电平导通。 上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。 模拟文件下载 https://download.csdn.net/download/qq_24312945/85250172 推挽输出 推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。 当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。 当输出低电平时
[单片机]
开漏输出和推挽输出
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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