历史上的今天

今天是:2024年11月11日(星期一)

2020年11月11日 | STM32--UART异步通信学习

发布者:幸福约定123 来源: eefocus关键字:STM32  UART  异步通信 手机看文章 扫描二维码
随时随地手机看文章

字符发送的过程描述:在UART的发送过程中先将数据输入到发送数据寄存器中(TDR)此时(TXE)被硬件置1,之后TDR寄存器将数据串行移入到发送移位寄存器中,将数据在TX端口发送,此时(TC)被硬件置1。 发送与接收是逆过程。


UART发送配置步骤:


    1.通过USART_CR1寄存器上置位UE来激活USART。


     2.编程USART_CR1的M位来定义字长。


     3.在USART_CR2中编程停止位的位数。


     4.如果采用多缓冲器通信,配置USART_CR3中的DMA使能位(DMAT)。按多缓冲器通信中的描述配置DMA寄存器。


     5.利用USART_BRR寄存器选择要求的波特率。


     6. 设置USART_CR1中的TE位,发送一个空闲帧作为第一次数据发送。


     7. 把要发送的数据写进USART_DR寄存器(此动作清除TXE位)。在只有一个缓冲器的情况下,对每个待发送的数据重复步骤7。


     8. 在USART_DR寄存器中写入最后一个数据字后,要等待TC=1,它表示最后一个数据帧的传输结束。当需要关闭USART或需要进入停机模式之前,需要确认传输结束,避免破坏最后一次传输。


 


在配置USART的接收时,除上面的步骤外,还要使能接收中断并且配置中断向量控制器NVIC。


    波特率的计算方法:


STM32--UART异步通信学习  


USART的编程:


   1.定义USART_InitTypeDef类型的结构体 UART_init


   2.使能GPIO的时钟和USART的时钟。(UART1 PA9为TX,PA9为RX)


   3.配置UART_init结构体的各参数。 配置波特率、数据位、停止位、奇偶效验位、硬件流、收发模式


   4.初始化UART_init结构体的各参数使用函数。


   5.使能USART


   6.定义GPIO_InitTypeDef类型的结构体  GPIO_UART


   7.讲相应GPIO引脚(PA10 RX PA9 TX)。


   8.初始化GPIO引脚。


   在配置接收模式时,还要使能接收中断,并且配置中断向量控制器NVIC。


   在发送完数据时,要判断标志TC是否置位,在接收数据时,要判断是否有接收中断请求。


关键字:STM32  UART  异步通信 引用地址:STM32--UART异步通信学习

上一篇:STM32库函数SystemInit()的理解
下一篇:STM32通用定时器---基本定时学习

推荐阅读

  在我国新疆地区,万亩棉田团团簇簇盛放枝头,只待农户前来采摘。相对于传统的人工作业,现在许多农户都更愿意用科技手段,来提升作业效率,节省相关成本。其中,在喷洒落叶剂环节,植保无人机正日渐成为主力。   不仅如此,在东北平原、在东南丘陵,无论是稻田还是果树、林地的施药作业,很多都已经由植保无人机包揽。短短数年内,植保无人机正加...
S3C2440A 具有5 个16 位定时器,每个定时器可以按照中断模式或DMA 模式工作。定时器0,1,2,3 具有PWM 功能。定时器4 是一个内部定时器,不具有对外输出口线。定时器0 还具有死区发生器,通常用于大电流设备。定时器特性总结如下。● 5 个16 位定时器可以工作在中断模式或DMA 模式。● 包括2 个8 位预分频器、2 个4 位分割器。● 输出...
今天在玩开发板时不小心下载了个有问题的程序,然后就悲剧了。无法往芯片中烧写程序了。每次想下载程序都会弹出如下的两个错误对话框。然后消息窗口显示如下的错误信息。JLink info: ------------ DLL: V4.15n, compiled Jun 18 2010 19:55:09 Firmware: J-Link ARM V8 compiled May 20 2010 17:07:46 Hardware: V8.00 S/N : 24446459 Feature(s) :...
英伟达(Nvidia)首席执行官黄仁勋周三(Jensen Huang)在接受媒体采访时再度预计,全球芯片短缺的情况不会很快结束。  作为市值最大的芯片制造商的掌舵人,黄仁勋本周早些时候刚刚在英伟达举办的GTC大会上发表了一场虚拟主题演讲,介绍了该公司在元宇宙和人工智能方面取得的进展和成果。但英伟达的大部分收入仍来自游戏显卡的销售。由于疫情大流行引发的芯...

