Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
  2. GPIOB->MODER &= ~(3 << (8*2));
  3. GPIOB->MODER |= 2 << (8*2);
  4. GPIOB->MODER &= ~(3 << (9*2));
  5. GPIOB->MODER |= 2 << (9*2);
  6.  
  7. GPIOB->OTYPER |= 1 << 8;
  8. GPIOB->OTYPER |= 1 << 9;
  9.  
  10. GPIOB->OSPEEDR &= ~(3 << (8*2));
  11. GPIOB->OSPEEDR |= 1 << (8*2);
  12. GPIOB->OSPEEDR &= ~(3 << (9*2));
  13. GPIOB->OSPEEDR |= 1 << (9*2);
  14.  
  15. GPIOB->PUPDR &= ~(3 << (8*2));
  16. GPIOB->PUPDR &= ~(3 << (9*2));
  17.  
  18. GPIOB->AFR[1] &= ~(0xF << (0*4));
  19. GPIOB->AFR[1] |= 4 << (0*4);
  20. GPIOB->AFR[1] &= ~(0xF << (1*4));
  21. GPIOB->AFR[1] |= 4 << (1*4);
  22.  
  23. RCC->APB1ENR |= RCC_APB1ENR_I2C1EN;
  24. RCC->CFGR3 &= ~RCC_CFGR3_I2C1SW;
  25. I2C1->TIMINGR = 0x0010020A;
  26. //I2C1->TIMINGR = 0x50330309;
  27. //I2C1->TIMINGR = 0xA061191F;
  28. I2C1->CR1 = I2C_CR1_PE;
  29.  
  30. I2C1->CR2 |= (0x3C << 1);
  31. I2C1->CR2 &= ~I2C_CR2_RD_WRN;
  32. I2C1->CR2 |= (1 << 16);
  33. while(I2C1->ISR & I2C_ISR_BUSY);
  34.  
  35. I2C1->CR2 |= I2C_CR2_START;
  36. //I2C1->CR2 |= I2C_CR2_AUTOEND;
  37. //while(I2C1->CR2 & I2C_CR2_START);
  38.  
  39.  
  40. while(!(I2C1->ISR & I2C_ISR_TXIS));
  41. GPIOA->ODR |= BIT5;
  42. I2C1->TXDR = 0xAE;
  43. while(!(I2C1->ISR & I2C_ISR_TXE));
  44.  
  45. I2C1->CR2 |= I2C_CR2_STOP;
  46. while(!(I2C1->ISR & I2C_ISR_STOPF));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement