历史上的今天

今天是:2024年09月29日(星期日)

正在发生

2021年09月29日 | STM32入门学习之USART(STM32F030F4P6基于CooCox IDE)

发布者:xxoke624 来源: eefocus关键字:STM32  USART  CooCox  IDE 手机看文章 扫描二维码
随时随地手机看文章

#include "stm32f0xx.h"

#include "stm32_lib/inc/stm32f0xx_rcc.h"

#include "stm32_lib/inc/stm32f0xx_gpio.h"

#include "stm32_lib/inc/stm32f0xx_usart.h"

 

int main(void)

{

//1、使能时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

//特别注意:因为串口有使用GPIO,所以对应GPIO的时钟也要使能

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

//2、选择引脚

//TX有PA2和PA9可选,RX有PA3和PA10可选

//GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1);

//GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1);

GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);//为什么是AF1,而不是AF0呢?见下图,数据手册才是准确的

GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1);

 

//3、引脚设置

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

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

PORT_UART1_TX.GPIO_Speed=GPIO_Speed_10MHz;

PORT_UART1_TX.GPIO_Mode=GPIO_Mode_AF;

PORT_UART1_TX.GPIO_PuPd=GPIO_PuPd_NOPULL;

//IO初始化

//第一个参数是系统的GPIOA、GPIOB、GPIOC等

//第二个参数是&+上面自定义的名称PORT_UART1_TX

GPIO_Init(GPIOA,&PORT_UART1_TX);

 

GPIO_InitTypeDef PORT_UART1_RX;//定义RX脚

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

PORT_UART1_RX.GPIO_Speed=GPIO_Speed_10MHz;

PORT_UART1_RX.GPIO_Mode=GPIO_Mode_AF;

PORT_UART1_RX.GPIO_PuPd=GPIO_PuPd_NOPULL;

GPIO_Init(GPIOA,&PORT_UART1_RX);

 

//4、串口参数配置

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

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

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;//设置模式

//初始化

//第一个参数是系统的USART1、USART2、USART3等

//第二个参数就是&+上面自定义的量MyUsart1

USART_Init(USART1,&MyUsart1);

 

//5、使能

USART_Cmd(USART1,ENABLE);

//6、接收和发送,通过查询标志位

while(1){

while(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)!=1);//等待接收

USART_ClearFlag(USART1,USART_FLAG_RXNE);//清楚接收完成标志位

USART_SendData(USART1,USART_ReceiveData(USART1));//接收什么,发送什么

while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=1);//等待发送完成

USART_ClearFlag(USART1,USART_FLAG_TXE);//清楚发送完成标志位

}

}



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

上一篇:STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)
下一篇:STM32的位带操作分析

推荐阅读

  西班牙的Acciona Energia公司是第一家应用区块链技术的公司,该公司在西班牙纳瓦雷的两个储能设施中,将100%的可再生能源输入电网。在Acciona区块链技术的帮助下,该公司成功地将Tudela的太阳能发电厂和Barasoain的风力发电厂结合在了一起。   由于这项技术,该公司的客户和其他利益相关者可以保证,电池储存设施提供的能源完全来自不排放温...
要求:(1) 乒乓游戏机甲、乙双方各有两只开关,分别为发球开关和击球开关。(2) 乒乓球的移动用16或12只LED发光二极管模拟运行,移动的速度可以调节。(3) 球过网到一定的位置方可,接提球前击球或出界击球均判为失分。(4) 比赛用21分为一局,任何一方先记满21分就获胜,比赛一局就结束。当记分牌清零后,又可开始新的一局比赛。一、Protues仿真图:...
  机械臂是制造业中最常见的机器人之一。在大多数情况下,机械臂都是可编程的,可用于执行特定任务,通常用于制造、制造和工业应用。   工业机械臂是一种以类似于人的手臂的方式操作的设备,其许多关节沿轴运动或可以沿某些方向旋转。实际上,一些机械臂模仿了人类手臂的精确运动。它们也类似于我们的手臂,具有手腕、前臂、肘部和肩膀。六轴机器人...
一、CPSR概述ARM处理器共有37个寄存器。这37个寄存器按其在用户编程中的功能划分,可分为2类寄存器,即31个通用寄存器和6个状态寄存器。这6个状态寄存器在ARM公司文件中其名称分别为:CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fig。这12的作用分别如图1所示:所有处理器模式下都可访问当前程序状态寄存器CPSR。CPSR中包含条件码标志、中断禁止...

史海拾趣

问答坊 | AI 解惑

越野车的改装2

用滑板保护差速器时,要将滑板固定在桥骨架上,桥骨架是直接用螺栓拧在桥壳上的一组细钢管,它可以保护桥壳不被撞弯,固定于其上的滑板则可保护差速器。 前绞盘——没有任何装备可以像绞盘那样能将你从陷车的困境中拽出来,所以绞盘应该是你应该购 ...…

查看全部问答∨

关于智能车赛道记忆资料

有关于这方面的资料的共享哦!!!…

查看全部问答∨

无线模块CC1100收发细节请教

请教大家: 我最近在调试cc1100,通了,但是必须在发送端延时30ms左右才能无误的接受(通过串口显示在PC上)。如果小于30ms的延时或则不延时就不能完整的接收数据。我测了一下,一次发送4字节需要40ms的时间。问题是收发之间的准备过程是怎样的啊, ...…

查看全部问答∨

关于24CXXX系列EEPROM的读写操作问题?

这个东西连续读写的话一定要按页读写? 例如有一个uchar[8] 我从地址0x0d出开始写,那么uchar[3-7]会写到哪去? A:0x10-0x14 B:0x00-0x04 C:0x08-0x0b? 有精通这个的告诉我下啊,我这两天得到的惨痛教训是不一定选A…

查看全部问答∨

CE6.0 如何让IE支持swf格式文件?

请教:CE6.0 如何让IE支持swf格式文件?…

查看全部问答∨

【求助】I2S中 _WrL3Data(0xf2,0);是什么意思?

本人比较小白 实在看不懂下面这段代码 希望大侠 能帮分析下~~~谢谢了~ 代码如下:         _WrL3Addr(0x14 + 0);         //DATA0 (000101xx+00)         _WrL3Data(0xc2,0);  ...…

查看全部问答∨

酒店里面是否装电脑

一.我们的项目是什么         通俗地讲:此项目,就是给酒店装一间网吧,而电脑不是集中放到一个大厅里,而是分散地放到酒店客房里面,为客人提供上网服务,并且收取相应的上网费用。 二.市场分析      &n ...…

查看全部问答∨

请问大家有没有DM642的SPRU610、629等的中文手册下载得到啊?

呵呵,看到很多人把TMS320DM642的芯片手册翻译了,恩,呵呵。我还是觉得看SPRU的这堆手册更细致点,因为现在时间比较紧,就想问问大家有没有他们的中文手册,这样子用起来会比较快。如果以后有时间我愿意跟大家一起翻译这些手册。 …

查看全部问答∨

ZwOpenFile与ZwCreateFile有什么关系?

ZwOpenFile与ZwCreateFile有什么关系? 我写一个驱动监控了所有的ZwCreateFile,一般的文件建立都可以拦截到,但一个应用的安装程序在安装文件时,却监控不到?不知道是何道理?难道它没有用zwcreatefile而用了zwopenfile?那么两个函数之间有何关 ...…

查看全部问答∨

HISTM2F103ZE带I2S的开发板

hi,香版主,这个新品的开发板现在有了吗?或者是相关外围硬件原理图,比较关心的有I2S 和FSMC 香版主,快点回答吧…

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

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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