目前用gpio模擬spi,時(shí)鐘速率只能達(dá)到400K,太慢了,如果直接操作寄存器的話,速率能提高到5M么?如果可以,如何實(shí)現(xiàn)呢?
目前的代碼如下:
# 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;
? ? }
}