富士通半导体 ( 上海 ) 有限公司应用笔记 MCU-AN-500026-Z-10 F²MC-8FX 家族 8 位微型控制器 MB95200 系列 LIN/UART API 应用笔记
修改记录 修改记录 版本日期作者修改记录 1.0 2009-3-3 Jane, Li 初稿 本手册包含 29 页 1. 本文档记载的产品信息及规格如有变动, 恕不预先通知 如需最新产品信息和 / 或规格, 联系富士通销售代表或富士通授权经销商 2. 基于本文档记载信息或示意图的使用引起的对著作权 工业产权或第三方的其他权利的侵害, 富士通不承担任何责任 3. 未经富士通明文批准, 不得对本文档的记载内容进行转让 拷贝 4. 本文档所介绍的产品并不旨在以下用途 : 需要极高可靠性的设备, 诸如航空航天装置 海底中继器 核控制系统或维系生命的医用设施 5. 本文档介绍的部分产品可能是 外汇及外贸管理法 规定的战略物资 ( 或专门技术 ), 出口该产品或其中部分元件前, 应根据该法获得正式批准 版权 2009 富士通半导体 ( 上海 ) 有限公司 MCU-AN-500026-Z-10- 第 2 页
目录 目录 修改记录... 2 目录... 3 1 概要... 5 2 LIN-UART 库函数列表... 6 3 LIN-UART 函数详情... 7 3.1 LIN_UART_Restart 函数... 7 3.2 LIN_UART_Mode 函数... 8 3.3 LIN_UART_Init 函数... 9 3.4 LIN_UART_Asyn_Mode0_Init 函数... 11 3.5 LIN_UART_Asyn_Mode1_Init 函数... 12 3.6 LIN_UART_LIN_Init 函数... 12 3.7 LIN_UART_Syn_Init 函数... 13 3.8 LIN_UART_Transmit_Control_Bit 函数... 15 3.9 LIN_UART_Receive_Control_Bit 函数... 15 3.10 LIN_UART_Error_Handle 函数... 16 3.11 Serial_IO_Direct_Access 函数... 17 3.12 UART_Sendbyte 函数... 18 3.13 UART_Readbyte 函数... 19 3.14 LIN_UART_Write_Data 函数... 19 3.15 LIN_UART_Read_Byte 函数... 20 3.16 LIN_UART_Baudrate 函数... 21 4 用法演示... 22 4.1 LIN UART 重启... 22 4.2 LIN UART 在模式 0 下运行 ( 异步正常模式 )... 22 4.3 LIN UART 在模式 1 下运行 ( 异步多重处理器模式 )... 23 MCU-AN-500026-Z-10 - 第 3 页
目录 4.4 LIN UART 在模式 2 下运行 ( 同步模式 )... 23 4.5 LIN UART 在模式 3 下运行 (LIN 模式 )... 24 4.6 LIN UART 接收数据... 25 4.7 LIN UART 传输数据... 25 4.8 LIN UART 错误处理... 26 4.9 LIN UART 串行存取... 26 5 更多信息... 27 6 附录... 28 MCU-AN-500026-Z-10- 第 4 页
第 1 章概要 1 概要 本文档介绍了 LIN/UART API 我们应该考虑一些条件, 例如 : 复位, 初始化, 模式设置, 发送, 接收, 错误处理, 直接存取和波特率设置 以下章节详细介绍了这些条件 MCU-AN-500026-Z-10 - 第 5 页
2 LIN-UART 库函数列表 本章介绍了 LIN-UART 的所有函数 表 2-1 列出了 LIN-UART 代码库的函数 LIN/UART API V1.0 第 2 章 LIN UART 库函数列表 函数名 表 2-1:LIN-UART 函数 void LIN_UART_Restart (LIN_UART_Reload, LIN_UART_Clear) void LIN_UART_Mode (Mode) void LIN_UART_Init (Bit_Length, Stop_Bit, Direction, Ex_Clk_Select, Ex_Clk_Input) void LIN_UART_Asyn_Mode0_Init (Parity_Status, Parity_Select) 重启重载计数和 LIN UART 软件复位选择 LIN UART 工作模式初始化 LIN_UART 启用奇偶性并选择偶数或奇数 void LIN_UART_Asyn_Mode1_Init (Data_Type) 初始化 LIN_UART 异步模式 1 ( 多重处理器模式 ) void LIN_UART_LIN_Init (Break_Bit, Break_Gerention) void LIN_UART_Syn_Init (Sampling_Clock, Continue_Clk, Ss_Status, Serial_Mode, Clk_Delay) void LIN_UART_Transmit_Control_Bit (Status) void LIN_UART_Receive_Control_Bit (Status) uchar LIN_UART_Error_Handle (Status) void Serial_IO_Direct_Access(Serial_Access_Status, Serial_Direct_Access) void UART_Sendbyte (Data) uchar UART_Readbyte (void) void LIN_UART_Write_Data (Length, *Data) void LIN_UART_Read_Data (Length, *Data) void LIN_UART_Baudrate (Sys_Clock, Baudrate) 初始化 LIN_UART LIN 模式初始化 LIN_UART 同步方式启用或禁用传输数据启用或禁用接收数据错误类型和清除错误标识串行 I/O 引脚直接存取发送一个字节接收一个字节传输数据的长度接收数据的长度设置通信波特率 MCU-AN-500026-Z-10- 第 6 页
3 LIN-UART 函数详情 本章详细介绍了 LIN-UART 的每一个函数 3.1 LIN_UART_Restart 函数 表 3-1 描述了 LIN_UART_Restart 函数 函数名功能原型行为描述输入参数 1 输入参数 2 返回值 表 3-1:LIN_UART_Restart 函数 LIN_UART_Restart void LIN_UART_Restart (uchar LIN_UART_Reload,uchar LIN_UART_Clear) 重载计数重启并重置 LIN UART LIN_UART_Reload, 重载计数重启 LIN_UART_Clear, 复位 LIN UART 无 该函数重载计数重启并复位 LIN UART 此参数重载计数重启位和可编程清除位 (LIN-UART 软件重置 ) 表 3-2 描述了 LIN_UART_Reload 的参数值 表 3-2:LIN_UART_Reload 定义 LIN_UART_Reload Dis_LIN_UART_Restart En_LIN_UART_Restart 无效 重载计数 表 3-3 描述了 LIN_UART_Clear 的参数值 LIN_UART_Clear 表 3-3:LIN_UART_Clear 定义 Dis_LIN_UART_Clear 无效 En_LIN_UART_Clear 清除位 MCU-AN-500026-Z-10 - 第 7 页
3.2 LIN_UART_Mode 函数 表 3-4 描述了 LIN_UART_Mode 函数 函数名功能原型行为描述输入参数返回值 表 3-4:LIN_UART_Mode 函数 LIN_UART_Mode void LIN_UART_Mode (uchar Mode) 设置工作模式模式无 该函数选择 LIN UART 操作模式 表 3-5 描述了 Mode 的参数值 Mode 表 3-5:Mode 定义 Mode_0 模式 0 Mode_1 模式 1 Mode_2 模式 2 Mode_3 模式 3 MCU-AN-500026-Z-10- 第 8 页
3.3 LIN_UART_Init 函数 表 3-6 描述了 LIN_UART_Init 函数 函数名 函数原型 表 3-6:LIN_UART_Init 函数 LIN_UART_Init void LIN_UART_Init (uchar Bit_Length,uchar Stop_Bit,uchar Direction,uchar Ex_Clk_Select,uchar Ex_Clk_Input) 行为描述 输入参数 1 输入参数 2 输入参数 3 输入参数 4 输入参数 5 返回值 Bit_Length, 数据长度位 Stop_Bit, 设置结束位长度 Direction, LSB 先或 MSB 先 Ex_Clk_Select, 选择时钟源 Ex_Clk_Input, 启用时钟输入无 该函数为各种模式下的 LIN UART 设置公共参数 参数包括 : 通信数据长度位, 结束长度位, 传输方向选择位, 外部串行时钟源选择位, 和一对一外部时钟输入启用位 表 3-7 描述了 Bit_Length 的参数值 Bit_Length 表 3-7:Bit_Length 定义 Length_7_Bit 7 位长度数据 Length_8_Bit 8 位长度数据 表 3-8 描述了 Stop_Bit 的参数值 Stop_Bit 表 3-8:Stop_Bit 定义 Stop_1_Bit 1 位结束位 Stop_2_Bit 2 位结束位 MCU-AN-500026-Z-10 - 第 9 页
表 3-9 描述了 Direction 的参数值 Direction LSB MSB 表 3-9:Direction 定义 LSB 先 MSB 先 表 3-10 描述了 Ex_Clk_Select 的参数值 Ex_Clk_Select 表 3-10:Ex_Clk_Select 定义 Internal_Clock External_Clock 选择波特率发生器 选择外部串行源时钟 表 3-11 描述了 Ex_Clk_Input 的参数值 Ex_Clk_Input 表 3-11:Ex_Clk_Input 定义 Internal_Clk_Input External_Clk_Input 由波特率输入的外部时钟 由外部时钟直接输入的外部时钟 注意 : 在所有模式下, 如果 SMR_EXT =0, OTO 位固定为 0 在模式 2 下, 如果 ESCR_MS =1, 则 SMR_SCKE = 0, EXT = 1, OTO = 1 MCU-AN-500026-Z-10- 第 10 页
3.4 LIN_UART_Asyn_Mode0_Init 函数 表 3-12 描述了 LIN_UART_Asyn_Mode0_Init 函数 函数名功能函数原型行为描述输入参数 1 输入参数 2 返回值 表 3-12:LIN_UART_Asyn_Mode0_Init 函数 LIN_UART_Asyn_Mode0_Init void LIN_UART_Asyn_Mode0_Init (uchar Parity_Status,uchar Parity_Select) 设置奇偶性状态位, 并为 LIN UART 选择偶数或奇数奇偶性 Parity_Status, 奇偶性启用位 Parity_Select, 奇偶性选择位 无 该函数设置奇偶性状态位, 并为 LIN UART 选择偶数或奇数奇偶性 表 3-13 描述了 Parity_Status 的参数值 Parity_Status 表 3-13:Parity_Status 定义 Parity_Disable Parity_Enable 禁用奇偶性 启用奇偶性 表 3-14 描述了 Parity_Select 的参数值 表 3-14:Parity_Select 定义 Parity_Select Parity_Even Parity_Odd 偶数奇偶性 奇数奇偶性 MCU-AN-500026-Z-10 - 第 11 页
3.5 LIN_UART_Asyn_Mode1_Init 函数 表 3-15 描述了 LIN_UART_Asyn_Mode1_Init 函数 功能名功能原型行为描述输入参数返回值 表 3-15:LIN_UART_Asyn_Mode1_Init 函数 LIN_UART_Asyn_Mode1_Init void LIN_UART_Asyn_Mode1_Init (uchar Data_Type) 在异步多重处理器通信模式下设置传输数据类型 Data_Type, 设置传输地址或数据无 该函数在异步多重处理器通信模式下设置传输数据类型 表 3-16 描述了 Data_Type 的参数值 Data_Type 表 3-16:Data_Type 定义 Data_Format 数据帧 Address_Format 地址帧 3.6 LIN_UART_LIN_Init 函数 表 3-17 描述了 LIN_UART_LIN_Init 函数 功能名功能原型行为描述输入参数 1 输入参数 2 返回值 表 3-17:LIN_UART_LIN_Init 函数 LIN_UART_LIN_Init void LIN_UART_LIN_Init (uchar Break_bit,uchar Break_Gerention) 设置关于 LIN 模式的参数 Break_bit, Synch break 长度位 Break_Gerention,LIN synch break 生成位无 该函数设置关于 LIN 模式的参数 参数包括 Synch break 长度选择位和 LIN synch break 生成位 MCU-AN-500026-Z-10- 第 12 页
表 3-18 描述了 Break_bit 的参数值 表 3-18:Break_bit 定义 Break_bit Break_13_Bit Break_14_Bit Break_15_Bit Break_16_Bit 13 位 synch break 14 位 synch break 15 位 synch break 16 位 synch break 表 3-19 描述了 Break_Gerention 的参数值 表 3-19:Break_Gerention 定义 Break_Gerention Break_Close Break_Open 无效 LIN synch break 生成 3.7 LIN_UART_Syn_Init 函数表 3-20 描述了 LIN_UART_Syn_Init 函数 函数名函数原型行为描述输入参数 1 输入参数 2 输入参数 3 输入参数 4 输入参数 5 返回值 表 3-20:LIN_UART_Syn_Init 函数 LIN_UART_Syn_Init void LIN_UART_Syn_Init (uchar Sampling_Clock,uchar Continue_Clk, uchar Ss_Status,uchar Serial_Mode,uchar Clk_Delay); 设置 UART 在同步模式下操作的相关参数 Sampling_Clock, Synch break 上升或下降采样 Continue_Clk, 时钟输出启用位 Ss_Status, 开始 / 停止启用位 Serial_Mode, 串行时钟选择位 Clk_Delay, 延迟串行时钟 无 MCU-AN-500026-Z-10 - 第 13 页
该函数设置 LIN UART 在同步模式下操作的相关参数 参数包括 : 采样时钟沿选择位, 持续时钟输出启用位, 开始结束位, 串行时钟传输或接收端选择位, 以及串行时钟延迟启用位 表 3-21 描述了 Sampling_Clock 参数值 Sampling_Clock 表 3-21:Sampling_Clock 定义 Rising_Edge Falling_Edge 上升采样 下降采样 表 3-22 描述了 Continue_Clk 的参数值 Continue_Clk 表 3-22:Continue_Clk 定义 Clk_Out_Disable Clk_Out_Enable 禁用持续时钟输出 启用持续时钟输出 表 3-23 描述了 Ss_Status 的参数值 Ss_Status 表 3-23:Ss_Status 定义 Ss_Close Ss_Open 无开始 / 结束位 有开始 / 结束位 表 3-24 描述了 Serial_Mode 的参数值 Serial_Mode 表 3-24:Serial_Mode 定义 Transmit_Mode 发送端 ( 串行时钟生成 ) Receive_Mode 接收端 ( 外部串行时钟接收 ) 表 3-25 描述了 Clk_Delay 的参数值 Clk_Delay 表 3-25:Clk_Delay 定义 Delay_Clk_Disable Delay_Clk_Enable 禁用延迟串行时钟 启用延迟串行时钟 MCU-AN-500026-Z-10- 第 14 页
3.8 LIN_UART_Transmit_Control_Bit 函数 表 3-26 描述了 LIN_UART_Transmit_Control_Bit 函数 函数名函数原型行为描述输入参数返回值 表 3-26:LIN_UART_Transmit_Control_Bit 函数 LIN_UART_Transmit_Control_Bit void LIN_UART_Transmit_Control_Bit (uchar Status) 设置传输状态 Status, 启用或禁用传输数据无 该函数设置传输状态 参数 Status 启用或禁用传输数据 SOT 引脚被参数 Status 设置为串行数据输出引脚或者通用 I/O SCK 引脚在模式 0,1,3 中被设置为通用 I/O SCK 引脚在模式 2 中被 SCR_MS 状态设置为 LIN UART 时钟输出引脚或者输入引脚 表 3-27 描述了 Status 的参数值 状态 表 3-27:Status 定义 Transmit_Enable 启用传输 Transmit_Disable 禁用传输 3.9 LIN_UART_Receive_Control_Bit 函数 表 3-28 描述了 LIN_UART_Receive_Control_Bit 函数 函数名函数原型行为描述输入参数返回值 表 3-28:LIN_UART_Receive_Control_Bit 函数 LIN_UART_Receive_Control_Bit void LIN_UART_Receive_Control_Bit (uchar Status) 设置接收状态 Status, 启用或禁用接收数据无 该函数设置接收状态 参数 Status 启用或禁用接收数据 SIN 引脚被参数 Status 设置为串行数据输入引脚或者通用 I/O SCK 引脚在模式 0,1,3 中被设置为通用 I/O SCK 引脚在模式 2 中被 SCR_MS 状态设置为 LIN UART 时钟输出引脚或者输入引脚 MCU-AN-500026-Z-10 - 第 15 页
表 3-29 描述了 Status 的参数值 状态 表 3-29:Status 定义 Receive_Enable 启用接收 Receive_Disable 禁用接收 3.10 LIN_UART_Error_Handle 函数 表 3-30 描述了 LIN_UART_Error_Handle 函数 函数名函数原型行为描述输入参数返回值 表 3-30:LIN_UART_Error_Handle 函数 LIN_UART_Error_Handle uchar LIN_UART_Error_Handle (uchar Mode) 检查通信中的错误 Mode 检查错误以及清除错误标识位参见表 3-32 了解更多详细信息 该函数检查通信中的错误, 并且验证错误来自于奇偶性 溢出或者格式 它可以设置启用或禁用清除错误 表 3-31 描述了 Mode 的参数值 模式 表 3-31:Mode 定义 Check_Error 检查错误 Clear_Error 检查和清除错误标识位 MCU-AN-500026-Z-10- 第 16 页
表 3-32 描述了返回值 返回值 表 3-32:Return Value 定义 0x00 0x20 0x40 0x80 0x60 0xA0 0xC0 0xE0 无错误, 运行成功成帧错误溢出错误奇偶性错误溢出和帧错误奇偶性和帧错误奇偶性和溢出错误奇偶性 溢出和帧错误 3.11 Serial_IO_Direct_Access 函数 表 3-33 描述了 Serial_IO_Direct_Access 函数 函数名函数原型行为描述输入参数 1 输入参数 2 返回值 表 3-33:Serial_IO_Direct_Access 函数 Serial_IO_Direct_Access void Serial_IO_Direct_Access(uchar Serial_Access_Status,uchar Serial_Direct_Access) 检查通信中的错误 Serial_Access_Status, 访问使能位 Serial_Direct_Access, 直接访问位 无 该函数设置串行输出引脚直接访问状态以及 IO 引脚直接访问 MCU-AN-500026-Z-10 - 第 17 页
表 3-34 描述了 Serial_Access_Status 的参数值 Serial_Access_Status 表 3-34:Serial_Access_Status 定义 Dis_Serial_Access En_Serial_Access 禁用直接访问 启用直接访问 表 3-35 描述了 Serial_Direct_Access 的参数值 Serial_Direct_Access 表 3-35:Serial_Direct_Access 定义 Direct_Access_0 SOT 固定为 0 Direct_Access_1 SOT 固定为 1 注意 :SOPE (Serial_Access_Status) 和 SIOP (Serial_Direct_Access) 之间相互作用 SOPE SIOP 烧写至 SIOP 从 SIOP 读取 0 R/W 无效 ( 但保留烧写值 ) 返回 SIN 值 1 R/W 烧写 0 或 1 至 SOT 返回 SIN 值 1 RMW 读取 SOT 值, 烧写 0 或 1 3.12 UART_Sendbyte 函数 表 3-36 描述了 UART_Sendbyte 函数 函数名 表 3-36:UART_Sendbyte 函数 UART_Sendbyte 函数原型行为描述输入参数返回值 void UART_Sendbyte (uchar Data) 传输一个字节数据 Data, 发送一个字节数据无 该函数传输一个字节数据 参数 Data 表示传输数据 MCU-AN-500026-Z-10- 第 18 页
3.13 UART_Readbyte 函数 表 3-37 描述了 UART_Readbyte 函数 函数名 表 3-37:UART_Readbyte 函数 UART_Readbyte 函数原型行为描述输入参数返回值 uchar UART_Readbyte (void) 接收一个字节数据并返回此数据无返回接收的一个字节数据 该函数接收一个字节数据并返回此数据 3.14 LIN_UART_Write_Data 函数 表 3-38 描述了 LIN_UART_Write_Data 函数 函数名函数原型行为描述输入参数 1 输入参数 2 返回值 表 3-38:LIN_UART_Write_Data 函数 LIN_UART_Write_Data void LIN_UART_Write_Data (uchar Length,char *Data) 传输数据长度 Length, 通信数据长度, 传输数据长度 *Data, 传输数据, 传输指针类型数据无 注意 : *Data 是一个指针类型变量 传输数据可能是一个字节 一个列阵或者一段字符 该函数传输数据长度 参数长度表示传输数据的长度, 参数数据表示传输数据的指针变量 MCU-AN-500026-Z-10 - 第 19 页
3.15 LIN_UART_Read_Byte 函数 表 3-39 描述了 LIN_UART_Read_Data 函数 功能名函数原型行为描述输入参数 1 输入参数 2 表 3-39:LIN_UART_Read_Data 函数 LIN_UART_Read_Data void LIN_UART_Read_Data (uchar Length, char *Data) 读取数据长度 Length, 通信数据长度, 接收数据长度 *Data, 传输数据, 接收指针类型数据 例如, 定义 *Data 全局变量阵列或指针来接收数据 返回值 无 注意 : 输入参数 *Data, 定义 *Data 全局变量阵列或指针来接收数据 该函数读取数据长度 参数 Length 表示接收数据的长度, 参数 Data 表示接收数据的指针变 量 MCU-AN-500026-Z-10- 第 20 页
3.16 LIN_UART_Baudrate 函数 表 3-40 描述了 LIN_UART_Baudrate 函数 函数名 函数原型 行为描述 表 3-40:LIN_UART_Baudrate 函数 LIN_UART_Baudrate void LIN_UART_Baudrate (long Sys_Clock,uint Baudrate) 设置参数至 LIN UART 的波特率发生器寄存器 (BGR) 输入参数 1 Sys_Clock, 系统时钟, 系统工作时钟 ( 主时钟 ) 输入参数 2 返回值 Baudrate, 通信波特率 无 注意 : 1 系统时钟应选择外部主时钟 主内部 CR 时钟 外部副时钟和副内部 CR 时钟 参见第三章了解关于时钟取值范围的更多信息 2 波特率设定值 波特率正确计算的范围为 300bps-65535bps 建议用户根据下表输入典型值 表 3-41: 典型波特率 典型波特率 (bps) 300 600 1200 2400 4800 7200 9600 10417 19200 28800 38400 57600 该函数设置 LIN UART 的波特率发生器寄存器 (BGR) 的参数 MCU-AN-500026-Z-10 - 第 21 页
第 4 章用法演示 4 用法演示 本章介绍了一些使用时的实例 4.1 LIN UART 重启 用户使用以下函数时,LIN UART 重启重载计数并清除标志位 } LIN_UART_Restart (); 代码示例 void LIN_UART_REST (void) { LIN_UART_Restart (En_LIN_UART_Restart, En_LIN_UART_Clear); 4.2 LIN UART 在模式 0 下运行 ( 异步正常模式 ) LIN UART 在模式 0 下运行时 ( 异步正常模式 ), 用户可以使用以下函数 LIN_UART_Mode (); LIN_UART_Init (); LIN_UART_Baudrate (); LIN_UART_Asyn_Mode0_Init (); LIN_UART_Receive_Control_Bit (); LIN_UART_Transmit_Control_Bit (); 代码示例 void LIN_UART_Initailize (void) { LIN_UART_Mode (Mode_0); LIN_UART_Init (Length_8_Bit, Stop_1_Bit, LSB, Internal_Clock, Internal_Clk_Input); LIN_UART_Asyn_Mode0_Init (Parity_Enable, Parity_Even); LIN_UART_Baudrate (10000000, 9600); = 9600bps //MCLK = 10M, 波特率 LIN_UART_Transmit_Control_Bit (Transmit_Enable); MCU-AN-500026-Z-10- 第 22 页
} LIN/UART API V1.0 第 4 章用法演示 LIN_UART_Receive_Control_Bit (Receive_Enable); 4.3 LIN UART 在模式 1 下运行 ( 异步多重处理器模式 ) LINUART 在模式 1 下运行时, 用户可以使用以下函数 LIN_UART_Mode (); LIN_UART_Init (); LIN_UART_Baudrate (); LIN_UART_Asyn_Mode1_Init (); LIN_UART_Receive_Control_Bit (); LIN_UART_Transmit_Control_Bit (); 代码示例 void initialize (void) { LIN_UART_Mode (Mode_1); LIN_UART_Init (Length_8_Bit, Stop_1_Bit, LSB, Internal_Clock, Internal_Clk_Input); LIN_UART_Asyn_Mode1_Init (Data_Format); LIN_UART_Baudrate (10000000, 9600); = 9600bps //MCLK = 10M, 波特率 LIN_UART_Transmit_Control_Bit (Transmit_Enable); LIN_UART_Receive_Control_Bit (Receive_Enable); } 4.4 LIN UART 在模式 2 下运行 ( 同步模式 ) LIN UART 在模式 2 下运行时, 用户可以使用以下函数 LIN_UART_Mode (); LIN_UART_Init (); LIN_UART_Baudrate (); LIN_UART_Syn_Init (); LIN_UART_Receive_Control_Bit (); LIN_UART_Transmit_Control_Bit (); MCU-AN-500026-Z-10 - 第 23 页
第 4 章用法演示 代码示例 void initialize (void) { LIN_UART_Mode (Mode_2); LIN_UART_Init (Length_8_Bit, Stop_1_Bit, LSB, External_Clock, External_Clk_Input); LIN_UART_Syn_Init (Rising_Edge, Clk_Out_Enable, Ss_Open, Transmit_Mode, Delay_Clk_Disable, Internal_Clock, Internal_Clk_Input); LIN_UART_Baudrate (10000000, 9600); = 9600bps //MCLK = 10M, 波特率 LIN_UART_Transmit_Control_Bit (Transmit_Enable); LIN_UART_Receive_Control_Bit (Receive_Enable); } 4.5 LIN UART 在模式 3 下运行 (LIN 模式 ) LIN UART 在模式 3 下运行时, 用户可以使用以下函数 LIN_UART_Init (); LIN_UART_Baudrate (); LIN_UART_LIN_Init (); LIN_UART_Receive_Control_Bit (); LIN_UART_Transmit_Control_Bit (); 代码示例 void initialize (void) { LIN_UART_Init (Length_8_Bit, Stop_1_Bit, LSB, Internal_Clock, Internal_Clk_Input); LIN_UART_Baudrate (10000000, 9600); // 系统时钟 =10MHZ, 波特率 =9600 LIN_UART_Asyn_LIN_Init (Break_13_Bit, Break_Open); LIN_UART_Transmit_Control_Bit (Transmit_Enable); MCU-AN-500026-Z-10- 第 24 页
} LIN/UART API V1.0 第 4 章用法演示 LIN_UART_Receive_Control_Bit (Receive_Enable); 4.6 LIN UART 接收数据 使用以下函数让 L IN UART 接收数据 LIN_UART_Receive_Control_Bit (); LIN_UART_Read_Data (); 代码示例 void receive_data (void) { uchar *read_data = 0; LIN_UART_Receive_Control_Bit (Receive_Enable); LIN_UART_Read_Data (2, read_data); // 启用接收数据 // 读取 2 个字节 LIN_UART_Receive_Control_Bit (Receive_Disable); } 4.7 LIN UART 传输数据使用以下函数让 LIN UART 传输数据 LIN_UART_Transmit_Control_Bit (); LIN_UART_Write_Data (); 代码示例 void receive_data (void) { // 禁用接收数据 uchar transmit [] = {0, 1, 2, 3, 4, 5}; LIN_UART_Transmit_Control_Bit (Transmit_Enable); LIN_UART_Write_Data (6, transmit); // 启用发送数据 // 发送 6 个字节数据 MCU-AN-500026-Z-10 - 第 25 页
第 4 章用法演示 LIN_UART_Transmit_Control_Bit (Transmit_Disable); // 禁用发送数据 } 4.8 LIN UART 错误处理使用以下函数让 LIN UART 检查错误并读取错误类型 LIN_UART_Error_Handle (); 代码示例 void receive_data (void) { uchar error_value = 0; error_value = LIN_UART_Error_Handle (Check_Error); // 检查错误, 并返回错误值, 保持标记位 error_value = LIN_UART_Error_Handle (Clear_Error); } // 检查错误, 并返回错误值, 清除标记位 4.9 LIN UART 串行存取使用以下函数让 LIN UART 启用或禁用串行输出引脚直接存取和串行 IO 引脚直接存取 Serial_IO_Direct_Access (); 代码示例 void serial_access (void) { Serial_IO_Direct_Access (En_Serial_Access, Direct_Access_1); } MCU-AN-500026-Z-10- 第 26 页
第 5 章更多信息 5 更多信息 关于富士通半导体更多的产品信息, 请存取以下网站 : 英文版本地址 : http://www.fujitsu.com/cn/fsp/services/mcu/mb95/application_notes.html 中文版本地址 : http://www.fujitsu.com/cn/fss/services/mcu/mb95/application_notes.html MCU-AN-500026-Z-10 - 第 27 页
第 6 章附录 6 附录 表 2-1:LIN-UART 函数... 6 表 3-1:LIN_UART_Restart 函数... 7 表 3-2:LIN_UART_Reload 定义... 7 表 3-3:LIN_UART_Clear 定义... 7 表 3-4:LIN_UART_Mode 函数... 8 表 3-5:Mode 定义... 8 表 3-6:LIN_UART_Init 函数... 9 表 3-7:Bit_Length 定义... 9 表 3-8:Stop_Bit 定义... 9 表 3-9:Direction 定义... 10 表 3-10:Ex_Clk_Select 定义... 10 表 3-11:Ex_Clk_Input 定义... 10 表 3-12:LIN_UART_Asyn_Mode0_Init 函数... 11 表 3-13:Parity_Status 定义... 11 表 3-14:Parity_Select 定义... 11 表 3-15:LIN_UART_Asyn_Mode1_Init 函数... 12 表 3-16:Data_Type 定义... 12 表 3-17:LIN_UART_LIN_Init 函数... 12 表 3-18:Break_bit 定义... 13 表 3-19:Break_Gerention 定义... 13 表 3-20:LIN_UART_Syn_Init 函数... 13 表 3-21:Sampling_Clock 定义... 14 表 3-22:Continue_Clk 定义... 14 表 3-23:Ss_Status 定义... 14 表 3-24:Serial_Mode 定义... 14 MCU-AN-500026-Z-10- 第 28 页
第 6 章附录 表 3-25:Clk_Delay 定义... 14 表 3-26:LIN_UART_Transmit_Control_Bit 函数... 15 表 3-27:Status 定义... 15 表 3-28:LIN_UART_Receive_Control_Bit 函数... 15 表 3-29:Status 定义... 16 表 3-30:LIN_UART_Error_Handle 函数... 16 表 3-31:Mode 定义... 16 表 3-32:Return Value 定义... 17 表 3-33:Serial_IO_Direct_Access 函数... 17 表 3-34:Serial_Access_Status 定义... 18 表 3-35:Serial_Direct_Access 定义... 18 表 3-36:UART_Sendbyte 函数... 18 表 3-37:UART_Readbyte 函数... 19 表 3-38:LIN_UART_Write_Data 函数... 19 表 3-39:LIN_UART_Read_Data 函数... 20 表 3-40:LIN_UART_Baudrate 函数... 21 表 3-41: 典型波特率... 21 MCU-AN-500026-Z-10 - 第 29 页