史海拾趣

问答坊 | AI 解惑

新型智能电源VIPer12A

1 引言 目前,移动电话、漆上型电脑、无线钻机、数字摄像机、MP3播放机等便携式设备的数量与日俱增,种类繁多。电池充电器和AC适配器的广泛使用,不仅为便携式设备用户的生活提供了极大的方便,而且还大幅度降低了设备的使用费用。事实上,如果没 ...…

查看全部问答∨

atmega161彩屏mp3原理图+C语言源程序

此资料我找了很久才找到,觉得很好!这个是使用atmega161+vs1001做的,而且是使用FAT文件系统的,很有学习意义!是外国人做的.不知现在vs1001还流行不?还是vs1003会好一些呢?大家讨论一下吧!!…

查看全部问答∨

几个DSP高手的经验介绍(转)

一. 我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP的开发写一写自己的感受,一家之言,欢迎指教。我上研究生的第一天起根据老板的安排就开始接触DSP,那时DSP开发在国内高校刚刚开始,一台DSP开发器接近一万 ...…

查看全部问答∨

哪位前辈能提供一个通过黄色进行图像识别的程序

菜鸟小弟在做毕设,是基于对DSP的图像识别,通过物体的颜色——黄色把一个物体识别出来,请教前辈们程序能在CCS下实现仿真。不胜感激!!!!!!…

查看全部问答∨

碰到一怪现象

昨天调试FPGA程序时,程序下载到EP2C35时发现,程序部分不工作。请问大侠啥原因?…

查看全部问答∨

关于在U-boot中添加命令的问题

  大家好,小弟现在正在学习嵌入式这一块,最近看到U-Boot,现在希望能在其中添加一条自己的命令,可是却遇到了这样的问题。   小弟所用的版本是1.3.3,算是比较新的版本。基本上是依照网上介绍的做法来添加的。可是把u-boot ...…

查看全部问答∨

100分求助关于触摸屏、手写软件、操作速度...

请问各位:     我在PDA里加了一个叫“马兰花”的手写软件     可是操作手写软件的时候,系统反映特别慢(CPU是PXA270)         于是,我把触摸屏驱动中“三点校准”变成了“1点校准”   &nbs ...…

查看全部问答∨

求职嵌入式开发

小弟经过2道笔试面试上华为的外包公司文思,虽然也是linux开发有4.75K,但是我真的特别爱好嵌入式,工资比这个低也不介意,不想到时候 又花时间转嵌入式,一次到位算了,想做这个好久了,自己都有些基础 例如操作系统原理,信号,进程,IPC 多线程 ...…

查看全部问答∨

为什么RegCreateKeyEx返回正确但是没有建立注册表呢

   LPWSTR lpClass=L"TimeFromat"; if(ERROR_SUCCESS == RegCreateKeyEx(HKEY_LOCAL_MACHINE,ALARM_KEY,0,lpClass,                              & ...…

查看全部问答∨

DIY FPGA学习板简介附原理图

我给这个板子取了个名字叫 EE_FPGA,感谢eeworld给我们一个这样好的学习平台。希望大家在这里能够真正的学到自己想要的东西。 适用对象: 1.       FPGA初学者:希望能够迈入FPGA开发大门的初学者和爱好者,让大家 ...…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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