Public Documentation
  • Introduction
  • Getting started
    • Introduction
    • 1. Welcome Page
    • 2. Introduction (Beginner's Guide)
  • Portal Tools
    • Blocko
      • Ůvod do blocka
      • Flip-flop
      • REST-API bloček
    • Grid
      • Úvod do GRID
      • Základní Tlačítko (základy GRID)
      • vylepšený Přepínač (stylování a pokročilé možnosti GRID)
      • text generátor button (messeage type, two elements one widget)
      • graf (pokročilé funkce GRID)
      • Slider (User class v GRIDu)
      • Styly a jejich použití
  • Cloud
    • Cloud
    • Instancies
    • Rest-Api
  • General
    • What we plan
  • Hardware a programování
    • Úvod
      • Nahrání prvního programu
    • Konektivita
      • Specifikace zdroje internetu
      • GSM
      • 6LowPAN
      • Komunikace s portálem
      • Přepínání mezi servery
    • Hardware
      • Základní jednotky
        • IODAG3E
          • Rozhraní a periférie
          • Konektor X a Y
          • Napájení
          • Připojení zdroje k VBAT
          • Paměti
          • Technické specifikace
          • Schémata
        • IODAG3L
      • Rozšiřující moduly
        • GSM shield
        • LED shield
        • Relay shield
        • RFID shield
        • Ultrasonic shield
        • Meteo shield
        • Movement shield
        • PIR shield
        • RGB Displej shield
        • Serial shield
      • Ostatní
        • DevKitG3
          • Schéma
        • TK3G
          • Schéma
        • ZPPG3
          • Schéma
        • WEXP
    • Programování HW
      • Architektura FW
        • Aktualizace FW
        • Autobackup
      • Struktura programu
      • Byzance API
        • Vstupy a výstupy do Portálu
        • Callback Busy
        • Odložený restart
        • Callbacky připojení
        • Uživatelská makra
      • MBED API
        • Vstupy a výstupy
        • Komunikační rozhraní
        • Časování
        • RTOS
      • Knihovny
        • DHT
        • DS1820
        • Dali
        • EdgeStruct
        • I2CWrapper
        • Knock
        • MFRC522
        • MFRC522::MIFARE_Key
        • MPU9150
        • ms5637
        • OneWire
        • PCA9536
        • RGB_matrix
        • RollerDrive
        • SHT21
        • ST7565
        • Servo
        • TCA6424A
        • TLC59116
        • TripleSevenSeg
        • MFRC522::Uid
        • WS2812
        • WakeUp
      • Offline programování
        • Vlastní IDE
        • Upload kódu z GUI
        • Upload kódu z konzole
        • Upload kódu Drag&drop
    • Tutoriály
      • Datum a čas (RTC)
      • Komunikace po sériové lince (UART) s PC
        • Konfigurace sériové linky v PC
        • Programování sériové linky
      • Základní tutoriály
        • Digital Read
        • Analog Read/Write
        • PWM Fade
        • Timer/Ticker
        • State Change Detection
        • Ovládání LED modulu
        • BusOut
        • HC-SR04 Senzor
      • Pokročilé
    • Správa a diagnostika
      • Zdroj restartu
      • LED modul
      • Identifikace zařízení
      • Monitoring parametrů
      • Vytížení zařízení
      • Webové rozhraní
        • Základní přehled
        • Správce firmware
        • Vlákna
        • Definované vstupy
        • Konfigurace MQTT
        • Nastavení
      • Bootloader
        • Režimy bootloaderu
        • Command mód
        • Další vlastnosti bootloaderu
      • Webová konzole
      • Konfigurace zařízení
        • Confighash
      • Omezení konfigurace
        • Konfigurace
        • Binárky
        • Omezení MQTT
        • Lowpan
    • Knowledge base
      • Náhodná čísla
      • Watchdog
      • Paměť RAM
Powered by GitBook
On this page
  • Komunikační rozhraní
  • Serial
  • SPI
  • SPI Master
  • SPISlave
  • I2C
  • I2CSlave
  • CAN
  1. Hardware a programování
  2. Programování HW
  3. MBED API

Komunikační rozhraní

PreviousVstupy a výstupyNextČasování

Last updated 6 years ago

Komunikační rozhraní

V této sekci jsou zdokumentované funkce MBED API sloužící ke komunikaci s počítačem a externími zařízeními.

Tato třída slouží k využití sériového rozhraní a komunikaci po sériové lince. Ke komunikaci jsou zapotřebí dva piny - RX(recieve data) a TX(transfer data).

#include "byzance.h"

Serial pc(X09, X11);

void init(){
    pc.baud(9600); //Nastavení baudové rychlosti
    pc.printf("Serial connection\n"); //Send to serial line
}

void loop(){
    pc.printf("Hello world\n");
}

Příklad demonstruje využití sběrnice SPI pro čtení WHOAMI registru ze zařízení připojeného na sběrnici SPI na X konektoru.

#include "byzance.h"

Serial pc(SERIAL_TX, SERIAL_RX);    //For USB use: USBSerial pc(0x1f00, 0x2012, 0x0001, false); //
SPI spi(X14, X12, X10);  // mosi, miso, sclk
DigitalOut ss0(X08);    // Slave 0 select pin (Sometimes called CS - Chip Select)
​
void init(){
    spi.format(8,3);           // 8 bits, high steady state clock, second edge capture
    spi.frequency(1000000);    // Set clk frequency to 1 MHz
}
​
void loop(){     
    ss0 = 0;                          // Select the device by seting chip select low
    int whoami = spi.write(0x00);     // Send dummy byte to Slave and save received data
    ss0 = 1;                          // Deselect device
    pc.printf("WHOAMI register = 0x%X\n", whoami);    //Print the result
    Thread::wait(1000);
}

Příklad programu, který reaguje na přijatá data od SPI Mastera přičtením jedničky k přijatému Bytu

#include "byzance.h"

Serial pc(SERIAL_TX, SERIAL_RX);
SPISlave device(X14, X12, X10, X08);   // mosi, miso, scl, ss (or CS - Chip select)


void init(){
	pc.baud(115200);
}

void loop(){
	// React if master send you a message
	if(device.receive()) {
		uint8_t v = device.read();    				// Read byte from master
	    pc.printf("Byte 0x%X recieved\n",v);		// Print it
	    device.reply(v+1);          			 	// Add one to received message and reply with it
	 }
}

Třída I2C poskytuje funkcionalitu I2C sběrnice v roli master.

Příklad demonstruje jednoduché čtení teploty z teplotního čidla LM75BD.

#include "byzance.h"

Serial pc(SERIAL_TX, SERIAL_RX);	//USBSerial pc(0x1f00, 0x2012, 0x0001, false); //
I2C i2c(X07, X06);	//sda, scl

const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90

void init(){
    i2c.frequency(400000);    //set clk frequency to 1 MHz
}

void loop(){
	// Read temperature from LM75BD
	char cmd[2];
	cmd[0] = 0x01;
	cmd[1] = 0x00;
	i2c.write(addr8bit, cmd, 2);

	Thread::wait(500);

	cmd[0] = 0x00;
	i2c.write(addr8bit, cmd, 1);
	i2c.read( addr8bit, cmd, 2);

	float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0);
	pc.printf("temperature = %.2f\n", tmp);
}

Use to communicate with I2C Master.

I2CSlave i2cslave;

Controller-Area Network bus standard support.

CAN can;

Komunikace pomoc SPI (Serial Peripheral Interface), rozlišuje komunikační prvky na Mastra a jeho podřízené jednotky - Slave. Každý Master může obsluhovat několik Slavů tím způsobem, že vyzve jednotku ke komunikaci přepnutím příslušného pinu SS (Slave select) do logické nuly a vyslání dotazu (Bytu). Jednotka Slave poté na tento dotaz odpovídá zpátky. Po ukončení komunikace Master přepne pin SS zpět do logické jedničky. Jednotka Slave nikdy neodesílá žádná data bez výzvy a Master vždy může komunikovat pouze s jedním Slavem najednou. Pro každý Slave má Master jeden příslušný digitální pin SS. Komunikační protokol je blíže vysvětlený například na .

Serial
SPI
Wiki
SPI Master
SPISlave
I2C
I2CSlave
CAN