ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
397795 Топик полностью
Белый Жрец (28.03.2013 13:32, просмотров: 201) ответил Белый Жрец на А ПКР это что? извините за незнание. противокорабельная ракета?
приведу пример вырождения кода: мазохизм своего рода - но как-то так... { // Тики на APB1 // // // U U // U U S S // C C I I I A A A A S S W // D P A A 2 2 2 R R R R P P W // A W N N C C C T T T T I I D 1 1 1 // C R 2 1 3 2 1 5 4 3 2 3 2 G 4 3 2 7 6 5 4 3 2 -- TIM RCC->APB1ENR |= B1B32(0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0); /// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 } ... { // определения для порта B GPIOB->BSRRL = 0x1000; // PB12 в 1 - Z-состояние - чтобы не включить раньше времени насос // 7777 6666 5555 4444 3333 2222 1111 0000 // параметры - смотрим таблицу GPIOB->AFR[0] |= B4B32(noAF,noAF,noAF,0000,0000,noAF,noAF,noAF); // noAF // 1111 1111 1111 1111 1111 1111 0000 0000 // 5555 4444 3333 2222 1111 0000 9999 8888 GPIOB->AFR[1] |= B4B32(Spi2,Spi2,Spi2,noAF,noAF,0000,0000,noAF); // 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 -- GPIOB->OTYPER |= B1B16(oOD,oPP,oPP,oOD,oOD,0 ,0 ,oPP,oPP,oPP,oPP,0 ,0 ,oPP,oPP,oPP); // oPP oOD установка otyper GPIOB->OSPEEDR |= B2B32(s25,s25,s25,s25,s25,00 ,00 ,s25,s25,s25,s25,00 ,00 ,s25,s25,s25); // s02 s25 s50 sto установка ospeed GPIOB->PUPDR |= B2B32(dNO,dNO,dNO,dNO,dNO,00 ,00 ,dNO,dNO,dNO,dNO,00 ,00 ,dNO,dNO,dNO); // dNO dPU dPD установка PuPd GPIOB->MODER |= B2B32(mAF,mAF,mAF,mOu,mOu,00 ,00 ,mOu,mOu,mOu,mOu,00 ,00 ,mOu,mOu,mOu); // mIn mOu mAF mAn установка moder } ... if (State==WrStr){ // инициализация для передачи строки if ( (DMA1_Stream6->CR & (u32)DMA_Enable) == 0 ){ State=WtWri ; // переход на ожидание окончания передачи строки DMA1_Stream6->CR = (uint32_t)0; // отрубаем поток DMA1->HIFCR = DMA_Stream6_IT_MASK; // очищаем флаги DMA1_Stream6->PAR = (u32)&USART2->DR; // адрес переферии DMA1_Stream6->M0AR = (u32)SOut; // адрес в памяти1 DMA1_Stream6->NDTR = (u16)LOut; // количество байт //DMA1_Stream6->M1AR = (u32)buf2; // адрес в памяти2 DMA1_Stream6->FCR |= (u32)DMA_FIFOMode_Disable; // запретить использование буфера FIFO USART2->SR &= ~(u16)USART_FLAG_TC; // очищаем TC в USART DMA1_Stream6->CR = DMA_Channel_4 | // канал /**/ DMA_DIR_MemoryToPeripheral | // направление /**/ DMA_PeripheralInc_Disable | // инкремент по переферии /**/ DMA_MemoryInc_Enable | // инкремент по памяти /**/ DMA_PeripheralDataSize_Byte | // размер данных по переферии /**/ DMA_MemoryDataSize_Byte | // размер данных по памяти /**/ DMA_Mode_Normal | // циклично или разово /**/ DMA_Priority_High | // приоритет /**/ DMA_MemoryBurst_Single | // тактов за передачу /**/ DMA_PeripheralBurst_Single | // тактов за передачу /**/ // DMA_Memory_0 | // текущая область памяти /**/ // DMA_FlowCtrl_Peripheral; | // управляет потоком переферия /**/ DMA_Enable; // DMA1 Stream6 запускаем }} уж не пинайте сильно...