STM32 串口的基本配置(寄存器版)笔记

发布者:eta17最新更新时间:2018-12-17 来源: eefocus关键字:STM32  串口  基本配置 手机看文章 扫描二维码
随时随地手机看文章

1.串口


1.串口作为MCU和外界的连接工具,既可以检验代码的正确性,也可以和上位机进行交流


2.在STM32F103RCT6中,最多支持5路串口,对于串口而言,一般使用串行通信(USART1--5)


3.几个比较重要的寄存器:


 




具体配置过程


1.计算波特率(整数和小数部分)


2.初始化GPIO口


3.复位USART 配置波特率,配置奇偶校验,停止位等


4.配置中断(可编写中断服务函数)


代码实现:


//初始化IO 串口1

//pclk2:PCLK2时钟频率(Mhz)

//bound:波特率

//1.计算波特率(整数和小数)

//2.初始化引脚

//3.复位USART1

//4.设置奇偶校验等

//5.设置中断 

void uart_init(u32 pclk2,u32 bound)//USART1使用pclk2 USART2-5使用PCLK1

{   

float temp;

u16 mantissa;//整数

u16 fraction;//小数

temp=(float)(pclk2*1000000)/(bound*16);//temp(float)=32.0625 temp=32;

mantissa=temp;//整数部分

fraction=(temp-mantissa)*16;

mantissa<<=4;

mantissa=mantissa+fraction;//以hex的形式 USART->BRR


//设置GPIO口

RCC->APB2ENR|=1<<2;//设置串口时钟

RCC->APB2ENR|=1<<14;//设置串口时钟

GPIOA->CRH&=0XFFFFF00F;//PA9 PA10

GPIOA->CRH|=0X000008B0;//1000 1010 RXD TXD

//复用

RCC->APB2RSTR|=1<<14;

RCC->APB2RSTR&=~(1<<14);

//设置波特率

USART1->BRR=mantissa;

USART1->CR1|=0X200C;//设置停止位和校验位

//中断

#if EN_USART_RX

//使能接收中断

USART1->CR1|=1<<8;//接收使能

USART1->CR1|=1<<5;//接收缓冲区非空中断使能

MY_NVIC_Init(3,3,USART1_IRQn,2);

#endif

}


关键字:STM32  串口  基本配置 引用地址:STM32 串口的基本配置(寄存器版)笔记

上一篇:STM32F103学习之RCC配置
下一篇:STM32串口寄存器库函数配置方法

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

