Перейти к содержанию

LoKeR

Members
  • Постов

    17
  • Зарегистрирован

  • Посещение

Весь контент LoKeR

  1. LoKeR

    Stm32f4 usart + внешний ацп

    Добрый день, столкнулся с необычным мне ситуацией, камень stm32f407vet6 делаю обмен данными с ПК через usart. На порт С подключен внешний ацп 8 битный и usart тоже 8 битный. когда на ацп подаю 3В то usart просто вылетает не отправляет и не принимает байты, а если отправлю просто рандомные числа то все ок работает, как ацп подключаю все зависает uint8_t byte; int main(void) { HAL_Init(); MX_GPIO_Init(); MX_USART2_UART_Init(); MX_TIM2_Init(); MX_TIM3_Init(); MX_TIM4_Init(); MX_TIM5_Init(); __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE); __HAL_UART_ENABLE_IT(&huart2, UART_IT_TC); while (1) { if(data[0] == 0x31){ HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_2); TIM2->CCR1 = 7; TIM3->CCR1 = 7; byte = (GPIOC->IDR)/4 ; for(int i = 0; i < 4096; i++){ if((i % 2) == 0){ buffer1[i]= '.'; }else{ buffer1[i] = GPIOC->IDR / 4; } } HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim4, TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim5, TIM_CHANNEL_2); memset(data,0,1); HAL_UART_Transmit_IT(&huart2, buffer1, 4096); } } }
  2. LoKeR

    Stm32f4 adc+dma+tim1

    Есть исходная прошивка устройства, там один канал в ADC_TripleMode_Interl необходимо заменить этот режим на два обычных каналов (медленных). В случай замене адреса #define CDR_ADDRESS ((uint32_t)0x40012308) в результате ничего не выдает. Вот исходник void initialization_ADC(void) { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; DMA_InitTypeDef DMA_InitStructure; ADC_StructInit(&ADC_InitStructure); ADC_CommonStructInit(&ADC_CommonInitStructure); DMA_StructInit(&DMA_InitStructure); /* Configure PB11, PB15 in pushpull mode */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_Init(GPIOB, &GPIO_InitStructure); // ... /* Configure PB1, PB8 in output mode */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_Init(GPIOB, &GPIO_InitStructure); // .. #ifdef __ILX_751B GPIOB->BSRRH = GPIO_Pin_1; // Set High ROG GPIOB->BSRRH = GPIO_Pin_8; // Set High SHUT #endif #ifdef __ILX_1412S GPIOB->BSRRL = GPIO_Pin_1; // Set Low HOLD GPIOB->BSRRL = GPIO_Pin_8; // Set Low SI1 #endif /******************************************************************************/ /* ADCs interface clock and pin configuration */ /******************************************************************************/ // === DMA ===================================================================== #define CDR_ADDRESS ((uint32_t)0x40012308) /* Enable peripheral clocks */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2 | RCC_APB2Periph_ADC3, ENABLE); /* Enable peripheral clocks *************************************************/ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2 , ENABLE); /* Configure ADC Channel N pin as analog input *****************************/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); /* DMA2 Stream0 channel0 configuration **************************************/ DMA_InitStructure.DMA_Channel = DMA_Channel_0; DMA_InitStructure.DMA_PeripheralBaseAddr = CDR_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&t_data_0.e.data[0]; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = 0; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA2_Stream0, &DMA_InitStructure); NVIC_SetPriority(DMA2_Stream0_IRQn, 1); NVIC_EnableIRQ(DMA2_Stream0_IRQn); /* ADC Common configuration *************************************************/ ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_20Cycles; ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_2; ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div8; // ADC_clk = 30 000 000 (Triple sample = 30 000 000 / 5 = 6 000 000 [Hz]) ADC_CommonInit(&ADC_CommonInitStructure); /* ADC1 regular channel N configuration ************************************/ ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; #ifdef __ILX_751B ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising; #endif #ifdef __ILX_1412S ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising; #endif ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC2; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfConversion = 1; ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 regular channel configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles); ADC_Init(ADC2, &ADC_InitStructure); /* ADC2 regular channel configuration */ ADC_RegularChannelConfig(ADC2, ADC_Channel_0, 1, ADC_SampleTime_3Cycles); ADC_Init(ADC3, &ADC_InitStructure); /* ADC3 regular channel configuration */ ADC_RegularChannelConfig(ADC3, ADC_Channel_2, 1, ADC_SampleTime_3Cycles); /* Enable ADC1 DMA */ ADC_DMACmd(ADC1, ENABLE); /* Enable DMA request after last transfer (multi-ADC mode) ******************/ ADC_MultiModeDMARequestAfterLastTransferCmd(ENABLE); /* Clear DMA2 Stream 0 flags */ DMA2->LIFCR |= (uint32_t)(DMA_FLAG_HTIF0 | DMA_FLAG_TCIF0); /* Enable DMA Stream Transfer Complete interrupt */ DMA_ITConfig(DMA2_Stream0, DMA_IT_TC, ENABLE); /******************************************************************************/ /* PWM interface clock and pin configuration */ /******************************************************************************/ #define __Timer_F_Freq 6000000 // Hz #define __Period_F_Mid ((SystemCoreClock) / __Timer_F_Freq) // 1 / Hz TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; /* GPIOB Configuration: Channel 2N as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOB, GPIO_PinSource0, GPIO_AF_TIM1); // TIM1 Configuration ------------------CLK----------------------------------- /* TIM_1clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); uint16_t Timer_F_period = __Period_F_Mid & ~0x01; /* Time Base configuration */ TIM_TimeBaseStructure.TIM_Period = Timer_F_period - 1; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); /* Channel 2N Configuration in TIM_OCMode_PWM mode */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse = (uint16_t) (Timer_F_period >> 1); TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Set; TIM_OC2Init(TIM1, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable); /* TIM1 Main Output Enable */ TIM_CtrlPWMOutputs(TIM1, ENABLE); }
  3. LoKeR

    STM32 для чайника

    Доброго времени суток, решил подключить sim800 к stm32f103c8 настроил usart3 и проверил через cp2102 Bridge Controller (USB to UART), обмен строками происходит, а вот место cp2102 подключаю sim800 ответ не получаю #include "stm32f10x.h" GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; unsigned char Buffer[512]; // Буфер int a,b; void init() { RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // Tx GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; // Rx GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART3, &USART_InitStructure); USART_Cmd(USART3, ENABLE); } void delay(unsigned long p) { while(p>0){p--;} } void send_Uart(USART_TypeDef* USARTx, unsigned char c) { while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE)== RESET){} USART_SendData(USARTx, c); } unsigned char getch_Uart(USART_TypeDef* USARTx) { while(USART_GetFlagStatus(USARTx,USART_FLAG_RXNE) == RESET){} return USART_ReceiveData(USARTx); } // Отправка строки в USTR void send_Uart_str(USART_TypeDef* USARTx, unsigned char *s) { while (*s != 0) send_Uart(USARTx, *s++); } // читаем текстовую строку с UART, до ввода <enter>. Максимальная длина строки 512Байт void read_str_uart(USART_TypeDef* USARTx,unsigned char* s) { unsigned char temp; unsigned int index=0; while(index<512) { temp=getch_Uart(USARTx); if(temp!=13) { *s++=temp; } else { index=512; } index++; } } int main(void) { init(); send_Uart_str(USART3, "AT"); read_str_uart(USART3, Buffer); } @mail_robot ничего не попутал, просто на том камне 3 usart не было не посмотрел в док, просто поменял на stm32f103c8 все норм
  4. LoKeR

    STM32 для чайника

    Доброго времени суток, нашел хорошую статью Usart прием и отправка строки. Настроил на порт Usart3 перестал работать, попробовал на Usart2 перекинуть тоже не работает, как правильно переделать подскажите... stm32-uart-spl.rar
  5. LoKeR

    Stm32f1 usart

    Доброго времени суток, нашел хорошую статью Usart прием и отправка строки. Настроил на порт Usart3 перестал работать, попробовал на Usart2 перекинуть тоже не работает, как правильно переделать подскажите... stm32-uart-spl.rar
  6. через SoftwareSerial port(2, 3); // RX, TX от первой ардуинки RX на второй ардуинку на TX от второй ардуинки RX на первый ардуинку на TX
  7. Доброго времени суток, писал код обмен данных между двумя ардуинкой, отправляю из одной ардуинку "9" а из другого получаю фигню #include <SoftwareSerial.h> SoftwareSerial port(2, 3); // RX, TX int otp=9; void setup() { // put your setup code here, to run once: Serial.begin(9600); port.begin(9600); } void loop() { // put your main code here, to run repeatedly: port.println(otp); Serial.println(otp); delay(1000); } подскажите пожалуйста, где я ошибаюсь, или не тот делаю
  8. 1) а куда еще обращаться если не получается 2) с нулями и ноликами все в порядке и что бы не путаться в Excel сделал шаблон 3) нигде ничего не скопирована
  9. Доброго времени суток, решил создать свои символы на LiquidCrystal по вертикали, нарисовал единичку показывает норм, рядом добавил пятерочку получил место 1->5 и место 5->разбитую 5 (можно на рисунке посмотреть) #include <BigCrystal.h> #include <LiquidCrystal.h> LiquidCrystal lcd(7, 8, 9, 10, 11, 12); BigCrystal bigCrystal(&lcd); /********************edinica********************/ byte edinica1[8] = { 0b11111, 0b11111, 0b01111, 0b00111, 0b00011, 0b00001, 0b00000, 0b00000 }; byte edinica2[8] = { 0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111, 0b11111, 0b11111 }; byte edinica3[8] = { 0b11111, 0b11111, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b00000 }; byte edinica4[8] = { 0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111, 0b11111, 0b11111 }; byte edinica5[8] = { 0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; byte edinica6[8] = { 0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111, 0b11111, 0b11111 }; byte edinica7[8] = { 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b00000 }; byte edinica8[8] = { 0b00000, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111 }; /********************The End********************/ /******************** Pyat *********************/ byte pyat1[8] = { 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b01111, 0b00111 }; byte pyat2[8] = { 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111 }; byte pyat3[8] = { 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111 }; byte pyat4[8] = { 0b00000, 0b00001, 0b00011, 0b00011, 0b00011, 0b00011, 0b00011, 0b00011 }; byte pyat5[8] = { 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; byte pyat6[8] = { 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111 }; byte pyat7[8] = { 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111 }; byte pyat8[8] = { 0b11100, 0b11110, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111 }; /********************* The End *********************/ /**/ /**/ void setup() { bigCrystal.begin(20, 4); /********************edinica********************/ lcd.createChar(1, edinica1); lcd.createChar(2, edinica2); lcd.createChar(3, edinica3); lcd.createChar(4, edinica4); lcd.createChar(5, edinica5); lcd.createChar(6, edinica6); lcd.createChar(7, edinica7); lcd.createChar(8, edinica8); /********************The End********************/ /********************* Pyat *********************/ lcd.createChar(9, pyat1); lcd.createChar(10, pyat2); lcd.createChar(11, pyat3); lcd.createChar(12, pyat4); lcd.createChar(13, pyat5); lcd.createChar(14, pyat6); lcd.createChar(15, pyat7); lcd.createChar(16, pyat8); /********************* The End *********************/ /**/ /**/ } void loop() { /**/ lcd.setCursor(19,0); lcd.write((uint8_t)16); lcd.setCursor(19,1); lcd.write((uint8_t)15); lcd.setCursor(18,0); lcd.write((uint8_t)14); lcd.setCursor(18,1); lcd.write((uint8_t)13); lcd.setCursor(17,0); lcd.write((uint8_t)12); lcd.setCursor(17,1); lcd.write((uint8_t)11); lcd.setCursor(16,0); lcd.write((uint8_t)10); lcd.setCursor(16,1); lcd.write((uint8_t)9); /**/ /********************edinica********************/ lcd.setCursor(19,2); lcd.write((uint8_t)8); lcd.setCursor(19,3); lcd.write((uint8_t)7); lcd.setCursor(18,2); lcd.write((uint8_t)6); lcd.setCursor(18,3); lcd.write((uint8_t)5); lcd.setCursor(17,2); lcd.write((uint8_t)4); lcd.setCursor(17,3); lcd.write((uint8_t)3); lcd.setCursor(16,2); lcd.write((uint8_t)2); lcd.setCursor(16,3); lcd.write((uint8_t)1); /******************** The End ********************/ }
  10. можете объяснить??? а то никак не получается
  11. uint8_t semer(uint32_t z) { switch(z) { case(0): return 0x30; case(1): return 0x31; case(2): return 0x32; case(3): return 0x33; case(4): return 0x34; case(5): return 0x35; case(6): return 0x36; case(7): return 0x37; case(8): return 0x38; case(9): return 0x39; } return 0x6D; } void set_led3(uint32_t n1,uint32_t n2,uint32_t n3,uint32_t n4,uint32_t n5,uint32_t n6,uint32_t n7) { MT_WH1602_SetDDRAMAddress(0x49); MT_WH1602_Delay(80); MT_WH1602_WriteData(semer(n5)); MT_WH1602_Delay(200); MT_WH1602_WriteData(semer(n4)); MT_WH1602_Delay(200); MT_WH1602_WriteData(semer(n3)); MT_WH1602_Delay(200); MT_WH1602_WriteData(0x2E); MT_WH1602_Delay(200); MT_WH1602_WriteData(semer(n2)); MT_WH1602_Delay(200); MT_WH1602_WriteData(semer(n1)); MT_WH1602_Delay(200); MT_WH1602_WriteData(0x57); MT_WH1602_Delay(200); } попробуй этот код для своих переменных void init_MT_WH1602() { MT_WH1602_Init(); MT_WH1602_Delay(2000); MT_WH1602_FunctionSet(1, 0, 0); MT_WH1602_Delay(4000); MT_WH1602_FunctionSet(1, 0, 0); MT_WH1602_Delay(4000); MT_WH1602_FunctionSet(1, 0, 0); MT_WH1602_Delay(4000); MT_WH1602_FunctionSet(1, 1, 1); MT_WH1602_Delay(4000); MT_WH1602_DisplayOnOff(1, 0, 0); MT_WH1602_Delay(4000); MT_WH1602_ClearDisplay(); MT_WH1602_Delay(6000); } и еще без этого блока LCD не работает почему не знаю надо этот блок обязательно добавить
  12. спасибо справился с заданием, Теперь следующим заданием затрудняюсь, подключил WH1602A все работает все показывает, но мне надо данные показывали последовательно друг за другом, например 1 напряжения 2 ток и т п
  13. а у меня не заработало ввыводит source\main.c(24): error: #268: declaration may not appear after executable statement in block как можно избавиться от этой проблемы?
  14. а если по подробнее я в stm32 4 месяц занимаюсь
  15. LoKeR

    Ацп 2 - Канальная

    Доброго времени суток, у меня такая задача измерить данные из 1-го АЦП используя 2 канала и данные сохранять в DMA. Значения 1-го канала сохр. в одну переменную а другой в другую. Это задача для измерения напряжения и тока. Я ни как не могу собрать не могу добавить 2 канал. Подскажите пожалуйста, как можно решить эту проблему void init_adc() // АЦП { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2ENR_ADC1EN, ENABLE); ADC1->SMPR2 |= (ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP1_0); ADC1->CR2 |= ADC_CR2_JEXTSEL; ADC1->CR2 |= ADC_CR2_JEXTTRIG; ADC1->CR2 |= ADC_CR2_CONT; ADC1->CR1 |= ADC_CR1_JAUTO; ADC1->JSQR |= (1<<18); ADC1->CR2 |= ADC_CR2_ADON; ADC1->CR2 |= ADC_CR2_JSWSTART; while (!(ADC1->SR & ADC_SR_JEOC)); }
  16. ЗДРАВСТВУЙТЕ Я СОЗДАЛ ПРОЕКТ МИГАНИЕМ СВЕТОДИОДОМ КОД ПРОЕКТА ВНИЗУ #include <system_stm32f0xx.h> int main(void) { RCC->AHBENR |= RCC_AHBENR_GPIOCEN; GPIOC->MODER |= (GPIO_MODER_MODER8_0 | GPIO_MODER_MODER9_0) ; } void delay (int a) { volatile int i,j; for (i=0 ; i < a ; i++) { j++; } return; } ПРИ КОМПИЛЯЦИИ ПРОЕКТА ВЫВОДИТ ОШИБКУ ".\output\keil_project.axf" - 29 Errors, 0 Warning(s). Target not created В ЧЕМ ПРОБЛЕМА КАК МОЖНО ЕГО РЕШИТЬ
×
×
  • Создать...