你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Cube库中的UART与USART

[复制链接]
lkl0305 发布时间:2015-5-20 22:50
以前使用标准外设库的串口编程时,比如要初始化一个串口,使用USART_Init函数就可以了,如图:( M. v0 u- V- V& W, f
USART.jpg ! G0 ~  t3 J9 m: p* f. O
今天学习了Cube库,在查看帮助文档时,发现有两个串口初始化函数,HAL_UART_Init和HAL_USART_Init。它们的函数形式:; d7 p1 Y1 B' E1 z! z, q# [
HAL_StatusTypeDef HAL_UART_Init( UART_HandleTypeDef *  huart ) - [% q" G2 b; H' N- i1 K
HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)5 G6 w: a- ~8 `9 O: Z$ [) y
分别属于如下帮助文档类别,如图:& k* M; T' h5 r; @2 |- R3 M, h5 o3 @5 y
USART_UART.jpg 5 i3 N  Z: C: Q. b# i; g5 ?
再看看两者地区别,一个是关于UART,一个是USART。
# ~; e9 c* m& G以前对这两者没有区分,一下子懵了,怎么有2套串口操作库函数?
+ ~7 ^; j3 Z; j9 v后来查了资料,补习了一番才略微明白了一些,给大家分享一下:
0 w. h# P; p  W/ [# W- r' R: c- \1、UART:universal asynchronous receiver and transmitter通用异步收发器
) j. O7 p) _; x; o1 B2、USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器5 s! D2 K3 E# W- H) R! V1 e% X
也就是说:UART的一般只能用于异步串行通讯,而名称为USART的既可以用于同步串行通讯,也能用于异步串行通讯。

3 }4 D5 r) b, f8 _8 E; [! A# O; g在STM32CubeMX中测试了一下同步通信和异步通信,自动生成的代码中,果然:
( d3 K1 D6 ]6 e8 n# M; v+ Y+ \( i1、在使用异步通信时,自动调用的是HAL_StatusTypeDef HAL_UART_Init( UART_HandleTypeDef *  huart ) 初始化/ b7 [7 o7 ?7 @
2、在使用同步通信时,自动调用了HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)初始化
: }6 \$ v* Q8 ~4 h; d) S7 B
暂时就有这点,大家有什么心得也来说说?# F) D, f+ h1 Z/ W( E/ {
收藏 1 评论20 发布时间:2015-5-20 22:50

举报

20个回答
风子 回答时间:2015-5-20 23:22:28
STM32中串口1,2,3是USART,4和5是UART,之前使用的标准外设库只有一个初始化函数,使用的是USART1,2,3,同步异步模式都是要用USART_Init()初始化的,比较常用异步。使用UART4,5只有异步模式,同样也是USART_Init()初始化
# k+ q7 n% q0 t; I: Z! hCUBE库把两个部分分开,进行了升级把
lkl0305 回答时间:2015-5-27 22:11:36
波波呀 发表于 2015-5-27 21:23
' f& Z: Y- M% D$ N" j1 F" z! x学习了,一直在学习hal的usb  串口还没看

) }% E2 g& a! I6 ^( w! b8 h  g朋友是高手啊,直接USB了,我还不敢去看那个啊,回头有问题可要向你求教了
波波呀 回答时间:2015-5-29 14:25:59
lkl0305 发表于 2015-5-27 22:11
' |  k9 F" d6 I( [# `1 l: V朋友是高手啊,直接USB了,我还不敢去看那个啊,回头有问题可要向你求教了 ...
" I& c! r& P& Z' f
可以 共同学习进步
lkl0305 回答时间:2015-5-21 00:31:14
是呀,不过现在是异步,不管是123还是45都用HAL_UART..
sasmike 回答时间:2015-5-21 08:47:45
学习了
xxp790912 回答时间:2015-5-21 09:02:23
学习了,谢谢分享!原来真没注意
为什么是EEFOCUS小白 回答时间:2015-5-21 09:14:02
学习了        
lkl0305 回答时间:2015-5-21 09:35:50
哈哈,共同学习
wtliu 回答时间:2015-5-21 15:56:29
同步通讯是不是要多一个时钟信号?有点类似SPI?
熊猫s885 回答时间:2015-5-21 16:44:05
学习学习了
lkl0305 回答时间:2015-5-23 13:03:04
794760169 发表于 2015-5-21 16:44
% Z3 _5 c% ^- p* s学习学习了
8 \( {7 ]7 q8 h
共同学习哈
眉来眼去 回答时间:2015-5-27 11:42:59
有什么区别
jiaswang 回答时间:2015-5-27 12:06:36
学习了~!
three! 回答时间:2015-5-27 12:06:55
学习了~
three! 回答时间:2015-5-27 12:10:42
好难的样子
lkl0305 回答时间:2015-5-27 12:24:58
three! 发表于 2015-5-27 12:10
+ S0 b- T  h& E2 z$ X% d  \% }好难的样子

7 c' ]6 U& P' [2 b8 D其实不难,百度一下
12下一页

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版