Discuz! Board

标题: STM8S207RB GPIO的设置问题 [打印本页]

作者: wuweiwen0101    时间: 2015-2-12 14:56
标题: STM8S207RB GPIO的设置问题
小弟stm8新手一个,刚上手几天,遇到一个问题:

#define    SPI_MOSI       PB_ODR_ODR3         //设置推挽输出

void SPI_WriteByte(uchar byte)            
{
    uchar i;
    for(i=0;i<8;i++)
    {
      SPI_MOSI=(byte&0x80);               //write byte,send MSB bit  
       SPI_CLK=1;           
       Delay_us(20);
       SPI_CLK=0;
       byte=(byte<<1);
       Delay_us(20);
    }
}

如果这样设置的话,SPI_MOSI会一直低电平

void SPI_WriteByte(uchar byte)            
{
    uchar i;
    for(i=0;i<8;i++)
    {
       if(byte&0x80)
       {
         SPI_MOSI=1;
       }
       else
       {
         SPI_MOSI=0;
       }
       SPI_CLK=1;           
       Delay_us(20);
       SPI_CLK=0;
       byte=(byte<<1);
       Delay_us(20);
    }
}

这样设置就正常了,但是我用其他MCU设置,第一个例子没问题呢,现在还不知道具体问题所在,估计是我没定义好,现在只能用下面的程序先用着,哪位大哥说说是哪里问题。
我个人感觉上面两种设置方法是一样的

作者: admin    时间: 2015-2-13 20:48
PB_ODR_ODR3 直接赋值1,就是0x01




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3