ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
7 февраля
1569270 Топик полностью
SciFi (Сегодня, 14:51, просмотров: 53) ответил IBAH на объясните, кто поднимал I2C через DMA на F103, я правильно понимаю алгоритм? Задача: передача Мастером блока данных.
Было дело, разгонял I2C. Было немного муторно, подробностей уже не вспомню, наверное. Вот немного кода: 
static void
slow_fast(bool slow)
{
    I2C1->CCR = (slow ? I2C_CCR_FS | 16 : I2C_CCR_FS | 8);
}
void i2c_init(void) { // the resulting SCL rate when switched to 'fast' is 1.45 MHz (1/29 APB1 clock rate) I2C1->CR2 = I2C_CR2_ITEVTEN | I2C_CR2_ITERREN | (SYSTIME_TPS / 2000000 / 2); // APB1 clock in MHz divided by 4 (accelerate!) slow_fast(true); I2C1->TRISE = 4; I2C1->CR1 = I2C_CR1_ACK | I2C_CR1_PE; NVIC_SetPriority(I2C1_EV_IRQn, 1); NVIC_SetPriority(I2C1_ER_IRQn, 1); }
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้