历史上的今天
今天是:2024年11月25日(星期一)
2019年11月25日 | stm8硬件IIC的初始化和简单使用
2019-11-25 来源:eefocus
stm8是电子工程师常用的主流控制芯片,IIC是常用的一种串口协议,但是搞过51的人都知道要进行IIC通讯,必须要进行管脚模拟IIC。虽然很多工程师知道stm8有硬件IIC,但是很多工程师还是习惯模拟,一方面习惯使然,一方面stm8的硬件IIC确实有点别扭,网上查了查,竟然没有stm8硬件IIC的资料。
由于本人在做扬尘监测和自动气象站的项目中需要使用OLED显示器,该显示器为IIC接口,刚开始我也是用模拟,但是想着既然stm8公司做了硬件IIC,那么他就一定有他的长处,于是硬是在没有任何资料的情况下,拿下来stm8的硬件IIC。下面简单介绍一下。
首先要进行IIC的硬件初始化:
//硬件iic初始化
I2C_Init(400000, 0x00, I2C_DUTYCYCLE_2, I2C_ACK_NEXT, I2C_ADDMODE_7BIT, 16);
然后是OLED的写函数:
void OLED_Write(u8 CD,u8 dd)
{
I2C_GenerateSTART(ENABLE);
while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT));
I2C_Send7bitAddress(OLED_ADDRESS, I2C_DIRECTION_TX);
while(!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
I2C_SendData(CD);//命令字或者数据字,指明后面发送的是命令还是数据
while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_SendData(dd);//命令或者数据
while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_GenerateSTOP(ENABLE);
}
剩下的就简单了,在这里只是抛砖引玉,就不粘上全部程序了,太多,有需要的可以和我联系。
大家看看其实硬件IIC要远远比模拟的简单,就看你想不想弄了。
现在程序运行非常稳定可靠,在产品中已经使用3年,还没有出过任何差错,这点我是很满意的,看来毕竟是硬件,怎么都比软件可靠高效吧。
史海拾趣
|
http://www.51icjm.com http://www.51icjm.com.cn 北京致芯科技是一家专业从事芯片解密和单片机解密技术研究的公司,主要领域包括:单片机解密、专用IC解密、芯片解密,PLD解密,CPLD解密、DSP解密等单片机开发服务、鉴定芯片型号。 部分解密的品 ...… 查看全部问答> |
|
现在基于OR1200的SOPC用了太多外围的器件(如Flash、SDRAM),限制了它在中、小规模嵌入式系统中的应用。 有个想法不知是否可行? 1)将程序的代码和常量放在FPGA片外的NOR Flash芯片中,变量使用FPGA片内的SRAM,省掉SDRAM芯片。 2)OR1200有指 ...… 查看全部问答> |
|
今天调试反激电源的时候发现一个问题: 4*1W的LED通电电流不变350MA,压降13.2V;随着通电时间的增加,电压逐渐降低到12.5V; 这种情况是不是可以解释为 :是不是 LED的阀门电压时随着温度的身高而降低; … 查看全部问答> |
|
我想实现一个功能,就是用一个单片机(如:AVR的),一个flash闪存芯片(容量大的,类似U盘上的那种),我想让单片机通过I/O接口读取放在flash芯片上的命令数据(一个2进制的文件?),然后经过单片机的CPU处理,执行命令,完成指定动作。目的:( ...… 查看全部问答> |
|
这些汇编器分别是哪些公司出的?有啥区别?那个最好? 80C51单片机常用的汇编器有:ASM51.EXE、A8051.EXE、MCS51.EXE和A51.EXE… 查看全部问答> |
|
最近做一个语音播放的东东,8KHz/16bits PCM 语音信号经过一个16bitPCM DAC 以8KHz的sampling rate playback.发现语音失真很严重,还伴随有噪音.人的语音都变调了很难听.小弟以前没做过语音相关的,不知道怎么解决?还望各位帮忙.   ...… 查看全部问答> |




