这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » (NRF24L01驱动成功)hanshuyujifen2的 ARM DIY进程贴

共191条 12/20 |‹ 10 11 12 13 14 15 ›| 跳转至
高工
2012-05-02 23:17:18     打赏
111楼
BUG查找中
LCD初始化之后,EEPROM就不好是了。。。。
我说我的代码没问题啊!

还不小心把SMBUS给初始化了,这样EEPROM悲剧地只读了。

同时,还有一个问题出来了。
前两天一直OS和HUI,添加了太多的代码。
以至于现在编译一次都很费劲。于是决定还是先裸奔吧,至少吧UCGUI干掉先不用。硬件驱动起来,赚点分再弄GUI

专家
2012-05-03 10:52:08     打赏
112楼
期待你的结果啊

高工
2012-05-03 18:14:41     打赏
113楼
赞一个

院士
2012-05-03 21:26:56     打赏
114楼
看来我是落后了。
抓紧时间了 ……

高工
2012-05-05 21:42:45     打赏
115楼
老王同学
俺出差,请假几天 五六天后继续
关键是坐五六天火车。郁闷

院士
2012-05-05 21:49:43     打赏
116楼
批了。新视频不给我一下?

高工
2012-05-05 21:52:13     打赏
117楼
还没录呢。
这几天忙着呢,没时间做实验,so没什么新东西可录的了

高工
2012-05-06 00:33:36     打赏
118楼
打的一本书带上   呵呵


高工
2012-05-06 00:57:40     打赏
119楼
LZ搞得不丑嘛

高工
2012-05-11 21:14:09     打赏
120楼
IIC EEPROM 记录开机次数

每次开机时候,从EEPROM中读出一个数值加一之后再写入原地址。
这样可以记录板子复位次数。不是很准,也凑合了。

使用之前需要一个初始化,在EEPROM中要使用的地址上写入00。
我一直难以理解IIC这个总线,代码是抄的。

调试时候的注意事项:
我调试的时候,改变了几次I2C_Ack_Disable/Enable这个东西。
当改成ENABLE的时候,CMU会一直等待ACK。可能是24C02 EEPROM把哪个线拉底了,CMU一直无法获取总线的控制权。复位的时候,24C02不会自动复位。
之后,即使你烧写进去对的程序的时候也读不出来数据。
板子断电再上电,可以解决这个问题。

IIC初始化代码:
//时钟&引脚初始化
void EEPROM_LowLevel_Init()
{
    GPIO_InitTypeDef  GPIO_InitStructure;

      /*!< I2C Periph clock enable */
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
   
      /*!<I2C_SCL_GPIO_CLK, I2C_SDA_GPIO_CLK Periph clock enable */
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //SMB、SCL、SDA都在GPIOB上
 
      /*!< Configure SCL(PB6) & SDA(PB7)*/
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
      GPIO_Init(GPIOB, &GPIO_InitStructure);

}

//IIC初始化
void EEPROM_Init()
{
    I2C_InitTypeDef   I2C_InitStructure;
   
    EEPROM_LowLevel_Init();
    I2C_DeInit(I2C1);   
    I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
    I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
    I2C_InitStructure.I2C_OwnAddress1 = 0x00;
    I2C_InitStructure.I2C_Ack = I2C_Ack_Disable;
    I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
    I2C_InitStructure.I2C_ClockSpeed = 100000;
    I2C_Init(I2C1, &I2C_InitStructure);

    I2C_Cmd(I2C1,ENABLE);   



至于别的读写,我还不是很理解  就不贴出来找抽了
惯例,图:

共191条 12/20 |‹ 10 11 12 13 14 15 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]