OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7856|回复: 30

新手套用IIC模似程序的问题很头痛请原子进来看看

[复制链接]

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
发表于 2014-4-5 21:50:56 | 显示全部楼层 |阅读模式
小弟我最近把原子大哥的IIC拟似程序拿来套用自已的倒数99秒程序想做24C02记忆
因为我想记忆的变量只有num所以没有使用原子大哥原本的数组记忆架构方式~!
原本AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);我把它修改成AT24CXX_Write(0,&num,1);---AT24CXX_Read(0,&num,1);
这样编译器没有报错可是在运行程序时好像函数完全没有发挥记忆功能
请问问大神们到底是不试函数没跟着修改成一个变量的问题吗还是别的地方有错呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-6 00:04:11 | 显示全部楼层
回复【楼主位】hack906447:
---------------------------------
用法没错,你看看24C02写入后,有没有延时10ms?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-6 08:22:50 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥你好我确实没有延时10ms现在马上补上来测试看看
写的部分要延时~读的话需要吗?
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-6 09:44:57 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥你好我今天试了很多简单的程序套用原本的函数去做记忆跟读取
但是读出来的num值应该是0-99但都是5 !
试了很久感觉是不是函数要修改?
函数的部分我完全使用原子哥的只有调用时没使用数组来调用记忆跟读取
这样会不会因为不是使用数组所以没办法跟函数内容匹配? 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-6 10:09:59 | 显示全部楼层
回复【3楼】hack906447:
---------------------------------
读不需要。
你的iic代码是移植的,还是直接用我们的?
如果是移植的,考虑下是不是移植没弄好?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-6 10:29:10 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥你好代码部分都是用你们的
只有原本AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);我把它修改成AT24CXX_Write(0,&num,1);---AT24CXX_Read(0,&num,1);
没有使用你们的SIZE变量这样会不会跟你们函数定义的不同而有问题
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-6 18:54:06 | 显示全部楼层
回复【6楼】hack906447:
---------------------------------
和size无关....
代码移植你弄对 了么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-6 20:13:40 | 显示全部楼层
回复【7楼】 正点原子 :
---------------------------------
myiic.c和24CXX.C的函数库都是用原子哥你的完全没有修改
主程序只有调用这两句来用
AT24CXX_Write(0,&num,1);
AT24CXX_Read(0,&num,1);

只有修改GPIO对应脚位
以下是我修改的部分麻烦原子哥查阅~

void IIC_Init(void)
{      
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_14|GPIO_Pin_15);  //PB10,PB11 输出高
}
//IO方向设置
#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
#define SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;}

//IO操作函数  
#define IIC_SCL    PCout(14) //SCL
#define IIC_SDA    PCout(15) //SDA  
#define READ_SDA   PCin(15)  //输入SDA 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-7 00:26:33 | 显示全部楼层
//IO方向设置
#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
#define SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;}

改为:

//IO方向设置
#define SDA_IN()  {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH|=8<<28;}
#define SDA_OUT() {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH|=3<<28;}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-7 08:26:31 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
原子哥为什么是28?
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-7 10:05:48 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
Pin 15不是应该为8<<16
3<<16?
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-7 14:04:28 | 显示全部楼层
回复【11楼】hack906447:
---------------------------------
对不起看表后会了
我想应该是位置错了
原子哥你的24c02位置是a0
A0~A2都置0我的是A0~A2都置1
所以位置是ae对吧?
现在我的问题是位置要改成ae函数中有那些要改?
ae位置大小写有没有关係?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-7 14:49:13 | 显示全部楼层
回复【12楼】hack906447:
---------------------------------
那你要改地址了...
是要改成AE了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-7 16:05:56 | 显示全部楼层
回复【13楼】正点原子:
-------------------------------
是不是函数中a0改成ae
A1改成af?
原子哥位置的大小写有关係吗?
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-7 19:42:59 | 显示全部楼层
回复【14楼】hack906447:
---------------------------------
原子哥依照你说的全修改了还是不行
函数部分要修改的位置有哪几行?
A0是不是改成AE
A1是不是改成AF?
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-7 19:45:38 | 显示全部楼层
 我将我有修改的部分贴出来拜托原子哥帮忙看看
有修改的为红色
void IIC_Init(void)
{      
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_14|GPIO_Pin_15);  //PB10,PB11 输出高
}

//IO方向设置
#define SDA_IN()  {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH|=8<<28;}
#define SDA_OUT() {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH|=3<<28;}

//IO操作函数  
#define IIC_SCL    PCout(14) //SCL
#define IIC_SDA    PCout(15) //SDA  
#define READ_SDA   PCin(15)  //输入SDA

