STM32 103 USART

发布者:幸福家庭最新更新时间:2015-05-04 来源: 51hei关键字:STM32  USART 手机看文章 扫描二维码
随时随地手机看文章
打开对应GPIO时钟 复用时钟 USART时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1,  ENABLE );

USART2
   
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,  ENABLE );

USART3
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,  ENABLE );
 
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,  ENABLE );

GPIO设置  TX配置为 复用推挽  RX配置为 开漏输入


 

void GPIO_Configuration(void)
{
GPIO_InitTypeDefGPIO;
GPIO.GPIO_Pin =GPIO_Pin_9;
GPIO.GPIO_Speed =GPIO_Speed_50MHz;
GPIO.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO);//端口初始化

 
GPIO.GPIO_Pin =GPIO_Pin_10;
GPIO.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO);//端口初始化
}

USART配置

 

void USART_Configuration(void)//初始化USART
{USART_InitTypeDef USART_InitStructure;//声明参数结构
USART_InitStructure.USART_BaudRate =  9600;//速率9600
USART_InitStructure.USART_WordLength =  USART_WordLength_8b;//数据长度
USART_InitStructure.USART_StopBits =   USART_StopBits_1;//停止位
USART_InitStructure.USART_Parity =  USART_Parity_No;//奇偶校验
USART_InitStructure.USART_HardwareFlowControl =  USART_HardwareFlowControl_None;//硬件流
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//发送接收使能
USART_Init(USART1, &USART_InitStructure);//根据USART_InitStruct中指定的参数初始化外设USART1寄存器

 
USART_Cmd(USART1,ENABLE);//开启USART外设

 

 
}

发送数据
USART_SendData(USART1, ch);
 
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET) {}

引脚定义
 

IO

USART

重定义

重定义

 

 

 

PA8

USART1_CK

 

 

 

 

 

PA9

USART1_TX

 

PB6

 

 

 

PA10

USART1_RX

 

PB7

 

 

 

PA11

USART1_CTS

 

 

 

 

 

PA12

USART1_RTS

 

 

 

 

 

 

 

 

 

 

 

 

PA0

USART2_CTS

PD3

 

 

 

 

PA1

USART2_RTS

PD4

 

 

 

 

PA2

USART2_TX

PD5

 

 

 

 

PA3

USART2_RX

PD6

 

 

 

 

PA4

USART2_CK

PD7

 

 

 

 

 

 

 

 

 

 

 

PB10

USART3_TX

PD8

PC10

 

 

 

PB11

USART3_RX

PD9

PC11

 

 

 

PB12

USART3_CK

PD10

PC12

 

 

 

PB13

USART3_CTS

PD11

 

 

 

 

PB14

USART3_RTS

PD12

 

 

 

 

 

 

 

 

 

 

 


关键字:STM32  USART 引用地址:STM32 103 USART

上一篇:stm32 printf输出到USART1
下一篇:对stm32启动代码DCD sfe(CSTACK)的理解

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

