历史上的今天
今天是:2025年02月20日(星期四)
2020年02月20日 | STM8S105K6T6单片机的IIC配置问题
2020-02-20 来源:eefocus
最近在用MCP3421,需要用到IIC接口。MCU用的是STM8S105K6T6。使用MCU内部的IIC外设,这个接口配置折腾一下午,遇到了很坑爹的事情。我使用的是寄存器开发的,该设置了感觉都设置好了,就是不能工作。后来以为没配置好,又用库函数来开发,妈的 ,还是不能工作。后来在群里的一位大神的指导下成功的调通了IIC。
闲话有点多,毕竟是我第一次开通博客来写博客的,心情不免有些激动。现在把经验分享给不知道的小伙伴们,少走些弯路。
在使用STM8S105K6T6的IIC前,必须先通过STVP这个软件来进行配置。

这三个步骤是最重要的,当然还需要选择单片机的下载模式,型号什么的,这个不是本文的重点。特别要强调一点,步骤二中
一定要选择第二功能,SCL,SDA。 这个配置好了,然后点击下载就OK了,
现给出寄存器版的IIC初始化代码:
void IIC_Init(void)
{
I2C_CR1 =0x00; //禁止iic
I2C_FREQR = 0x10; //输入时钟频率16MHz
I2C_TRISER= 0x11; //0x10 + 1
I2C_CCRL = 0x50; //16M / 100K / 2
I2C_CCRH = 0x00; //标准模式
I2C_CR1 |= 0x01; //使能iic外设
I2C_OARH = 0x40; //七位地址模式
I2C_OARL = 0xa0; //自身地址0xa0
}
读写代码就简单了,针对不同的器件有略微的变化,但通信协议还是标准的IIC。这里就不贴了。因为我觉得最重要的就是初始化的配置。这个没搞好,后面的都是白搞的。
史海拾趣
|
CPLD在多路高速同步数据采集系统中的应用 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)是在传统的PAL、GAL基础上发展而来的,具有多种工作方式和高集成、高速、高可靠性等明显的特点,在超高速领域和实时测控方面有非常广泛的应 ...… 查看全部问答> |
|
IIC-China 2009参展商致胜秘诀—完善的营销规划 展览会是竞争激烈的营销活动。展商在会场中面对的竞争对手少则数家、多则数十家,因此要获得最佳参展效果, 拿到订单, 就必须在展前仔细规划营销策略。 展览会的本质是整合各种资源的一种营销方式。 ...… 查看全部问答> |
|
文件的快捷方式,我知道要配置bib,要配置dat文件,但我有个疑问,lnk文件的一开始那个号是什么意思?有什么讲究嘛? 例如,我有个exe文件叫做test.exe,我想作个lnk,我这样编辑lnk:10#\\windows\\test.exe,这个前面的10有没有什么讲究? 第 ...… 查看全部问答> |
|
EP-51289.RV3.txt :02000002850077 :10000000FAFCB8A90F8ED0BC1027B840008EC0B83B :100010008AAB8ED8BE0000BF0000B9EEEC2BCFD16A 我不知道着个是什么请提供给我详细点的信息… 查看全部问答> |
|
在51的汇编里面,可以通过DB定义表,编译器把表存在代码区,程序里可以通过DPTR查表访问表的内容。在C51里,可以用如下格式:unsigned char code pp[]={0x00,......},编译器会把这些内容放在代码区(一般是ROM/EROM等),然后可以通过指针来访问。但 ...… 查看全部问答> |
|
NIOS-II+Ucos-ii+lcd12864调试很几天,还是不明白,所以请求大家一起帮帮忙,谢谢了 我的系统时钟是100M现在有时可以显示,但有时又不能显示,显示还乱码软件代码如下: //检测忙void Check_Busy(void){ CLR_RS; SET_RW; & ...… 查看全部问答> |




