#include "stm32f0xx.h"

#include "stm32_lib/inc/stm32f0xx_rcc.h"

#include "stm32_lib/inc/stm32f0xx_gpio.h"

#include "stm32_lib/inc/stm32f0xx_usart.h"

#include "stm32_lib/inc/stm32f0xx_misc.h"

 

#include "delay.h"

 

int main(void)

{

//1、使能时钟

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

 

//2、引脚选择

GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);

GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1);

 

//3、引脚设置

GPIO_InitTypeDef PORT_UART1_TX;//定义TX脚,PORT_UART1_TX是自定义名称,可以任意

PORT_UART1_TX.GPIO_Mode=GPIO_Mode_AF;

PORT_UART1_TX.GPIO_Pin=GPIO_Pin_9;//此参数根据上面选择的引脚来定

//PORT_UART1_TX.GPIO_Speed=GPIO_Speed_10MHz;

PORT_UART1_TX.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_Init(GPIOA,&PORT_UART1_TX);

 

GPIO_InitTypeDef PORT_UART1_RX;//定义RX脚

PORT_UART1_RX.GPIO_Mode=GPIO_Mode_AF;

PORT_UART1_RX.GPIO_Pin=GPIO_Pin_10;//此参数根据上面选择的引脚来定

//PORT_UART1_RX.GPIO_Speed=GPIO_Speed_10MHz;

PORT_UART1_RX.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_Init(GPIOA,&PORT_UART1_RX);

 

//4、串口参数配置

USART_InitTypeDef MyUsart1;//这个MyUsart1是我自定义的,可以任意定义如XYZ123

MyUsart1.USART_BaudRate=9600;//设置波特率

MyUsart1.USART_WordLength=USART_WordLength_8b;//设置数据长度

MyUsart1.USART_Parity=USART_Parity_No;//设置奇偶校验

MyUsart1.USART_StopBits=USART_StopBits_1;//设置停止位

MyUsart1.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//设置流控制

MyUsart1.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//设置模式

USART_Init(USART1,&MyUsart1);

//允许接收中断RXNE和发送完成中断TC

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

USART_ITConfig(USART1,USART_IT_TC,ENABLE);

 

//5、使能

USART_Cmd(USART1,ENABLE);

 

//6、中断向量设置

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;//设置中断

NVIC_InitStructure.NVIC_IRQChannelPriority=0;//设置优先级

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//使能

NVIC_Init(&NVIC_InitStructure);

 

while(1){

 

}

}

 

//中断函数

void USART1_IRQHandler(void){

unsigned char temp=0;

//如果是接收中断

if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET){

temp=USART_ReceiveData(USART1);//读完即自动清除RXNE

USART_SendData(USART1,temp);

//USART_ClearFlag(USART1,USART_FLAG_RXNE);

}

//如果是发送中断

else

{

USART_ClearFlag(USART1,USART_FLAG_TC);

//......

}

}


关键字:STM32  USART中断  CooCox  IDE 引用地址:STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)

上一篇:STM32入门学习之SysTick系统定时器(STM32F030F4P6基于CooCox IDE)
下一篇:STM32入门学习之USART(STM32F030F4P6基于CooCox IDE)

推荐阅读

      早在 IFA 2018 展会上,荣耀总裁赵明就曝光了不少关于荣耀Magic 2 的黑科技。在当时公布消息当中得悉,荣耀Magic 2除了采用Magic Slide魔法全面屏外,还将搭载麒麟980 芯片。近日,荣耀Magic2 也陆续曝光了不少产品信息,使其瞬间成为了人们热议的焦点,接下来笔者就为大家梳理一下关于荣耀Magic2 的各种“黑科技”传闻。“小技术”...
