-
楼主这样做仅仅只是因为好看吗
-
stm8 自带I2C终于调试成功。
1,此次调试I2C受益多多,首先证明官方的那个写EEPROM的程序是对的。
2,这次调试TW8816开始调不通的原因是误以为寄存器地址是16位的(芯片公司的业务也是这么说的,我相信了),才让我看到的数据不同,但我想,有数据了,而且用WHILE等待的方法,程序跑通了,说明连上了从机。
3, I2C的GPIO不要配置,我看到有些同仁把GPIO配置了。
4,为了大家用好STM8的I2C,我把程序烤下来。
void IIC_Init(void)
{
UCHAR temp;
CLK_PCKENR1 |= 0x01;
I2C_FREQR |= 0x10; //输入外设时钟频率为1MHz
I2C_CR1 = 0x00; //禁止I2C外设
I2C_CCRH &= ~0xcf;
I2C_CCRL &= ~0xff;
I2C_TRISER = 0x11;
I2C_CCRL = 0x10;
I2C_CCRH = 0x00;
I2C_CR1 |= 0x01; //开启I2C外设
I2C_CR2 |= 0x04; //当前接收字节返回应答
I2C_CR2 &= 0x08;
I2C_OARL = 0x86; //自身地址
I2C_OARH = 0x40;
}
void Read_8816(UCHAR *pBuffer, UCHAR index, UCHAR NumByteToRead)
{
UCHAR temp;
while(I2C_SR3 & 0x02); //等待总线空闲
I2C_CR2 |= 0x01; //产生起始位
while(!(I2C_SR1 & 0x01)); //等待START发送完
I2C_DR = 0x8a; //发送8816器件地址
while(!(I2C_SR1 & 0x02)); //等特7位器件地址发送完
temp = I2C_SR1;
temp = I2C_SR3;
I2C_DR = (UCHAR)(index);
while(!(I2C_SR1 & 0x84));
I2C_CR2 |= 0x01; //产生重复起始位
while(!(I2C_SR1 & 0x01)); //等待START发送完
I2C_DR = 0x8b; //读
while(!(I2C_SR1 & 0x02)); //等特7位器件地址发送完
temp = I2C_SR1;
temp = I2C_SR3;
while(NumByteToRead) //要读几个字节
{
if(NumByteToRead == 1)
{
I2C_CR2 &= ~0x04; //不返回应答
I2C_CR2 |= 0x02; //产生停止位
}
if(I2C_SR1 & 0x40)
{
temp = I2C_SR1;
Buff[8-NumByteToRead]=I2C_DR;
*pBuffer = Buff[8-NumByteToRead];
pBuffer++;
NumByteToRead--;
}
}
I2C_CR2 |= 0x04;
I2C_CR2 &= ~0x08; //为下一次接收使能应答
}
-
2440的能力问题,换成2450及更强的CPU即可
-
MARK,
从事PPC系列CPU的研发,但我不是做交换机和路由器
帮顶下。
-
O(∩_∩)O
-
不能关闭电源,网上说的可以用IO口控制电源,点挂起的时候在OEMPOWEROFF关闭
-
引用 4 楼 domworldjohn 的回复:
要实现HIVE注册表保存,必须通过“开始”下面的关机按钮才能实现,如果是强硬关机是不会保存的。
我弄过2440和6410的板子,只发现“挂起”选项,从来没发现过“关机”选项,请问这个是怎么个情况?
-
图片在这里:
http://hi.eeworld.net/space-2080554-do-album-view-me.html
-
引用 3 楼 great_bug 的回复:
可能是CACHE导致的假改变. 你的是处理器可能是44B0,你的写操作缓存在CACHE里面,写后立即去读,好像是正确改变了,但实际上它的EMI只会发出RAM写,不会改变FLASH-ROM. 下次再访问又不对了.
高手呀!我用的是AXD仿真选的ARM920T!CACHE是什么?哪一部分的?我现在刚开头在学的一本叫做ARM体系的汇编语言!能不能给指点一下学习的路径呀!小弟当尽心回报!
-
引用 23 楼 lightsoure 的回复:
TCMCP播放器下播放AVI要设置下的把 设置成GDI? 然后播放文件中选上AVI格式~可以吗?试试
是GDI的 还要选择播放的格式吗?在哪里选择?没看到啊
-
试试这样:
TIM_TypeDef time1 __attribute__((at(TIM1_BASE)));
这样 time1 就是了.
-
当然可以实现。
本身WIFI就可以保证无线数据的传输;
另外你需要确认你的无线网路传输的性能,是否能保证你的图图像或视频的传输所需要的带宽。
有些WIFI模块的稳定传输的速率2-4Mbps,这就会限制的很多设计与实现,可能要求你的压缩做到更大等等。
所以楼主在具体实现时,先计算与评估下整体无线链路上的带宽与所需要支持的最小传输速率。
这样你才能选取比较适合的wifi模块 和对应的图像处理算法。
-
查询发送缓冲器为空以后,延时10ms再发送下一个命令。
-
不好意思!写错了,没注意!大侠们帮忙解决下吧!
-
帮你顶起,关注结果。
菜鸟来顶贴
-
没什么好办法,通过代码控制
-
引用 2 楼 amorous 的回复:
我是先SetWindowPos扩大父窗口,再画图,现在想想,可能还要把子窗口也一起扩大,下午再试试,谢谢大侠先
图在子窗口中变大,当然子窗口要变大
即使你只有在父窗口显示图片,图片变大要全部显示也要扩大父窗口
-
这个的话eboot是自己做的吗,还是官方的 如果是官方的 那应该不会有错误,如果自己做的话,怀疑gpio的初始化
-
看样子最近没人在搞bootloader吗??这个问题就没人知道了?顶下吧!
-
谢谢各位了,不过你们说的要用kitl连接到设备是指什么意思呀,难道不是在vs。net2005中的target菜单中的connectivity options中的debuger中选择KDStub吗?如果不是,请各位大侠说的详细点,小弟先谢谢了,或者给我一个详细的说明链接,谢谢。