Grzesiek1996

Untitled

Feb 20th, 2020
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "stm32f10x.h"
  2.  
  3. int main(void)          //pętla główna programu
  4. {
  5.  GPIO_InitTypeDef gpio;     //definicja obiektu gpio będącego konfiguracją portów GPIO
  6.  I2C_InitTypeDef i2c;       //definicja obiektu i2c będącego modułem komunikacji I2C
  7.  
  8.  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE); //podłączenie zegara/ taktowanie portów A,B, C, D     
  9.  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);   //uruchomienie zegara dla funkcji alternatywnych linii I/O
  10.  RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);   //uruchomienie zegara dla modułu I2C1
  11.  
  12.  GPIO_StructInit(&gpio);                    //domyślna konfiguracja portu
  13.  gpio.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;     // konfiguracja pinów 6 i 7, czyli linii SCL, SDA
  14.  gpio.GPIO_Mode = GPIO_Mode_AF_OD;          // do trybu open-drain
  15.  gpio.GPIO_Speed = GPIO_Speed_50MHz;        //ustawienie prędkości linii na 50  [MHz]
  16.  GPIO_Init(GPIOB, &gpio);                   //inicjalizacja modułu GPIOB, konfiguracja portu B
  17.  
  18.  I2C_StructInit(&i2c);          //domyślna konfiguracja modułu komunikacji I2C
  19.  i2c.I2C_Mode = I2C_Mode_I2C;   //ustawienie trybu komunikacji I2C
  20.  i2c.I2C_ClockSpeed = 100000;   //ustawienie szybkości komunikacji [100 kHz]
  21.  I2C_Init(I2C1, &i2c);          //inicjalizacja modułu INC1
  22.  I2C_Cmd(I2C1, ENABLE);         //uruchomienie interfejsu komunikacji I2C
  23.  
  24.  I2C_GenerateSTART(I2C1, ENABLE);
  25.  while (I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT) != SUCCESS);
  26.  
  27.  I2C_Send7bitAddress(I2C1, 0xa0, I2C_Direction_Transmitter);
  28.  while (I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) != SUCCESS);
  29.  
  30.  I2C_SendData(I2C1, 0x00);
  31.  while (I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTING) != SUCCESS);
  32.  
  33.  I2C_SendData(I2C1, 0xca);
  34.  while (I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTING) != SUCCESS);
  35.  
  36.  I2C_SendData(I2C1, 0xfe);
  37.  while (I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTING) != SUCCESS);
  38.  
  39.  I2C_GenerateSTOP(I2C1, ENABLE);
  40.  
  41.  while (1)
  42.  ;
  43. }
Add Comment
Please, Sign In to add comment