wuweiwen0101 发表于 2015-2-12 14:56:43

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:04

PB_ODR_ODR3 直接赋值1,就是0x01
页: [1]
查看完整版本: STM8S207RB GPIO的设置问题