资源简介

此为本人写的MC9S12XEP100的IIC模块的硬件驱动程序。具体参照博文https://blog.csdn.net/lin_strong/article/details/80327959,如后续有更新代码或勘误,请直接到博文里查阅,好像CSDN不允许更新/删除资源。其中包含了驱动代码以及示例代码,示例代码包括裸奔程序的示例以及uCOS-II下的示例。 注意,代码中的裸奔程序的那个示例直接运行时会跑飞,需要在IIC.h文件中的void near IIC_ISR(void);这个声明前加一个interrupt才行。 在运行基于uCOS的那个示例时又得把这个interrupt去掉才行。 暂时没有找到能够很方便地切换中断声明的方法。

资源截图

代码片段和文件信息

/*
*******************************************************************************************
*
*
*                                  IIC SUPPORT PACKAGE
*                                Freescale MC9S12XEP100
*                           飞思卡尔   MC9S12XEP100  IIC支持包
*
* File : IIC.c
* By   : Lin Shijun(http://blog.csdn.net/lin_strong)
* Date:  2018/05/15
* version: V1.1
* History: 2018/05/07  V1.0   the prototype
*          2018/05/15  V1.1   add the slave part of IIC.
*                             add the functions register so user can change the behaviour
*                             of the module.
* NOTE(s):  1. don‘t support 10-bit address for now.
*           2. this module is ISR-drived so you must point the IIC_ISR to the corresponding
*              address and enable interrupt.
*           3. note that the funcitons in this module is not thread-safe.
*********************************************************************************************
*/

/*
*********************************************************************************************************
*                                       INCLUDES
*********************************************************************************************************
*/

#include 
#include “IIC.h“

/*
*********************************************************************************************************
*                                         CONSTANT
*********************************************************************************************************
*/
#define ISR_ERR_NULL    0     // 正常处理完毕
#define ISR_SENDOK      1
#define ISR_ERR_NOACK   2
#define ISR_RECVOK      3
#define ISR_ERR_IBAL    4
/*
*********************************************************************************************************
*                                  LOCAL FUNCTION DECLARATION
*********************************************************************************************************
*/
// 发起启动条件,默认当前为从机模式,如总线忙则会返回错误,后面需要软件查看IBIF来看是否成功
// CalAddr:主叫地址(D0:R/W)
static unsigned char _IIC_StartCondtion(unsigned char CalAddr);

// 默认的等待函数无限等待
static unsigned char _IIC_Wait(unsigned long wCnt){ return TRUE;}

static unsigned char _sem;
// 默认使用的信号量函数
static unsigned char _IIC_SemPend(void){ 
  while(_sem == 0); // 等待中断发来结果
  _sem--;
  return TRUE;
}
static void _IIC_SemPost(void){ _sem++;}
static void _IIC_SemReset(void){ _sem = 0;}
/*
*********************************************************************************************************
*                                  LOCAL VARIABLE
*********************************************************************************************************
*/

static unsigned char* pTxRxBuf; // 指向主机使用的缓冲区
static unsigned short TxCnt;    // 等待发送的字节个数
#define _LastByteTransmitted() (TxCnt == 0)
#define _SendNextByte()        {TxCnt--; IIC0_IBDR = *pTxRxBuf++;}     // 发送下一个字节
static unsigned short

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       14030  2018-05-15 20:28  IIC.c
     文件        6768  2018-05-15 20:26  IIC.h
     目录           0  2018-05-15 20:18  IIC_Comm\
     目录           0  2018-05-15 20:18  IIC_Comm\bin\
     文件      417185  2018-05-15 20:18  IIC_Comm\bin\Project.abs
     文件        2320  2018-05-15 20:18  IIC_Comm\bin\Project.abs.glo
     文件        2306  2018-05-15 20:18  IIC_Comm\bin\Project.abs.s19
     文件      248112  2018-05-15 20:18  IIC_Comm\bin\Project.map
     文件         855  2018-05-15 12:53  IIC_Comm\C_Layout.hwl
     目录           0  2018-05-15 12:53  IIC_Comm\cmd\
     文件        1514  2018-05-15 12:53  IIC_Comm\cmd\TBDML_Erase_unsecure_hcs12xe.cmd
     文件          59  2018-05-15 12:53  IIC_Comm\cmd\TBDML_Postload.cmd
     文件          60  2018-05-15 12:53  IIC_Comm\cmd\TBDML_Preload.cmd
     文件          60  2018-05-15 12:53  IIC_Comm\cmd\TBDML_Reset.cmd
     文件          59  2018-05-15 12:53  IIC_Comm\cmd\TBDML_Startup.cmd
     文件          77  2018-05-15 12:53  IIC_Comm\cmd\TBDML_Vppoff.cmd
     文件          78  2018-05-15 12:53  IIC_Comm\cmd\TBDML_Vppon.cmd
     文件         161  2004-06-15 15:46  IIC_Comm\Default.mem
     文件       59809  2018-05-15 14:32  IIC_Comm\IIC_Comm.mcp
     目录           0  2018-05-15 12:53  IIC_Comm\IIC_Comm_Data\
     文件        4313  2018-05-15 20:18  IIC_Comm\IIC_Comm_Data\CWSettingsWindows.stg
     目录           0  2018-05-15 12:53  IIC_Comm\IIC_Comm_Data\Standard\
     目录           0  2018-05-15 16:01  IIC_Comm\IIC_Comm_Data\Standard\objectCode\
     文件       14293  2018-05-15 12:53  IIC_Comm\IIC_Comm_Data\Standard\objectCode\datapage.c.o
     文件       16840  2018-05-15 20:18  IIC_Comm\IIC_Comm_Data\Standard\objectCode\IIC.c.o
     文件       13384  2018-05-15 20:18  IIC_Comm\IIC_Comm_Data\Standard\objectCode\main.c.o
     文件      415520  2018-05-15 12:53  IIC_Comm\IIC_Comm_Data\Standard\objectCode\MC9S12XEP100.c.o
     文件        5921  2018-05-15 12:53  IIC_Comm\IIC_Comm_Data\Standard\objectCode\Start12.c.o
     文件     1577897  2018-05-15 20:18  IIC_Comm\IIC_Comm_Data\Standard\TargetDataWindows.tdt
     目录           0  2018-05-15 12:53  IIC_Comm\prm\
     文件       10141  2018-05-15 12:53  IIC_Comm\prm\burner.bbl
............此处省略152个文件信息

评论

共有 条评论