Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
- GPIOB->MODER &= ~(3 << (8*2));
- GPIOB->MODER |= 2 << (8*2);
- GPIOB->MODER &= ~(3 << (9*2));
- GPIOB->MODER |= 2 << (9*2);
- GPIOB->OTYPER |= 1 << 8;
- GPIOB->OTYPER |= 1 << 9;
- GPIOB->OSPEEDR &= ~(3 << (8*2));
- GPIOB->OSPEEDR |= 1 << (8*2);
- GPIOB->OSPEEDR &= ~(3 << (9*2));
- GPIOB->OSPEEDR |= 1 << (9*2);
- GPIOB->PUPDR &= ~(3 << (8*2));
- GPIOB->PUPDR &= ~(3 << (9*2));
- GPIOB->AFR[1] &= ~(0xF << (0*4));
- GPIOB->AFR[1] |= 4 << (0*4);
- GPIOB->AFR[1] &= ~(0xF << (1*4));
- GPIOB->AFR[1] |= 4 << (1*4);
- RCC->APB1ENR |= RCC_APB1ENR_I2C1EN;
- RCC->CFGR3 &= ~RCC_CFGR3_I2C1SW;
- I2C1->TIMINGR = 0x0010020A;
- //I2C1->TIMINGR = 0x50330309;
- //I2C1->TIMINGR = 0xA061191F;
- I2C1->CR1 = I2C_CR1_PE;
- I2C1->CR2 |= (0x3C << 1);
- I2C1->CR2 &= ~I2C_CR2_RD_WRN;
- I2C1->CR2 |= (1 << 16);
- while(I2C1->ISR & I2C_ISR_BUSY);
- I2C1->CR2 |= I2C_CR2_START;
- //I2C1->CR2 |= I2C_CR2_AUTOEND;
- //while(I2C1->CR2 & I2C_CR2_START);
- while(!(I2C1->ISR & I2C_ISR_TXIS));
- GPIOA->ODR |= BIT5;
- I2C1->TXDR = 0xAE;
- while(!(I2C1->ISR & I2C_ISR_TXE));
- I2C1->CR2 |= I2C_CR2_STOP;
- while(!(I2C1->ISR & I2C_ISR_STOPF));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement