设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3074|回复: 1
打印 上一主题 下一主题

STM8S207RB GPIO的设置问题

[复制链接]

2

主题

4

帖子

29

积分

新手上路

Rank: 1

积分
29
跳转到指定楼层
楼主
wuweiwen0101 发表于 2015-2-12 14:56:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟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设置,第一个例子没问题呢,现在还不知道具体问题所在,估计是我没定义好,现在只能用下面的程序先用着,哪位大哥说说是哪里问题。
我个人感觉上面两种设置方法是一样的
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
沙发
admin 发表于 2015-2-13 20:48:04 | 只看该作者
PB_ODR_ODR3 直接赋值1,就是0x01
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-5-3 20:22 , Processed in 0.226528 second(s), 28 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表