STM32的串口函数_库函数USART_SendData问题和解决方法
个人记录: 昨天做串口实验的时候一直没有成功的原因,连续调用USART_SendData总是会出现前一个被后一个覆盖的情况。 之前觉得ST的官方库应该没有问题就没往这方面想,现在查查,确实有库的问题,还是自己对库不太理解。 还有遇到的硬件复位以后,发送第一个字符丢失的情况。 1、后字节覆盖前字节 -----------------加判断while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET){} 2、硬件复位之后第一个字符丢失 -----------------USART_ClearFlag(USART2,USART_FLAG_TC); ----
[单片机]
<font color='red'>STM32</font>的串口函数_库函数<font color='red'>USART</font>_SendData问题和解决方法
关于调试stm32和stm8(51单片机)的i2c和spi协议的之间的区别
在调试STM32的i2c和io口模拟spi协议时发现时序是很关键的。stm32在72M运行下可以实现i2c或者spi协议,但并不代表把相同的代码移植到51单片机上就会成功的跑起来,因为51单片机的速读最块8M,所以在时序上会产生很多大的区别。 经过测试,在stm32上的spi协议时钟线可达到20Khz,移植到51后,频率会降到 10hz。可是尽管把延时调小或者去掉还是无济于事,此时就要加几句把钟线置高置低的语句了 以便增大的速度,后来成功后,测试时钟线的确达到了10Khz左右。 先贴上部分代码 unsigned char ReadRawRC(unsigned char Address) { unsigned char
[单片机]
基于STM32的便携式二氧化碳监测仪设计
CO2浓度的检测方法大致分化学方法和物理方法。CO2浓度检测方法有滴定法、热催化法、气敏法、电化学法,这些属于化学方法,这些方法普遍存在价格贵,普适性差等问题,且测量精度较低。而物理的方法有超声波法、气相色谱法以及众多借助于光学来实现检测的方法。也有像光声光谱法这种化学和物理结合的方法。吸收光谱法的依据是不同化学结构的气体分子对不同波长的辐射的吸收程度不同,CO2气体分子对特定波长的红外光有强烈的吸收。 目前各种检测用的CO2传感器主要有固体电解质式、钛酸钡复合氧化物电容式、电导变化型厚膜式等,这些传感器存在对气体的选择性差、易出现误报、需要频繁校准、使用寿命较短等不足。而红外吸收型CO2传感器具有测量范围宽、灵敏度高、响应
[单片机]
基于<font color='red'>STM32</font>的便携式二氧化碳监测仪设计
Linux环境开发STM32,从环境到调试
首先简单地描述一下软硬件开发环境。 宿主机: 操作系统:CentOS7 x86_64 ( grome桌面版 ) IDE:Eclipse Luna JLink驱动:JLink_Linux_V434a 工具链:GNU-ARM-Toolchains-4.9-2014q4 GDB:arm-linux-gdb V7.8.1 硬件平台: CPU:STM32F103C8T6 JLink:V8 USB转串口:Silicon Labs CP2101 环境的搭配都是比较简单的,编译工具链都比较容易装。这里就不再介绍了。下面就只附上工具链的下载链接。 https://launchpad.net/gcc
[单片机]
Linux环境开发<font color='red'>STM32</font>,从环境到调试
基于STM32设计的物流追踪系统(GPS+BC20+华为云IOT)
1. 前言 随着人们生活节奏的加快,促使物流行业突飞猛进的快速的发展,物流行业的快速发展也导致物流过程出现了一系列的问题。近年来贵重物品在物流中的比例越来越多,同时贵重物流在物流过程中的丢失也越来越多,贵重物品丢失后无法查询在哪个环节丢失的问题引起了物流行业的高度重视。不仅贵重物品需要全程监控,危险品的运输也急需全程的监控,确保在危险品出现事故时可以第一时间解决。 利用GPS技术能够动态采集物流过程中物品的变化信息和地理位置信息,在该系统中加入GPRS模块,利用当前成熟的移动通信技术,在没有有线网络的情况下,也能做到与管理平台数据库之间的通信,既能满足监管平台对物品实时信息的需求,当物品出现丢失时或出现异常替换时,实时报告给监
[单片机]
基于<font color='red'>STM32</font>设计的物流追踪系统(GPS+BC20+华为云IOT)
STM32移植U8g2图形库的方法 实现OLED图形显示
之前的文章,介绍过ESP8266在Arduino IDE环境中使用U8g2库,实现OLED上的各种图形显示。 本篇,介绍一下U8g2库如何移植到STM32上,进行OLED的图形显示。 本次的实验硬件为: STM32:型号为最常见的STM32F103C8T6 OLED:0.96寸OLED,IIC接口(如果是SPI接口,文中也有对应的修改介绍) 1 U8g2简介 U8g2 是一个用于嵌入式设备的单色图形库。U8g2支持单色OLED和LCD,并支持如SSD1306等多种类型的OLED驱动。 U8g2源码的开源库地址:https://github.com/olikraus/u8g2 2 移植步骤 首先下载U8g
[单片机]
<font color='red'>STM32</font>移植U8g2图形库的方法 实现OLED图形显示
Keil5.15使用GCC编译器编译STM32工程
我们使用Keil一般使用ARMCC编译MCU工程代码.其实,Keil也是支持内嵌GCC编译器的.我们可以使用GCC来编译我们的工程代码. 一、下载GCC编译器 GCC编译器下载地址 二、安装GCC 我们可以把GCC解压到keil的安装目录下面.如下图 三、配置Keil使用GCC编译器 1、配置CC编译规则,Misc Controls 填写 -mcpu=cortex-m4 -mthumb -fdata-sections -ffunction-sections 2、Assembler中规则,Misc Controls 填写 -mcpu=cortex-m4 -mthumb 3、Linker中填写,Mi
[单片机]
Keil5.15使用GCC编译器编译<font color='red'>STM32</font>工程
STM32系统中如何数据掉电保护
在嵌入式设备开发中,往往需要保存一些掉电不易失性的数据,如果系统配置、用户定制信息等等,如果增加额外的ROM IC,比如(基于I2C的24C02等等)往往会造成额外的PCB空间增大,硬件成本增加,降低产品的性价比。如果单从实用性来讲,在stm32的系统中,诸如此类的应用,笔者推荐如下2个方法可以去尝试和借鉴。 基于备份寄存器 原理:对于大容量的MCU系列来说,它有着42个16bit的备份寄存器,而中小容量的微处理器却只有10个16bit的备份寄存器。以STM32F103C8T6为例,42个备份寄存器的地址偏移为:0x04~0x28,0x40~0xBC,共可以存储84个byte数据。备份寄存器是依赖者备份电源的,当外界的VDD掉
[单片机]
<font color='red'>STM32</font>系统中如何数据掉电保护
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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