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

Cube库中的UART与USART

[复制链接]
lkl0305 发布时间:2015-5-20 22:50
以前使用标准外设库的串口编程时,比如要初始化一个串口,使用USART_Init函数就可以了,如图:
: a2 v& }% `2 }; P0 R4 Y6 W USART.jpg
+ U2 R3 w! A3 j) s& ]" W) |今天学习了Cube库,在查看帮助文档时,发现有两个串口初始化函数,HAL_UART_Init和HAL_USART_Init。它们的函数形式:
* @8 i7 Q: n8 K1 _2 B9 d" g; xHAL_StatusTypeDef HAL_UART_Init( UART_HandleTypeDef *  huart )
& ~. R% L) _4 LHAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)
! L/ Z/ l4 h  ^2 A9 u分别属于如下帮助文档类别,如图:
7 R/ O0 U$ u& s+ \! l USART_UART.jpg 3 R3 g& A6 K9 D1 u
再看看两者地区别,一个是关于UART,一个是USART。
/ O5 y; g# w: ^- [% w' W) A3 X& q以前对这两者没有区分,一下子懵了,怎么有2套串口操作库函数?  u3 R( `" L& D* {! r  k
后来查了资料,补习了一番才略微明白了一些,给大家分享一下:* a* ^- ]$ o: O  H. f
1、UART:universal asynchronous receiver and transmitter通用异步收发器0 t7 |/ ?( r1 i. s# \8 E% O, e
2、USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器! r" l9 v, c/ I3 v' V
也就是说:UART的一般只能用于异步串行通讯,而名称为USART的既可以用于同步串行通讯,也能用于异步串行通讯。
/ h& `$ M, s4 z" W9 ?
在STM32CubeMX中测试了一下同步通信和异步通信,自动生成的代码中,果然:
+ D5 z! L" `9 o9 B, O' h2 J$ d  j1、在使用异步通信时,自动调用的是HAL_StatusTypeDef HAL_UART_Init( UART_HandleTypeDef *  huart ) 初始化1 K# l6 u5 E; J( ?& d2 n/ t1 v
2、在使用同步通信时,自动调用了HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)初始化
& w% c( |4 }3 ]; f" i
暂时就有这点,大家有什么心得也来说说?
3 v: }/ Z3 p% q7 R' |) A
赞 收藏 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()初始化
% H# K* E0 I9 v& xCUBE库把两个部分分开,进行了升级把
lkl0305 回答时间:2015-5-27 22:11:36
波波呀 发表于 2015-5-27 21:23
4 N) Y6 q5 U$ ^$ |% h学习了,一直在学习hal的usb  串口还没看

3 Q' h  K: O) |1 D1 `朋友是高手啊,直接USB了,我还不敢去看那个啊,回头有问题可要向你求教了
波波呀 回答时间:2015-5-29 14:25:59
lkl0305 发表于 2015-5-27 22:11
; p7 \" K) q  C, P( G朋友是高手啊,直接USB了,我还不敢去看那个啊,回头有问题可要向你求教了 ...

! _% ?6 `) S4 V0 |. v8 c可以 共同学习进步
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$ E$ E. p% a$ L; o) @  v) x
学习学习了
; [+ z$ P% K) [! Z9 z
共同学习哈
眉来眼去 回答时间: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  H0 u, u6 `% k3 s' x+ p& i
好难的样子

3 D' I& y% H4 t其实不难,百度一下
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版