//初始化IIC接口
void AT24CXX_Init(void)
{
IIC_Init();
}
//在AT24CXX指定地址读出一个数据
//ReadAddr:开始读数的地址  
//返回值  :读到的数据
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{   
u8 temp=0;          
    IIC_Start();  
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0Xae);    //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//发送高地址
IIC_Wait_Ack();  
}else IIC_Send_Byte(0Xae+((ReadAddr/256)<<1));   //发送器件地址0XA0,写数据   

IIC_Wait_Ack();
    IIC_Send_Byte(ReadAddr%256);   //发送低地址
IIC_Wait_Ack();     
IIC_Start();        
IIC_Send_Byte(0Xaf);           //进入接收模式    
IIC_Wait_Ack();  
    temp=IIC_Read_Byte(0);    
    IIC_Stop();//产生一个停止条件     
return temp;
}
//在AT24CXX指定地址写入一个数据
//WriteAddr  :写入数据的目的地址    
//DataToWrite:要写入的数据
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{              
    IIC_Start();  
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0Xae);     //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//发送高地址
  }else
{
IIC_Send_Byte(0Xae+((WriteAddr/256)<<1));   //发送器件地址0XA0,写数据
}
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-7 21:31:09 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
原子哥又发现新问题了
原子哥你要我修改下面两句
//IO方向设置
#define SDA_IN()  {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH|=8<<28;}
#define SDA_OUT() {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH|=3<<28;}
结果编译时出现错误
compiling myiic.c...
..\HARDWARE\IIC\myiic.c(57): warning:  #61-D: integer operation result is out of range
..\HARDWARE\IIC\myiic.c(57): warning:  #68-D: integer conversion resulted in a change of sign
..\HARDWARE\IIC\myiic.c(122): warning:  #61-D: integer operation result is out of range
..\HARDWARE\IIC\myiic.c(122): warning:  #68-D: integer conversion resulted in a change of sign
内容网上查好像是说
编译器默认signed int即32位有符号整数类型,而1<<31实际为0x80000000,这样就有可能改写了符号位(最高位)
原子哥多請你幫忙看看
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-4-7
在线时间
1 小时
发表于 2014-4-7 21:51:27 | 显示全部楼层
回复【17楼】hack906447:
---------------------------------
加个(u32)在8<<28;
前面就可以了。
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 06:36:44 | 显示全部楼层
回复【18楼】liujun6037:
---------------------------------
已经增加了随然不报错但还是没办法运行24C02
想问问器件位置大小写是否有差异
要更改原子函数部分是不是有我漏掉的部分?
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 06:41:56 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
原子哥我贴上完整代码求助方法都试过了只好打扰你了
以下救世主程序的代码其他的都是用你的IIC.c.h和24CXX.c.h修改IO的部分前面已经贴出来了其他的都一样拜托了


#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"
#include "24cxx.h" 
/*------------------------------------------------------------
                           端口定义
------------------------------------------------------------*/
#define LATCH1 (1<<8)// 
#define LATCH2 (1<<9)// 
 
      
#define LATCH1_SET(x) GPIOB->ODR=(GPIOB->ODR&~LATCH1)|(x ? LATCH1:0)
#define LATCH2_SET(x) GPIOB->ODR=(GPIOB->ODR&~LATCH2)|(x ? LATCH2:0)     
#define DataPort(x)   GPIOA->ODR=(GPIOA->ODR&0xffffff00)|(x&0xff);//定义8位数据操作端口

#define KEY0  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)//读取启动按键
#define KEY1  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)//读取按键1
#define KEY2  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)//读取按键2 

unsigned char const dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//
unsigned char const dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//
unsigned char TempData[8]; //存储显示值的全局变量
void Display(unsigned char FirstBit,unsigned char Num);

void TIM3_Int_Init(u16 arr,u16 psc);
unsigned char num=0;
/*------------------------------------------------
                    主函数
------------------------------------------------*/
int main()
{
unsigned int ai=0;
unsigned int key_press_num;
unsigned int i=0;
unsigned int j=0;



GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE);  //使能GPIOD
GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
    
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_ResetBits(GPIOB,GPIO_Pin_10);

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;//控制KEY
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
  GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB11-12
     

  AFIO->MAPR = (0x00FFFFFF & AFIO->MAPR)|0x04000000;          //关闭JTAG  

    delay_init();
    NVIC_Configuration();   
    TIM3_Int_Init(9,719);