STM32+IAR+uC/OS环境下怎样写中断程序
先说说,几个关键函数: bsp_int.c提供几个关键的中断操作函数: void BSP_IntDis (CPU_DATA int_id) //关闭指定中断 void BSP_IntDisAll (void) //关闭所有中断 void BSP_IntEn (CPU_DATA int_id) //使能指定中断 void BSP_IntVectSet (CPU_DATA int_id, CPU_FNCT_VO
[单片机]
ucosii在stm32上的移植详解3
移植详解1和2中主要讲了移植需要用到的基础知识,本文则对具体的移植过程进行介绍。 首先从micrium网站上下载官方移植版本(编译器使用ARM/Keil的,V2.86版本,V2.85有问题)。 下载地址: http://micrium.com/page/downloads/ports/st/stm32 解压缩后得到如下文件夹和文件: Micrium\ AppNotes Licensing Software ReadMe.pdf AppNotes包含ucosii移植说明文件。这两个文件中我们仅需关心Micrium\AppNotes\AN1xxx-RTOS\AN1018-uCO
[单片机]
STM32之系统时钟基定时器
STM32F10x内核中都具有一个系统时钟基定时器,是一个24位的递减计数器。在其设置处置并使能后,每经过一个系统时钟周期,计数值减1.档计数值减到0时系统时基定时器又会自动重载初值。 系统时基定时器每10ms就会产生一次中断。 接下来主要介绍库函数。 1.SysTick_CLKSourceConfig函数的功能是设置SysClock的时钟源。其中输入参数为SysTick_CLKSource:SysTick时钟源 参数可取的值为:SysTick_CLKSource_HCLK_Div8;SysTick_CLKSource_HCLK.表示SysTick时钟源为AHB时钟除以8和AHB时钟源。 例:设置系统定时器时钟为AHB时钟。 Sy
[单片机]
STM32定时器的分类及中断原理
本文主要介绍常规定时器中的TIM3,实现定时器中断的功能。STM32定时器的分类在其中一篇文章中已经介绍过,本文主要内容主要介绍定时器的基础功能-定时器中断,对于STM32定时器分类简单复习一下。 一、STM32定时器的分类 1.1 按照内核、外核、特定、常规分为4大类: 1)内核定时器:Systick 2)外设定时器:特定应用定时器+常规定时器 3)特定应用定时器:LPTIM,RTC,WTD,HRTIM 4)常规定时器:基本定时器TIM6&TIM7)、通用定时器(TIM2TIM5,TIM9TIM14)、高级定时器(TIM1&TIM8) 1.2 CPU时序 此处我们提一下学习单片机原理的课程时,提到的几个CPU时序。
[单片机]
<font color='red'>STM32</font>定时器的分类及中断原理
MSP430G2553测试程序(串口程序,USCI模式)
//****************************************************************************** // HW UART(J4)!!!!!! 特别注意,板子上J4有2个跳线要竖放,设为HW UART模式 // MSP430G2xx3 Demo - USCI_A0, 9600 UART Echo ISR, DCO SMCLK // // Description: Echo a received character, RX ISR used. Normal mode is LPM0. // USCI_A0 RX interrupt triggers TX Echo.
[单片机]
STM32存储器 — 关于STM32的存储器
当我们在完成某一个实验,当我们正庆幸的时候,我们不由得产生一种不安的想法——我们是否已经少许明白其中的种种细节? 尤其,当我们所有的事情都依赖于编译环境或Firmware,抑或他人的程序,而自己仅仅是Copy和Modify,以致Using。当你还是一个初学者的时候,或许不会太过于关注于此,但是要想提高自己对单片机、处理器原理的理解,并且希望走得更远的时候,您就需要关注更为详细的内部知识,您需要明白编译环境、Firmware等为你的默默贡献。 1 STM32系统结构 要想深刻理解STM32的存储器,需要首先知道STM32的系统结构。 如Figure 1,是STM32系统结构框图。 根据STM32 Referenc
[单片机]
<font color='red'>STM32</font>存储器 — 关于<font color='red'>STM32</font>的存储器
STM32_RTC晶振不起振的原因及解决方法
STM32的RTC晶振经常出现不起振的问题,这已经是“业界共识”了。。。很多人在各种电子论坛上求助类似于“求高手指点!RTC晶振不起振怎么办”的问题,而其答案基本可以概括为“这次高手帮不了你了” 更有阴谋论者提出让人啼笑皆非的解释——STM32的RTC晶振不起振是ST与晶振厂商串通后故意搞出来的,目的是提高某晶振厂商高端晶振的销量。。。 最近做的几块板子也用到了STM32的RTC,前后两版一共做了大概6片,幸运的是并未遇到晶振不起振的现象。而我采用的是3毛钱一个的普通晶振,并未选用传说中低负载高精度晶振。。。后来在另外一片实验性质的板子上首次遇到了晶振不起振的问题,而且做了2片都不起振,这才让我意识到这个问题的严重性。
[单片机]
stm32单步调试,出现*** error 65: access violation at 0x40023
问题解决如题: 在单步调试的时候,总是在systeminit()中运行,全速执行不起作用,出现调试错误信息如下 *** error 65: access violation at 0x40023800 : no 'read' permission 该问题的引起的原因是在MDK的设置问题上,Debug选项卡处:use simulator 和 use ,这两种是二选一,我们在use 这项前面打钩,问题就解决了
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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