/*==========================================================================================================
本源程序文件内部使用的一些操作指令的宏定义
==========================================================================================================*/
/*------------------------------------------------------------------------------------------------
输入/输出端口和引脚宏定义:(注:下列这些定义用以简化宏函数参数字符。)
------------------------------------------------------------------------------------------------*/
#define MFH_PIN_CFG_INPU_I2cScl MFH_PIN_CFG_INPU(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_INHZ_I2cScl MFH_PIN_CFG_INHZ(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_OOUT_I2cScl MFH_PIN_CFG_OOUT(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_OUTH_I2cScl MFH_PIN_CFG_OUTH(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_OUTL_I2cScl MFH_PIN_CFG_OUTL(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_OUT_SETH_I2cScl MFH_PIN_OUT_SETH(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_OUT_CLRL_I2cScl MFH_PIN_OUT_CLRL(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_IN_STATE_I2cScl MFH_PIN_IN_STATE(cDdrI2cScl, cPurI2cScl, cCirI2cScl, cOdrI2cScl, cIdrI2cScl, cBitI2cScl)
#define MFH_PIN_CFG_INPU_I2cSda MFH_PIN_CFG_INPU(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_INHZ_I2cSda MFH_PIN_CFG_INHZ(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_OOUT_I2cSda MFH_PIN_CFG_OOUT(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_OUTH_I2cSda MFH_PIN_CFG_OUTH(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_CFG_OUTL_I2cSda MFH_PIN_CFG_OUTL(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_OUT_SETH_I2cSda MFH_PIN_OUT_SETH(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_OUT_CLRL_I2cSda MFH_PIN_OUT_CLRL(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
#define MFH_PIN_IN_STATE_I2cSda MFH_PIN_IN_STATE(cDdrI2cSda, cPurI2cSda, cCirI2cSda, cOdrI2cSda, cIdrI2cSda, cBitI2cSda)
/*------------------------------------------------------------------------------------------------
MFHI2cInnEventReg( ) --------- 输入I2C总线的事件和状态寄存器值
MFHI2cChkEventReg( ) --------- 检查I2C总线事件状态寄存器中的事件状态值
MFHI2cInnEventMem( ) --------- 输入I2C总线的事件和状态存储器值
MFHI2cChkEventMem( ) --------- 检查I2C总线事件状态存储器中的事件状态值
------------------------------------------------------------------------------------------------*/
#if (defined(_IAR_EW_AVR_))
#define MFHI2cInnEventMem( ) gucvI2cEvent = TWSR
#define MFHI2cChkEventMem( ) (gucvI2cEvent & cI2cTwsrMask)
#elif ((defined(_IAR_EW_MCS51_)) || (defined(_KEIL_UV_MCS51_)))
#elif ( defined(_IAR_EW_STM8_)
|| defined(_COSMIC_STM8_) ) // “......_STM8 编译器”条件编译开始
#ifdef _USE_STM8_FWLIB_ // “使用 STM8 FWLib 的库文件”条件编译开始
#else // “_USE_STM8_FWLIB_”
#define MFHI2cInnEventMem( ) NOTHING
//#define MFHI2cInnEventMem( ) gucvI2cEvent = temp
#define MFHI2cChkEventMem( ) (gucvI2cEvent & cI2cEvtSr2Mask)
#endif // “_USE_STM8_FWLIB_”
#else
#error 错误:
#endif // “PreMcuIs__......”
/*------------------------------------------------------------------------------------------------
MFHI2cBusModSwRst( ) --------- 软件复位I2C模块,释放I2C总线
MFHI2cFlgEventClr( ) --------- 清0I2C总线事件中断标志位
MFHI2cIntEventClr( ) --------- 进入中断后,在中断句柄中,清0I2C总线事件中断标志位(在中断服务程序中)
MFHI2cIntEventChk( ) --------- 检查I2C总线事件中断状态值
MFHI2cIntEventOnn( ) --------- 使能I2C总线事件全部中断
MFHI2cIntEventOne( ) --------- 使能I2C总线事件中断、错误中断,禁止缓冲中断
MFHI2cIntEventOff( ) --------- 禁止I2C总线事件全部中断
MFHI2cBusErrorChk( ) --------- 检查I2C总线在收发过程中存在的全部错误状态值
MFHI2cBusErrorClr( ) --------- 清0I2C总线在收发过程中存在的全部错误标记
MFHI2cBusNackStar( ) --------- 发出 START 信号(起始条件),没有 ACK 脉冲
MFHI2cBusNackReps( ) --------- 发出重复 START 信号(重新开始条件),没有 ACK 脉冲
MFHI2cBusNackStop( ) --------- 发出 STOP 信号(结束条件),没有 ACK 脉冲
MFHI2cBusRdataAck( ) --------- 在接收之后发出 ACK 脉冲
MFHI2cBusRdatNack( ) --------- 在接收之后发出 NOT ACK
------------------------------------------------------------------------------------------------*/
#if (defined(_IAR_EW_AVR_))
#define MFHI2cBusModSwRst( ) NOTHING
#define MFHI2cFlgEventClr( ) NOTHING
#define MFHI2cIntEventClr( ) TWCR = (1<
(1<
(0<
(0<
(0<
#define MFHI2cIntEventChk( ) NOTHING
#define MFHI2cIntEventOnn( ) NOTHING
#define MFHI2cIntEventOne( ) NOTHING
#define MFHI2cIntEventOff( ) NOTHING
#define MFHI2cBusErrorChk( ) NOTHING
#define MFHI2cBusErrorClr( ) NOTHING
#define MFHI2cBusNackStar( ) TWCR = (1<
(1<
(0<
(1<
(0<
#define MFHI2cBusNackReps( ) TWCR = (1<
(1<
(0<
(1<
(0<
#define MFHI2cBusNackStop( ) TWCR = (1<
(0<
(0<
(0<
(0<
#define MFHI2cBusRdataAck( ) TWCR = (1<
(1<
(1<
(0<
(0<
#define MFHI2cBusRdatNack( ) TWCR = (1<
(1<
(0<
(0<
(0<
#elif ((defined(_IAR_EW_MCS51_)) || (defined(_KEIL_UV_MCS51_)))
#elif ( defined(_IAR_EW_STM8_)
|| defined(_COSMIC_STM8_) ) // “......_STM8 编译器”条件编译开始
#ifdef _USE_STM8_FWLIB_ // “使用 STM8 FWLib 的库文件”条件编译开始
#else // “_USE_STM8_FWLIB_”
上一篇:STM8硬件I2C事件锁死
下一篇:stm8s跳出中断程序c语言,STM8 UART接收中断程序
推荐阅读
史海拾趣
2020年,新冠疫情对全球经济造成了巨大冲击,半导体行业也受到了严重影响。面对这一挑战,世纪金光迅速调整战略,加强内部管理,优化生产流程,确保生产线的稳定运行。同时,公司积极寻找新的市场机遇,加大在新能源汽车、光伏等领域的投入力度。在抗击疫情的过程中,世纪金光不仅保持了业务的稳定增长,还成功抓住了新的发展机遇,为公司的未来发展奠定了坚实基础。
HTC Korea(前身为TAEJIN Technology Co., Ltd.)成立于2000年,最初以Linear IC产品的研发及生产为主,逐步在通信、消费类及PC等应用领域稳步发展。然而,公司的真正突破发生在2006年,这一年HTC决定从OEM代工厂转型为自主品牌制造商。这一转型并非易事,面临着合作伙伴转变为竞争对手的风险,导致股价一度暴跌。但HTC坚持下来,推出了HTC Touch和HTC Diamond等经典机型,成功吸引了市场的关注,股价逐渐回升,最终奠定了其在手机市场的重要地位。
HTC Korea自成立以来,一直致力于国际化布局,与全球各地的合作伙伴建立了良好的关系。目前,HTC的产品已在欧美、亚泰地区大量销售,与各地的电信运营商、芯片制造商等保持了紧密的合作关系。这种广泛的合作伙伴网络为HTC提供了强大的市场支持和技术保障,推动了其在全球范围内的快速发展。同时,HTC还通过了ISO9001及ISO14001质量体系认证,以系统、人性化的管理努力成为行业的佼佼者。
随着物联网市场的快速发展,Telit作为全球领先的物联网模组和平台提供商,开始寻求通过并购来增强自身在低功耗WiFi技术领域的实力。2017年,Telit宣布收购GainSpan,这一举措不仅丰富了Telit的无线模组产品线,还进一步巩固了其在物联网市场的领先地位。GainSpan的技术与Telit的平台和服务相结合,为客户提供了更加全面的物联网解决方案。
随着国内市场的逐渐饱和,Baneasa SA开始将目光投向海外市场。公司制定了国际化的发展战略,通过在欧美等发达国家设立分支机构、参加国际展会等方式积极开拓国际市场。这些努力使得Baneasa SA的产品逐渐在国际市场上占据了一席之地,公司的业务范围也得到了进一步扩大。
最近研究U盘过滤驱动,想先读取U盘的扇区,但是一直读不到。从网上找到几个读扇区的代码,也不管用,后来发现是因为重路了。因为我将过滤驱动挂在注册表HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\{36FC9E60-C465-11CF-8056- ...… 查看全部问答∨ |
|
请教 wince 断点调试,为什么设置的断点不停? 以前同样的断点就有效,现在不知道改了哪里,断点都不停了? 请教 wince 断点调试时,为什么设置的断点不停? 以前同样的断点有效,现在不知道改了哪里,断点都不停了?… 查看全部问答∨ |
在组件里添加组件“Include_VX_TRADITIONAL_SCHEDULER"后,内核采用的内核调度策略为传统的调度策略。 在kernel program guide里有如下描述: The vxworks traditional scheduler provide priority_based preemptive scheduling as well as th ...… 查看全部问答∨ |
这不是什么高手大作,只是个扫盲帖,适用于不了解电感特性,却又对升器器感兴趣的同志们.高手免入.不知道要发这个贴子到哪个版块,版主们帮忙处理下. 为了节省篇幅,很多原理性的知识我点到为止,以空间换时间,有兴趣深入了解的可以查阅相关资料和提问. ...… 查看全部问答∨ |
|
我用的LPC4337,我想使用在线升级功能,于是弄了三个工程。 BOOTSEL工程:起始地址0x1A000000 大小0x2000 BOOT 工程:起始地址0x1A002000 大小0x6000 IAP 工程:起始地址0x1A008200 大小0x17E00 BOOTSEL功能:选择 ...… 查看全部问答∨ |
第一次打开mcp文件以后关掉生成了一个old.mcp的文件 之后再打开的时候mcp文件打开以后就会乱码 只能打开old.mcp的文件了 … 查看全部问答∨ |