资源简介
这个是我的一个车机项目中正在使用的LIN代码.MCU是STM32F103使用的是UCOS-II系统.这段代码包括LIN的从模式的初始化、接收、回应等。利用的是串口的LIN模式中断。带有很多中文注释。希望对你有用。
代码片段和文件信息
/*
**********************************************************************************************
* DVG02项目的LIN总线分析文件
* 文件名称: LIN.c
* 版本号 : V0.9
* 编写人 : Rock.Wu
* 编写日期:2012-08-20
**********************************************************************************************
*/
#define LIN_MODULE
/*******************************包含的文件******************************/
#include
#include
#include
/*******************************宏定义************************************/
#define BIT(AB) ((A>>B)&0x01)
#define LIN_RXCMD_BUF_SIZE 5 /*接受缓存大小10个报文*/
/*******************************数据类型定义***************************/
/*******************************变量定义*********************************/
enum LinState{
IDLE
SYNCH
ID_LEN
DATA_GET
CHECKSUM
};
enum LinErrState{
NO_ERR
SYNC_ERR
ID_ERR
CHKSUM_ERR
};
static INT8U AnalysePlus4 = IDLE;
#if (LIN_LEN_MODE == 0)
static const INT8U LIN_Len[4]={2 2 4 8};
#endif
static LINDataType TempLinData;
LINDataType LINRxMsgBuf[LIN_RXCMD_BUF_SIZE];
COMM_LIN_Q LIN_RxMsg;
extern CMD_LINType const LIN_CMD[LIN_ID_NUM];
static INT8U SendDataLen =0;
static INT8U LinSendBuf[9]={000000000};
/*******************************函数声明*********************************/
static void LIN_IRQ_Handler(void);
static void LIN_Rx_Analyse(INT8U LIN_Data);
/******************************************************************************
** 功能描述: 初始化UART4用于与LIN通讯
** 输 入:
** 全局变量: UART1Sem
** 调用模块:
** 编写人 : Rock.Wu
** 编写日期:2012-09-14
*******************************************************************************/
void BSP_LIN_Init(void)
{
USART_InitTypeDef USART_InitStructure;/*串口设置恢复默认参*/
GPIO_InitTypeDef GPIO_InitStructure;
INT8U ij;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOC &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC &GPIO_InitStructure);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4 ENABLE);
USART_InitStructure.USART_BaudRate = 19200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(UART4 &USART_InitStructure);
USART_LINBreakDetectLengthConfig(UART4 USART_LINBreakDe
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2552 2012-10-23 10:00 LIN.h
文件 12190 2012-10-23 18:23 LIN.c
- 上一篇:传智播客版俄罗斯方块源代码
- 下一篇:飞机订票系统delphi源代码
相关资源
- Linux下聊天室实现基于C
- linux mmc子系统分析
- 《linux编程技术》-实验3.doc
- linux实验报告.doc
- Linux期末试题.rar
- Xilinx ChipScope ICON/ILA/VIO 工程
- LinuxMP3播放器源码
- Buck变换器CCM工作模式分析
- linux C 俄罗斯方块源码
- 操作系统- SPOOLing输出模拟实验报告
-
Rali
nk_mt7620_MgmtRing_Full - 基于Skyline的三维场景网络发布技术分
- 基于贝叶斯的盲源反卷积十分完备R
- arp(地址解析协议)示范
- linux二进制分析随书完整源码
- Linux个人防火墙的设计与实现
- 基于linux的电子钢琴
- Linux网络设备分析
- linux下为SD卡烧写uboot.bin的原理与方法
- linux音频播放和停止
-
投影机PJli
nk协议中文版 - Spooling假脱机输入输出技术模拟
- Linux下使用Qt+V4L2测试UVC相机
- linux设备驱动程序开发 第四版 源码
- dnw_ubuntu
-
fr
amebuffer显示图片 - DM9008 linux 驱动
- linux c select简单
- Lua中调用C函数
- Linux mpu6050驱动程序
评论
共有 条评论