想請問一下!在程式裡面的I2C1->TIMINGR後面的值怎麼出來的
`__INLINE void Configure_I2C1_Slave(void)
{
/* Configure RCC for I2C1 /
/ (1) Enable the peripheral clock I2C1 /
/ (2) Use SysClk for I2C CLK /
RCC->APB1ENR |= RCC_APB1ENR_I2C1EN; / (1) /
RCC->CFGR3 |= RCC_CFGR3_I2C1SW; / (2) */
/* Configure I2C1, slave /
/ (3) Timing register value is computed with the AN4235 xls file,
fast Mode @400kHz with I2CCLK = 48MHz, rise time = 140ns,
fall time = 40ns /
/ (4) Periph enable, address match interrupt enable /
/ (5) 7-bit address = 0x5A /
/ (6) Enable own address 1 /
I2C1->TIMINGR = (uint32_t)0x00B00000; / (3) /
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_ADDRIE; / (4) /
I2C1->OAR1 |= (uint32_t)(I2C1_OWN_ADDRESS << 1); / (5) /
I2C1->OAR1 |= I2C_OAR1_OA1EN; / (6) */
/* Configure IT /
/ (7) Set priority for I2C1_IRQn /
/ (8) Enable I2C1_IRQn /
NVIC_SetPriority(I2C1_IRQn, 0); / (7) /
NVIC_EnableIRQ(I2C1_IRQn); / (8) */
}`
/*
(3) Timing register value is computed with the AN4235 xls file,
fast Mode @400kHz with I2CCLK = 48MHz, rise time = 140ns,
fall time = 40ns /
*/
I2C1->TIMINGR = (uint32_t)0x00B00000; / (3) /