全球最大电子代工厂鸿海旗下的夏普正式将位于日本本土的最后一条白色家电产线关闭,转移到泰国工厂,这看起来似乎是合乎降低成本需求的做法,但是从另一个角度来看,代表在贸易战的冲击下,鸿海集团也不得不将东南亚形塑为另一个生产基地,以及日本已经不再适合制造业了。不可讳言,大陆的生产成本确实是持续拉高,对于人力需求大的组装产业来说,人工成本...
  1、机器人操作机构   通过有限元分析、模态分析及仿真设计等现代设计方法的运用,实现机器人操作机构的优化设计。探索新的高强度轻质材料,进一步提高负载/自重比。此外采用先进的及交流伺服,使机器人操作机几乎成为免维护系统。   机构向着、可重构方向发展。例如,关节模块中的伺服电机、、检测系统三位一体化;由关节模块、连杆模块用重组...
第98届中国电子展将于2021年11月2-4日在上海新国际博览中心开展,这是一场华东地区电子行业的嘉年华,也是企业掌握先机的高端盛会!届时,上海复旦微电子集团股份有限公司(简称:复旦微电子)将以参展商身份为我们带来六大成熟的产品线和系统解决方案的精彩展示。上海复旦微电子集团股份有限公司(“复旦微电”,)是国内从事超大规模集成电路的设计、开...

史海拾趣

问答坊 | AI 解惑

电热水器控制板

 本电热水器,由微控制器对水温实行智能控制,并实现温度数字化显示。性能可靠、使用方便、直观。    ■ 测温范围在0-99°C温度设定范围在10-85°C,测温设定温度范围都较宽,能根据您的要求任意调节使用。  ■ 一旦进入 ...…

查看全部问答∨

常见的电脑方面的专业名词解释

本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 这些名词在硬件测评中很常见~~~~~ ★ 前端总线频率 总线是将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线。通俗的说,就是多个部件间的公共连线,用于在各个部件之间传 ...…

查看全部问答∨

如何编程实现wince桌面背景更换

高手们,问下一个问题 如何用编程实现wince桌面背景的更换 比如,更换为我指定位置上的那张图片。 以下是我在evc跑的代码 BOOL T=FALSE;         TCHAR bmpfile[]=L"sdmmc\\\\wince.bmp";       &nbs ...…

查看全部问答∨

ffmpeg arm

如果把ffmpeg 中有关armv6部分加入的话,mpeg2 decode 部分速度会提升百分之多少,请高人指点。…

查看全部问答∨

PIC单片机通讯

这是我的PIC16F877A单片机的485通讯程序,目前只能接受串口调试助手的数据,但是返回的数据不合适,RB1是接发控制口。请大家看看那不合适。指点一下,谢谢! #include <pic.h>__CONFIG(0x3531);#define _asm{\"nop\"} NOP()#define uchar  ...…

查看全部问答∨

JTAG客栈--做中国人自己的JTAG adapter,JTAG不再是神话!

JTAG客栈--做中国人自己的JTAG adapter,JTAG不再是神话!     JTAG 是 JOINT TEST ACTION GROUP的简称。IEEE 1149.1 标准就是由 JTAG这个组织最初提出的,最终由IEEE 批准并且标准化的。所以,这个 IEEE 1149.1 这个标准一般也俗称 JTA ...…

查看全部问答∨

嵌入式开发课件(PDF)[上海交大]

嵌入式开发课件(PDF)[上海交大]…

查看全部问答∨

ucgui 嵌入式 输入法 包含拼音、笔画、英文、数字与符号的完整输入法软件

打开自己编写的UCGUI的串口调试助手应用软件,任意点击下面的一个编辑框控件,就会弹出输入法界面: 一、拼音输入演示: 二、笔画输入法演示: 三、汉字符号输入演示: 四、英文输入演示: 五、英文符 ...…

查看全部问答∨

MSP430的灌电流最小是多大?

比如电源3.3V,外部输入电流多大430就可以识别出输入是高电平。也就是问限流电阻最大能接多大?100K还是1000K。还有请问在哪个部分里看这个值,我找了一下datasheets,不知道在哪里找! 谢谢了! …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved