终于知道老师喜欢用for(TYPE i=0;i<N;i++)而非for(TYPE i=N-1;i<=0;i--)的原因了

上课时看到老师写

复制代码
u8 Spi1_Send_Recv_Byte(u8 txdata)
{
    u8 rxdata = 0x00;


    u8 i;
    
    SCK = 0;

    for(i=0; i<8; i++)
    {
        //下降沿发数据
        if(txdata & 1<<(7-i))
        {
            MOSI = 1;
        }            
        else
        {
            MOSI = 0;
        }            
        delay_us(2);
        
        SCK = 1;
        
        delay_us(2);
        
        //上升沿收数据,判断引脚电平
        if(MISO == 1)
        {
            rxdata |= (0x01<< (7-i));
        }        
        
        
        SCK = 0;    
            
    }
    
    
    return rxdata;
}
复制代码

我就疑惑,为什么不这样

复制代码
u8 Spi1_Send_Recv_Byte(u8 txdata)
{
    u8 rxdata = 0x00;
    u8 i;
    //拉低时钟
    SCK=0;

    for(i=7;i>=0;i--){
        //下降沿引脚发数据
        if(txdata&(1<<i)){
            MOSI=1;
        }else{
            MOSI=0;
        }
        //拉高时钟
        delay_us(2);
        SCK=1;
        delay_us(2);
        //上升沿引脚接收数据    
        if(MISO==1){
            rxdata|=(1<<i);
        }
        //拉低时钟
        SCK=0;
    }
    return rxdata;
}
复制代码

写呢?

结果一运行,“咦?咋没输出了?”

调试之后才发现,原来是我用惯了int i的原因,感受到无符号数的情况太少了。

ε=(´ο`*)))唉,我这人总是只有撞了南墙才知道错。

posted @   败人两字非傲即惰  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示