#include "MicroBit.h" SPI spi(MOSI, MISO, SCK); MicroBitSerial serial(USBTX, USBRX); MicroBitPin CS(MICROBIT_ID_IO_P16, MICROBIT_PIN_P16, PIN_CAPABILITY_DIGITAL); int main(void){ CS.setDigitalValue(1); char mosi[] = {1, 0b10000000, 0}; char miso[3]; // If you specify default settings for SPI, .format() and .frequency() can be omitted. //spi.format(8, 0); // How many bits in one byte, and SPI mode0(0,0). //spi.frequency(1000000); CS.setDigitalValue(0); for(int i=0; i<3; i++){ miso[i] = spi.write(mosi[i]); } CS.setDigitalValue(1); serial.printf("MOSI data: 0x%x\t 0x%x\t 0x%x\n", mosi[0], mosi[1], mosi[2]); serial.printf("MISO data: 0x%x\t 0x%x\t 0x%x\n", miso[0], miso[1], miso[2]); uint16_t A2Ddata = (miso[1]<<8 | miso[2]) & 1023; float volt = (float)A2Ddata * 3.23/1024.0; serial.printf("AD%d, %.2f(v)\n", A2Ddata, volt); release_fiber(); return 0; }
実行結果: