目前用gpio模拟spi,时钟速率只能达到400K,太慢了,如果直接操作寄存器的话,速率能提高到5M么?如果可以,如何实现呢?
目前的代码如下:
# define SCLK GPIO_Pin_19
# define SCLK_0 GPIOB_ResetBits( SCLK)
# define SCLK_1 GPIOB_SetBits( SCLK)
# define SDIN GPIO_Pin_18
# define SDIN_0 GPIOB_ResetBits( SDIN)
# define SDIN_1 GPIOB_SetBits( SDIN)
void write_d(unsigned char Data)
{
unsigned char i;
SCLK_0;
SDIN_1;//data
SCLK_1;
for (i=0; i<8; i++)
{
SCLK_0;
if(Data&0x80)
SDIN_1;
else
SDIN_0;
Data = Data << 1;
SCLK_1;
}
}