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

Cube库中的UART与USART

[复制链接]
lkl0305 发布时间:2015-5-20 22:50
以前使用标准外设库的串口编程时,比如要初始化一个串口,使用USART_Init函数就可以了,如图:
" ]' n- {& J! Z* t* A" q USART.jpg
$ C6 L8 A5 o3 Y5 f  z' r今天学习了Cube库,在查看帮助文档时,发现有两个串口初始化函数,HAL_UART_Init和HAL_USART_Init。它们的函数形式:& `# t7 D  [' A
HAL_StatusTypeDef HAL_UART_Init( UART_HandleTypeDef *  huart )
% A* H5 b  h6 F2 A/ W, ]! f* ?" j5 DHAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)
- W, ], C  Z: L0 A( a分别属于如下帮助文档类别,如图:  D4 c+ G' G1 W1 D% m
USART_UART.jpg
. K' F4 j- p8 o再看看两者地区别,一个是关于UART,一个是USART。# J6 I/ l9 V3 Q, I. q. U# J
以前对这两者没有区分,一下子懵了,怎么有2套串口操作库函数?% }, D7 }; Q5 |  ?% O' Z. Q
后来查了资料,补习了一番才略微明白了一些,给大家分享一下:1 ?# a+ s8 W8 r- {5 Y% n
1、UART:universal asynchronous receiver and transmitter通用异步收发器, |8 ?1 T1 X( C) f" |. F
2、USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器7 f$ W' C1 [) m* A
也就是说:UART的一般只能用于异步串行通讯,而名称为USART的既可以用于同步串行通讯,也能用于异步串行通讯。

3 |; R. I7 E+ w$ e; V# F2 U在STM32CubeMX中测试了一下同步通信和异步通信,自动生成的代码中,果然:
2 ]( b1 \( p5 z1、在使用异步通信时,自动调用的是HAL_StatusTypeDef HAL_UART_Init( UART_HandleTypeDef *  huart ) 初始化
  E9 T% w' w: u8 O$ O; v2、在使用同步通信时,自动调用了HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)初始化
9 ?' ]  c" r) ]6 ~9 Q
暂时就有这点,大家有什么心得也来说说?
$ A3 K# b" x' v8 ^, ]" x2 }
收藏 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()初始化) G5 m9 b  u0 Y6 S0 b; f
CUBE库把两个部分分开,进行了升级把
lkl0305 回答时间:2015-5-27 22:11:36
波波呀 发表于 2015-5-27 21:23+ w; N6 O0 P* q* q! l  \2 q
学习了,一直在学习hal的usb  串口还没看

3 P& K2 Q1 [2 b5 i$ N8 E朋友是高手啊,直接USB了,我还不敢去看那个啊,回头有问题可要向你求教了
波波呀 回答时间:2015-5-29 14:25:59
lkl0305 发表于 2015-5-27 22:11( B! ]2 S% t# \1 a7 P% k
朋友是高手啊,直接USB了,我还不敢去看那个啊,回头有问题可要向你求教了 ...

7 h& I* @( x* c4 h可以 共同学习进步
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
. f. b8 J: ~. [3 q2 @: ?# H9 V( Y9 J9 w6 P学习学习了

; v8 {) g6 U% C" ~5 X/ G共同学习哈
眉来眼去 回答时间: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! q: [- a3 y* ^6 S
好难的样子

0 ^4 f2 A, F- Q+ g- Q9 F; h其实不难,百度一下
12下一页

所属标签

相似分享

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