STM8S 微控制器家族的通用同步异步收发器(UART1,UART2 或者UART3)提供了一种灵活的方法与使用工业标准NRZ 异步串行数据格式的外部设备之间进行全双工数据交换。STM8 的UART 提供范围的波特率选择,并且支持多处理器通讯。UART 也支持LIN(局部互联网)协议版本1.3,2.0,和2.1 以及在主模式下的J2602。
UART1 和UART2 具有以下扩展特征:UART2 和UART3 支持LIN 从模式。UART1 和UART2 支持同步单向通讯,也支持智能卡协议和IrDA 规范。UART1 支持半双工单线通讯。
第一部分 UART1库函数
![a63988c76ab87ca0eb03c687cdea6da4.png](https://i-blog.csdnimg.cn/blog_migrate/67758111ab6f99b96080cfcd0931b2cd.jpeg)
- UART1_DeInit //恢复UART1寄存器到默认值
![6d40b6ff29c48dfb74be319f4460a691.png](https://i-blog.csdnimg.cn/blog_migrate/878d8e56c403de4ccf882f569adff56c.png)
2. UART1_Init(BaudRate,WordLength,StopBits,Parity,SyncMode,Mode)
//初始化UART1
![bb6f13efe091e3687a2dcfa6689d48f6.png](https://i-blog.csdnimg.cn/blog_migrate/7c8351b51960e4e23a34839e146c333f.jpeg)
其中:
①、BaudRate 可选常用波特率 例如:9600 115200
②、WordLength 字长 可选:
![117b94d910f31be96f9c65cf0a5b98e9.png](https://i-blog.csdnimg.cn/blog_migrate/643b2cee2b23783150525dec790e0b85.png)
③、StopBits 停止位 可选:
![8fd60be6e2916c5f4da36a7796d9db77.png](https://i-blog.csdnimg.cn/blog_migrate/032135148d32a2169fbc8293ba45cd6c.png)
④、Parity 校验位 可选:
![9905584f9a56f1e74c6668d6128036a2.png](https://i-blog.csdnimg.cn/blog_migrate/1ef6d270f95fdaa0388515a25ea9c6b0.png)
⑤、SyncMode 同步模式 :
![f0462e077c37877699fb0ea8ca084483.png](https://i-blog.csdnimg.cn/blog_migrate/321548ac64b1c22485541e3dfcff8c90.jpeg)
⑥、Mode 模式:
![729d8e4734eb737d69ae302b2a1ace8c.png](https://i-blog.csdnimg.cn/blog_migrate/8d4b6b5a659f4501a85dd55bf95d1b3c.png)
UART1_Init((u32)9600,UART1_WORDLENGTH_8D,UART1_STOPBITS_1,UART1_PARITY_NO,UART1_SYNCMODE_LASTBIT_ENABLE,UART1_MODE_RX_ENABLE);
3.UART1_Cmd(NewState) //启用或者关闭UART1
![c226eea62668cba77f5de1c0d0524855.png](https://i-blog.csdnimg.cn/blog_migrate/bc51c2800978c274586b63dfc009b1fb.png)
4.UART1_ITConfig(UART1_IT, NewState) //UART1中断配置
![4b5551c103c48748fec16a1035831f71.png](https://i-blog.csdnimg.cn/blog_migrate/08dd75575e9c1e7e5c6b16b484df13a1.png)
![9ad3cb8aec82567016f3c5007246ac0d.png](https://i-blog.csdnimg.cn/blog_migrate/031d44f3b5271c610c33629aa9a08fc3.png)
5.UART1_HalfDuplexCmd() //启用或者关闭UART1半双工通信
![9d77ed5ac3c549c7b0360980f95808c2.png](https://i-blog.csdnimg.cn/blog_migrate/87433dcd6613925df9468764336d812a.png)
6.UART1_IrDAConfig(UART1_IrDAMode) //配置红外低功耗模式
![3a35126d09a1b280da90804812835772.png](https://i-blog.csdnimg.cn/blog_migrate/8c1c93a7ff73155adcb0901db36cc9a7.png)
![abb812377ca26d3df4e4569184c7582a.png](https://i-blog.csdnimg.cn/blog_migrate/ca0d5c9ccd518455b01828d20d1448fd.png)
7. UART1_IrDACmd(FunctionalState NewState) //启用或关闭红外功能
![9e161b7a40c20be9ad72ba33e88c3e02.png](https://i-blog.csdnimg.cn/blog_migrate/2c4a985fb133d954e36041c6cb4497ac.png)
8. UART1_LINBreakDetectionConfig(UART1_LINBreakDetectionLength)
//设置LIN断开符检测长度
![c633fb8dd8295c6efff58203c4461aaa.png](https://i-blog.csdnimg.cn/blog_migrate/1fa185642e4c9f1e88f657178b3acf85.jpeg)
![8b1a2c1420116f91a39f03d832e3ff94.png](https://i-blog.csdnimg.cn/blog_migrate/27447da24ddf3aa4d9cf7d3c841773e4.png)
9. UART1_LINCmd(NewState) //启用或者关闭LIN模式
![ac68d353b4ed26bae6612d3af201c8ff.png](https://i-blog.csdnimg.cn/blog_migrate/203935d59807a6f2c6bf9f69e680fb1c.png)
10. UART1_SmartCardCmd(NewState) //启用或者关闭智能卡模式
![5ee8a268583056d8dd0ed5471e2369b8.png](https://i-blog.csdnimg.cn/blog_migrate/d184b18b237d7085beddfd02a84c8454.png)
11. UART1_SmartCardNACKCmd(NewState) //启用或者关闭智能卡NACK
![c250d209daac418e46a648df8768eb8d.png](https://i-blog.csdnimg.cn/blog_migrate/3788218242c821bb49c69ae8f2bcb47e.png)
12.UART1_WakeUpConfig(UART1_WakeUp) //设置唤醒方式