AT24CXX_Read(0,&num,1);
 while(1)
  {    

if(KEY0==0)
 {
          while(1)
           {
i++;
          if(i==2000000)
 {
        i=0;
          if(num>0)//用于显示0~99
  {
            num--;
    }
if(num==0)
{
 num=ai;//必须在倒数值为0时才可给回归指令
break;
}
}
}
}
       

  if(!KEY1)  
    {
 delay_us(600); 
     if(!KEY1)     
   {
 delay_us(300); 
   while(!KEY1)
    {
key_press_num++;
        delay_ms(1);            
if(key_press_num==10000) 
  {
   key_press_num=0;     
                               
           while(!KEY1)     
       {
 j++;
 if(j==50000)
 {
 j=0;
        if(num<99)   
              num++;
      TempData[0]=dofly_DuanMa[num/10];  
            TempData[1]=dofly_DuanMa[num%10];
              delay_us(200); 
}
}
    }
  }
      key_press_num=0;
   if(num<99)   
          num++;
 AT24CXX_Write(0,&num,1);
 delay_ms(10); 
         ai=num;
   }
}

 if(!KEY2)  
    {
 delay_us(600); 
     if(!KEY2) 
   {
 delay_us(300); 
   while(!KEY2)
    {
key_press_num++;
        delay_ms(1);
if(key_press_num==10000) 
  {
   key_press_num=0;
           while(!KEY2)
       {
   j++;
 if(j==50000)
 {
 j=0;
        if(num>0)  
               num--;
      TempData[0]=dofly_DuanMa[num/10];  
            TempData[1]=dofly_DuanMa[num%10];
              delay_us(200); 
}
}
    }
}
      key_press_num=0;
       if(num>0)  
          num--; 
  AT24CXX_Write(0,&num,1);
      delay_ms(10); 
            ai=num;
   }
}  
 }
}

void Display(unsigned char FirstBit,unsigned char Num)
{
      unsigned char i;
  
  for(i=0;i<Num;i++)
   { 
       DataPort(0);   //清空数据,防止有交替重影
       LATCH1_SET(1);     //段锁存
       LATCH1_SET(0);

       DataPort(dofly_WeiMa[i+FirstBit]); //个位数码
       LATCH2_SET(1);     //锁存
       LATCH2_SET(0);

       DataPort(TempData); //段码
       LATCH1_SET(1);     //锁存
       LATCH1_SET(0);
 
 delay_us(20);//调整数码管十位数的明暗度(太高会造成显示不跳动)
      }
}
void TIM3_Int_Init(u16 arr,u16 psc)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); 


TIM_TimeBaseStructure.TIM_Period = arr; 
TIM_TimeBaseStructure.TIM_Prescaler =psc; 
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; 
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 
 
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); 


NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 
NVIC_Init(&NVIC_InitStructure);  


TIM_Cmd(TIM3, ENABLE);    
}

void TIM3_IRQHandler(void)   
{

if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  
     TempData[0]=dofly_DuanMa[num/10];                       
    TempData[1]=dofly_DuanMa[num%10];
Display(2,2);
}
}


回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 07:50:41 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
原子哥你是不是有简单的测试24c02代码可供测试?我用51测试硬件都正常现在怀疑是调用上有问题
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-8 09:17:06 | 显示全部楼层
回复【21楼】hack906447:
---------------------------------
我们开发板也是用的24C02,你参考我们开发板的例程就可以了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 09:23:46 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
可是原子哥你的是触屏上显示我的是数码管
且我只用一个变量其余的都是用你代码了
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 09:47:47 | 显示全部楼层
AT24CXX_Write(0,&num,1);原子我想知道套用你的程序在调用上用这句话有没有问题
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-8 10:06:53 | 显示全部楼层
没问题
这句话是正确的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 10:30:05 | 显示全部楼层
回复【25楼】正点原子:
---------------------------------
那器件位置0xae大小写有差异吗
8<<28出现错误加上(u32)是正确的吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-8 11:48:00 | 显示全部楼层
回复【26楼】hack906447:
---------------------------------
和大小写,没关系。
加u32是正确的,我也用过,你自己也可以仿真,看看IO口的寄存器状态。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 11:56:09 | 显示全部楼层
回复【27楼】正点原子:
---------------------------------
抱歉原子哥我只能分析问题在那问题多请见谅
器件位置要改那几行?
是不是4个A0改成ae
1个A1改成af?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-8 12:01:02 | 显示全部楼层
回复【28楼】hack906447:
---------------------------------
是的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 12:21:45 | 显示全部楼层
那我位置改成0xae
AT24CXX_Write(0,&num,1);
也需要修改吗
有没有简单的程序可以测试24c02
我读出来是乱值所以写的部份并没有功能
回复 支持 反对

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2014-4-8 13:49:00 | 显示全部楼层
有需要在修改吗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 18:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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