极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13805|回复: 2

arduino怎么用spi读从机寄存器数据

[复制链接]
发表于 2015-2-3 14:15:22 | 显示全部楼层 |阅读模式
程序如下:
#include <SPI.h>
int RST_PIN = 4;
int SS_PIN = 10;

void LD_reset()
{
    digitalWrite(RST_PIN, HIGH);
    delay(1);
    digitalWrite(RST_PIN, LOW);
    delay(1);
    digitalWrite(RST_PIN, HIGH);

    delay(1);
    digitalWrite(SS_PIN, LOW);
    delay(1);
    digitalWrite(SS_PIN, HIGH);
    delay(1);
}

uint8_t LD_ReadReg(uint8_t address)
      {
          digitalWrite(SS_PIN,LOW);
          SPI.transfer(0x05);
          SPI.transfer(address);
          uint8_t result = SPI.transfer(0x00);  
          digitalWrite(SS_PIN, HIGH);
          return result;
      }
  
   void LD_WriteReg(uint8_t address, uint8_t value)
        {
            digitalWrite(SS_PIN, LOW);
            SPI.transfer(0x04);
         //   Serial.println("11111");
            SPI.transfer(address);
         //   Serial.println(address);
            SPI.transfer(value);
         //   Serial.println(value);
            digitalWrite(SS_PIN, HIGH);
        }
        
void setup()
{
  Serial.begin(9600);
  pinMode(4,OUTPUT);
  pinMode(10,OUTPUT);
   SPI.setBitOrder(MSBFIRST);
    SPI.setClockDivider(SPI_CLOCK_DIV4);
    SPI.setDataMode(SPI_MODE1);
    SPI.begin();
}

void loop()
{
  LD_reset();
// LD_ReadReg(0x6);
//  LD_WriteReg(0x35,0x33);
//  LD_WriteReg(0x1b,0x55);
//  LD_WriteReg(0xb3,0xaa);
  Serial.println(LD_ReadReg(0x06),HEX);
  Serial.println(LD_ReadReg(0x06),HEX);
  Serial.println(LD_ReadReg(0x35),HEX);
  Serial.println(LD_ReadReg(0xb3),HEX);
}
回复

使用道具 举报

 楼主| 发表于 2015-3-3 17:09:14 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2015-3-21 23:14:57 | 显示全部楼层
读取的是什么传感器,传感器说明书,时序都没有
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-19 01:13 , Processed in 0.036064 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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