野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14453|回复: 2

关于UCOS II2.86中按键写数据到IIC中的出现的问题

[复制链接]
发表于 2015-11-30 18:30:53 | 显示全部楼层 |阅读模式
实验条件:野火ISO-MINI开发板
实验目的:通过KEY1(PC13)的EXIT中断,发送一个信号量给KEY2任务,然后写256byte数据到at24c02。
实验中的部分函数:
void Task_KEY_1(void *p_arg)
{
        (void)p_arg;                                                // 'p_arg' 2¢ûóDóÃμ½£¬·àÖ1±àòëÆ÷ìáê¾¾ˉ¸æ

        Key1_Sem = OSSemCreate(0);
        while (1)
        {
                OSSemPend(Key1_Sem , 0 , &Key1_Sem_err);
                //Beep(BeepON);
                //OSTimeDlyHMSM(0, 0,1,0);
                //Beep(BeepOFF);
                Key1_cnt ++;
                printf("Task_KEY_1 have run %d\r\n",Key1_cnt);
                sprintf ( LCD_testStr, "%d", Key1_cnt );
                ILI9341_DispString_EN ( 200, Line(2), LCD_testStr, macBACKGROUND, macRED );
                //I2C_EE_BufferRead(I2c_Buf_Read, EEP_Firstpage, 256);
                I2C_EE_BufferWrite( I2c_Buf_Write, EEP_Firstpage, 256);//*******************出现问题。

        }
}



void BSP_Init(void)
{
        SystemInit();               
        SysTick_init();               
       
        LED1_GPIO_Config();  
        LED2_GPIO_Config();
        LED3_GPIO_Config();  
        USART1_Config();               
        BEEP_GPIO_Config();  
        EXTI_Config_1();                
        EXTI_Config_2();               
       

        I2C_EE_Init();
        I2C_Test();//可以顺利地执行野火的测试函数


        LCD_Init();                       
  ILI9341_GramScan ( 1 );

        ILI9341_Clear ( 0, 0, 240, 320, macBACKGROUND);
  ILI9341_DispString_EN ( 0, Line(1), " This is a lcd demo to display ascii", macBACKGROUND, macRED );
}





void I2C_EE_Init(void)
{

  I2C_GPIO_Config();

  I2C_Mode_Configu();

/* ¸ù¾Yí·Îļti2c_ee.hÖDμĶ¨òåà′Ñ¡ÔñEEPROMòaD′èëμÄμØÖ· */
#ifdef macEEPROM_Block0_ADDRESS
  /* Ñ¡Ôñ EEPROM Block0 à′D′èë */
  EEPROM_ADDRESS = macEEPROM_Block0_ADDRESS;
#endif

#ifdef macEEPROM_Block1_ADDRESS  
        /* Ñ¡Ôñ EEPROM Block1 à′D′èë */
  EEPROM_ADDRESS = macEEPROM_Block1_ADDRESS;
#endif

#ifdef macEEPROM_Block2_ADDRESS  
        /* Ñ¡Ôñ EEPROM Block2 à′D′èë */
  EEPROM_ADDRESS = macEEPROM_Block2_ADDRESS;
#endif

#ifdef macEEPROM_Block3_ADDRESS  
        /* Ñ¡Ôñ EEPROM Block3 à′D′èë */
  EEPROM_ADDRESS = macEEPROM_Block3_ADDRESS;
#endif
}


问题:
当按键按下的时候,程序可以执行到写函数:I2C_EE_BufferWrite( I2c_Buf_Write, EEP_Firstpage, 256);
进入程序后,


第1步

第1步


第2步

第2步

第3步

第3步
一直死在这里,后面的软件也没有办法执行,请教大神指教一下,十分感谢!



回复

使用道具 举报

发表于 2015-11-30 19:14:03 | 显示全部楼层
帮顶,继续调试把
回复 支持 反对

使用道具 举报

发表于 2015-12-12 09:05:06 | 显示全部楼层
虽然不懂!加油
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-11 06:07 , Processed in 0.028021 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表