bbxyliyang08 发表于 2012-12-27 21:12:49

AVR,SPI模拟的怎么调通啊

AVR,SPI模拟的怎么调通啊?没JTAG接口,只有数码管显示?

litao31415 发表于 2012-12-27 21:37:43

本帖最后由 litao31415 于 2012-12-27 21:40 编辑

用单片机模拟SPI其实就是控制IO口模拟SPI时序,只要搞懂其时序即可,但是AVR有硬件Spi没必要用模拟的,没JTAG,可以用串口调试

bbxyliyang08 发表于 2012-12-27 21:40:58

litao31415 发表于 2012-12-27 21:37 static/image/common/back.gif
用单片机模拟SPI其实就是控制IO口模拟SPI时序,只要搞懂其时序即可,但是AVR有硬件Spi没必要用模拟的,没JT ...

/*-----------RN8209读写函数-----------------------*/
void Reset_RN8209(void)
{
        SET8209;
        PORTB&=~(1<<RN8209_SCK);//时钟拉低
        CLR8209;//拉低
}
voidWrite_RN8209_Byte(uint8wdata)
{
        uint8i ;
        PORTB&=~(1<<RN8209_SCK);//一开始尽可能给SCK为0
    for(i=0;i<8;i++)
        {
                if(wdata&0x80)//先发高位,上升沿
                {
                        PORTB|=(1<<RN8209_MOSI);
                }
                else
                {
                        PORTB&=(1<<RN8209_MOSI);
                }
                PORTB|=(1<<RN8209_SCK);//时钟拉高
                wdata<<=1;
                PORTB&=~(1<<RN8209_SCK);//时钟拉低
        }
}
uint8 Read_RN8209_Byte(void)
{
        uint8 i,rdata;
        for(i=0;i<8;i++)
        {
               
                if(PINB&(1<<RN8209_MISO))
                {
                        rdata|=0x01;
                }
          PORTB|=(1<<RN8209_SCK); //读数据时为下降沿读出                    
                PORTB&=~(1<<RN8209_SCK);//时钟拉低
                rdata<<1;
        }
        returnrdata;
}

jie18778884418 发表于 2014-4-27 12:48:29

bbxyliyang08 发表于 2012-12-27 21:40
/*-----------RN8209读写函数-----------------------*/
void Reset_RN8209(void)
{


大哥,用STM32怎么模拟SPI啊

xuanfong1 发表于 2014-4-27 14:06:28

路过路过顶顶
页: [1]
查看完整版本: AVR,SPI模拟的怎么调通啊