返回该小组首页 回复主题
hzfzh

hzfzh

小组等级:     E币:127  (E币换礼)

#1楼主:两个问题

文章发表于:2008-09-27 06:49

1,在用I2C或SPI读写数据的过程中是否必须关闭中断,不然会影响I2C或SPI的数据传输。

2,我相定义一个数组并把它放在FLASH中,程序运行时直接从FLASH中调用数组的值以节省RAM空间,该怎么做

STM32

   小组等级:    E币:4155  (E币换礼)

#2

文章发表于:2008-09-27 20:59

1,不用关闭中断

2,使用const属性

hzfzh

   小组等级:    E币:127  (E币换礼)

#3

文章发表于:2008-09-28 08:51

不关中断在读写数据的时候产生中断会打断I2C建立的时钟,中断结束后使程序进入死循环。请问该怎么解决?

STM32

   小组等级:    E币:4155  (E币换礼)

#4

文章发表于:2008-09-28 11:17

I2C模块是硬件产生时钟,中断不会影响I2C模块工作。

hzfzh

   小组等级:    E币:127  (E币换礼)

#5

文章发表于:2008-09-29 09:44

在执行中断程序的时候,I2C停止了传输数据,这样时钟还能保持吗?

STM32

   小组等级:    E币:4155  (E币换礼)

#6

文章发表于:2008-09-29 10:08

请问你知道I2C的工作原理吗?停止传输数据时,哪里还有时钟?

czdo2008

   小组等级:    E币:1354  (E币换礼)

#7

文章发表于:2008-09-30 09:50

xiexie学习了,赫赫

hzfzh

   小组等级:    E币:127  (E币换礼)

#8

文章发表于:2008-10-06 11:47

我的意思是说I2C读写数据的过程中(比如要读10个数据,现在只读了5个)产生了中断,在中断服务程序执行完成后,我怎么继续读剩下的五个数据,难道要重新建立时钟。

STM32

   小组等级:    E币:4155  (E币换礼)

#9

文章发表于:2008-10-06 12:25

不明白你的意思,请画图说明。

hzfzh

   小组等级:    E币:127  (E币换礼)

#10

文章发表于:2008-10-06 16:40

void write_data(u8* pBuffer,u8 ReadAddr,u8 ReadAddr1,u16 NumByteToRead)
{
        I2CCounter1 = NumByteToRead;
 
        I2C_GenerateSTART(I2C1, ENABLE);

        while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));

        I2C_Send7bitAddress(I2C1, 0xa0, I2C_Direction_Transmitter);
 
        while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));  
 
        I2C_SendData(I2C1, ReadAddr1);
 
        while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
 
        I2C_SendData(I2C1, ReadAddr);
 
        while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
 
        while(I2CCounter1 != 0)
        {
           I2C_SendData(I2C1, *pBuffer);
           while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
           pBuffer++;
                I2CCounter1--;
        }
 
        I2C_GenerateSTOP(I2C1, ENABLE);  
        
     }

void write_data(u8* pBuffer,u8 ReadAddr,u8 ReadAddr1,u16 NumByteToRead)是在主程序中运行的,如果程序执行到红色的地方时产生了中断,那么中断结束后该怎么处理?是不是要重新建立时钟?

STM32

   小组等级:    E币:4155  (E币换礼)

#11

文章发表于:2008-10-06 18:31

不明白"重新建立时钟"是什么概念?

如果有需要“重新建立”,那么请问之前的时钟是如何建立的?

2【下一页】总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

  • DesignDesign
  • HTMLHTML

浏览该小组的用户还看过...

设计资源与分销

所有小组精华文章