模拟SPI通信

[复制链接]
 楼主| hxb20122012 发表于 2013-6-7 10:01 | 显示全部楼层 |阅读模式
KEIL中:当程序全速运行时,进入SpiWriteRegister(),函数,但是就出不来了,然后Stop停止一下,再全速就出来了,换句话说就是单步调试没问题,全速就在SpiWriteRegister()这个函数里出不来,请指教!!!!!
sonicll 发表于 2013-6-7 10:47 | 显示全部楼层
能把你这个SpiWriteRegister()的内容贴出来吗,是不是有while循环的语句死掉了,适当加点延时试试
mmuuss586 发表于 2013-6-7 11:45 | 显示全部楼层
mmuuss586 发表于 2013-6-7 11:57 | 显示全部楼层
用的什么芯片啊???
jsll86 发表于 2013-6-8 08:21 | 显示全部楼层
加个延时,再试试
 楼主| hxb20122012 发表于 2013-6-8 09:06 | 显示全部楼层
void SpiReadWrite1(uint8_t reg, uint8_t value)
{
   uint8_t i;
   uint8_t Temp_byte;
   
   nSEL_L;                              
   Temp_byte = (reg|0x80);                                //write data into the SPI register

                for(i=0;i<8;i++)
                {
                        if(Temp_byte&0x80)
                        {
                                        SPI_MOSI_H;
                        }
                        else
                        {
                                        SPI_MOSI_L;
                        }
                                       
                        SPI_CLK_H;
                        Delay_uS(1);
                        SPI_CLK_L;
                        Temp_byte <<= 1;
                }
       
                        Temp_byte = value;       
            for(i=0;i<8;i++)
                        {
                                if(Temp_byte&0x80)
                                {
                                                SPI_MOSI_H;
                                }
                                else
                                {
                                                SPI_MOSI_L;
                                }

                                SPI_CLK_H;       
                                Delay_uS(1);
                                SPI_CLK_L;
                                Delay_uS(1);
                                Temp_byte <<=1;
                        }
                        nSEL_H;  
                        SPI_CLK_L;               
                        Delay_uS(1);                               

}
 楼主| hxb20122012 发表于 2013-6-8 09:07 | 显示全部楼层
用的是STM32F103ZET6
 楼主| hxb20122012 发表于 2013-6-8 10:53 | 显示全部楼层
已经解决了,不是这个函数的问题,是我在操作芯片的时候,必须要等待一定的时间之后才可以去操作芯片,所以就卡死在这个函数里,单步可以,这也就讲的通了,谢谢各位!!!
grasswolfs 发表于 2013-6-8 15:01 | 显示全部楼层
hxb20122012 发表于 2013-6-8 10:53
已经解决了,不是这个函数的问题,是我在操作芯片的时候,必须要等待一定的时间之后才可以去操作芯片,所以 ...

初始化的问题?
 楼主| hxb20122012 发表于 2013-6-8 16:54 | 显示全部楼层
就是在初始化的过程中,需要等待一定的时间才可以对芯片进行操作。
zeluo 发表于 2013-6-8 20:52 | 显示全部楼层
通过延时不知道能不能解决这个问题  不是很了解
zjping0815 发表于 2013-6-24 11:38 | 显示全部楼层
jsll86 发表于 2013-6-8 08:21
加个延时,再试试

两个stc单片机IO口模拟SPI通讯,
大哥能不能发个实例不
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

564

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部