stm32 eeprom

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

stm32 eeprom

Сообщение ivan dimir »

Уже не один вечер пітаюсь запустить стм32 с eeprom для сохранения данных .Контроллер гаснет в прямом смысле слова .когда выполняется комада (чтения eeprom) [/b]
/*
* main.c
*
* Created on: 12 авг. 2020 г.
* Author: Ivan
*/
#include"main.h"
#include<stdio.h>
#define button1 // GPIOA->IDR &GPIO_IDR_ID6
#define button2 // GPIOA->IDR &GPIO_IDR_ID7
//#include"#include"main.h"lcd2.h"
volatile unsigned int pauza=0;
volatile unsigned int pauza_1=0;
volatile unsigned char flag1=0;
volatile unsigned char flag=0;
volatile unsigned char flag2=0;
volatile unsigned int b,c;
volatile unsigned char b1,b2,c1,c2,t1,t2;
volatile unsigned int t,m;
volatile unsigned char menu=0;
volatile unsigned char menu_en=0;
volatile unsigned char menu_eep=0;
volatile unsigned int adc_data1=0;
volatile unsigned int adc_data2=0;
volatile unsigned int adc_data3=0;
volatile unsigned int adc_data4=0;
char bufer1[16]={};




char bufer2[16];
char bufer3[16];
uint16_t temp;
uint16_t ADC_Data[4];
//#define z 0xB1//Я
typedef unsigned char byte; //переопределяем тип
void delay_ms(int a)
{
int i = 0;
int f = 0;
while(f < a)
{
while(i<60)
{i++;}
f++;
}
}


uint8_t bii [8]=
{
0B00000,
0B00000,
0B01010,
0B00100,
0B00100,
0B00100,
0B00100,
0B00000
};
uint8_t bk [8]=
{
0B00000,
0B00000,
0B01001,
0B01010,
0B01100,
0B01010,
0B01001,
0B00000
};
uint8_t bj [8]=
{
0B00000,
0B00000,
0B10101,
0B01110,
0B00100,
0B01110,
0B10101,
0B00000
};
uint8_t bm[]=
{


0B00000,
0B00000,
0B10001,
0B11011,
0B10101,
0B10001,
0B10001,
0B00000
};
uint8_t bn[]=
{
0B00000,
0B00000,
0B10010,
0B10010,
0B11110,
0B10010,
0B10010,
0B00000
};
uint8_t biu[]=
{
0B00000,
0B00000,
0B10111,
0B10101,
0B11101,
0B10101,
0B10111,
0B00000

};
uint8_t iorp[]=
{
0b00000,
0b01100,
0b11110,
0b11110,
0b01111,
0b00111,
0b00011,
0b00001
};
uint8_t ior2p[]=
{
0b00000,
0b00110,
0b01111,
0b01110,
0b11110,
0b11100,
0b11000,
0b10000
};



void init_IWDGtimer(void)
{
RCC->CSR|= RCC_CSR_LSION;



IWDG->KR = 0x5555; // Access to registers
IWDG->PR&= ~(IWDG_PR_PR_0 | IWDG_PR_PR_1 | IWDG_PR_PR_2); // 4096
IWDG->RLR =250;//0x7FF;
while (!((IWDG->SR & IWDG_SR_PVU) && (IWDG->SR & IWDG_SR_RVU))){} // wait while bist of PVU and RVU will be set.
IWDG->KR = 0xCCCC; // Start count down;
}
void program1(void)
{

if(pauza==1)
{
lcd_clear();
lcd_set_xy(0, 0);
// IWDG->KR = 0xAAAA;
}
if(pauza==20)
{

//PORTC13_ON;
lcd_clear();
lcd_set_xy(0, 0);
lcd_send(2,DATA);

}

if(pauza==35)
{
// PORTC13_OF;
lcd_clear();
lcd_set_xy(0, 0);
lcd_send('a',DATA);
lcd_send(2,DATA);


// pauza=0;
}

if(pauza==50)
{
lcd_clear();
lcd_set_xy(0, 0);
// lcd_set_user_char(0, bii);
// lcd_set_user_char(1, bj);
lcd_send(1,DATA);
lcd_send('a',DATA);
lcd_send(2,DATA);
}

if(pauza==65)
{
lcd_clear();
//lcd_set_user_char(0, bii);
// lcd_set_user_char(1, bj);
lcd_set_xy(0, 0);
lcd_send(0,DATA);
lcd_send(1,DATA);
lcd_send('a',DATA);
lcd_send(2,DATA);
//pauza=0;
}

if(pauza==80)
{
lcd_clear();

lcd_set_xy(0, 0);
lcd_send(' ' ,DATA);
lcd_send( 0 ,DATA);
lcd_send(1,DATA);
lcd_send('a',DATA);
lcd_send(2,DATA);
//pauza=0;
}

if(pauza==95)
{
lcd_clear();
// lcd_set_xy(0, 0);

// lcd_set_user_char(0, bii);
// lcd_set_user_char(1, bj);
lcd_set_xy(0, 0);
lcd_send(' ',DATA);
lcd_send(' ',DATA);
lcd_send( 0 ,DATA);
lcd_send(1,DATA);
lcd_send('a',DATA);
lcd_send(2,DATA);
lcd_set_xy(0, 1);
lcd_send(3,DATA);
lcd_send('e',DATA);
lcd_send(4,DATA);
lcd_send(5,DATA);
lcd_send(' ',DATA);
lcd_send( 3 ,DATA);
lcd_send('a',DATA);
lcd_send( 3 ,DATA);
lcd_send('a',DATA);
// lcd_out("mama");
// pauza=0;

}

// IWDG->KR = 0xAAAA;
}

void program2(void)
{

// TIM3->CNT=0;

// lcd_clear();

lcd_set_xy(0, 0);
lcd_send(' ',DATA);
lcd_send(' ',DATA);
lcd_send( 0 ,DATA);
lcd_send(1,DATA);
lcd_send('a',DATA);
lcd_send(2,DATA);
lcd_send(' ',DATA);
lcd_send(3,DATA);
lcd_send('e',DATA);
lcd_send(4,DATA);
lcd_send(5,DATA);

lcd_set_xy(0, 1);
// lcd_send(' ',DATA);
// lcd_send('b',DATA);
// lcd_send('=',DATA);
// lcd_send(b/10+0x30,DATA);
//lcd_send(b%10+0x30,DATA);
//lcd_send(b%100+0x30,DATA);
// b1=b/256;
// b2=b%256;
//TIM3->CNT=b;
// t=0;
lcd_send(' ',DATA);
lcd_send(' ',DATA);
sprintf(bufer1,"b=%4d",b);
lcd_out(bufer1);
// lcd_send(' ',DATA);
// flag2=1;
b2=b/256;
b1=b%256;

// Delay(40);
// IWDG->KR = 0xAAAA;
// }
}
void program3(void)
{//
// lcd_clear();
lcd_set_xy(0, 0);
lcd_send(' ',DATA);
lcd_send(' ',DATA);
lcd_send( 0 ,DATA);
lcd_send(1,DATA);
lcd_send('a',DATA);
lcd_send(2,DATA);
lcd_send(' ',DATA);
lcd_send(3,DATA);
lcd_send('e',DATA);
lcd_send(4,DATA);
lcd_send(5,DATA);
// t=700;
// t=TIM3->CNT;
lcd_set_xy(0,1);
//lcd_send(' ',DATA);
// lcd_send('t',DATA);
//lcd_send('=',DATA);
//lcd_send(t/10+0x30,DATA);
//lcd_send(t%10+0x30,DATA);
// lcd_send(t%100+0x30,DATA);
//t1=t/256;
// t2=t%256;
lcd_send(' ',DATA);
lcd_send(' ',DATA);
sprintf(bufer2,"t=%4d",t);
lcd_out(bufer2);
//IWDG->KR = 0xAAAA;

}
void program4(void)
{
// lcd_clear();
lcd_set_xy(0, 0);
lcd_send(' ',DATA);
lcd_send(' ',DATA);
lcd_send( 0 ,DATA);
lcd_send(1,DATA);
lcd_send('a',DATA);
lcd_send(2,DATA);
lcd_send(' ',DATA);
lcd_send(3,DATA);
lcd_send('e',DATA);
lcd_send(4,DATA);
lcd_send(5,DATA);
// t=700;
// c=TIM3->CNT;

lcd_set_xy(0,1);
// lcd_send(' ',DATA);
//lcd_send('c',DATA);
// lcd_send('=',DATA);

//lcd_send(c/10+0x30,DATA);
// lcd_send(c%10+0x30,DATA);
// lcd_send(c%100+0x30,DATA);
// c1=c/256;
// c2=c%256;
// TIM3->CNT=c;
lcd_send(' ',DATA);
lcd_send(' ',DATA);
sprintf(bufer3,"c= %4d",c);
lcd_out(bufer3);
}
void Calbac (void)
{
ADC_Data[0]=ADC1->JDR1;
ADC_Data[1]=ADC1->JDR2;
ADC_Data[2]=ADC1->JDR3;
ADC_Data[3]=ADC1->JDR4;

//TIM4->CCR3=ADC_Data[2];
// TIM4->CCR3=ADC_Data[0];
//TIM4->CCR3=ADC_Data[2];
}
int main(void)
{

//I2C1_readByteByADDR1(1,0);
//char bufer1[16];
//lcd_delay();
//int b;
//init_IWDGtimer(); ./
AHB1ER_init();
i2c1_AF_init();
i2c1_init();
// lcd_clear();

I2C1_readByteByADDR1(0x02,b);
//I2C1_readByteByADDR1(0x11,b1);
PORT_init();
timer1_init();
timer2_init();
AFR_init_time3();
timer3_init();
AFR_init_time4();
time4_init();
time5_init();
timer6_init();
adc3_init_regular();
adc1_init_inject();

//lcd_init_GPIO();
// str_lcd("string");
//I2C1_readByteByADDR1(1,0);
//I2C1_readByteByADDR1(3,2);
//I2C1_readByteByADDR1(5,4);
// I2C1_readByteByADDR1(7,6);
//I2C1_readByteByADDR1(9,8);
//I2C1_readByteByADDR1(11,10);
// LCD_Clear();
ADC1->CR1|= ADC_CR1_JEOCIE;

ADC1->CR2 |= ADC_CR2_ADON;
NVIC_EnableIRQ ( ADC_IRQn);
ADC3->CR2|=ADC_CR2_EXTSEL_2 |ADC_CR2_EXTSEL_1;
ADC1->CR2|=ADC_CR2_JEXTSEL_1 |ADC_CR2_JEXTSEL_0;
//ADC1->CR2|=ADC_CR2_JSWSTART;
//LCD_init1();
lcd_init();
//();
//lcd_set_state(LCD_ENABLE, CURSOR_ENABLE, BLINK);

lcd_set_user_char(0, bii);
lcd_set_user_char(1, bj);
lcd_set_user_char(2, bk);
lcd_set_user_char(3, bm);
lcd_set_user_char(4, bn);
lcd_set_user_char(5, biu);
// Наша рыба это символ номер ноль
// lcd_out("This is fish"); //Выводим надпись в нулевую строку
// lcd_set_xy(0,1); //переводим курсор в первую строку
//lcd_send(0,DATA);
// lcd_send(1,DATA);
//lcd_send('a',DATA);
//Выводим символ номер ноль
// lcd_set_state(LCD_ENABLE, CURSOR_ENABLE, BLINK);
//lcd_set_state(LCD_ENABLE,CURSOR_ENABLE,NO_BLINK);
//lcd_clear();
//lcd_set_state(LCD_ENABLE,CURSOR_ENABLE,NO_BLINK);
//InitialLCD();
//ClearLCD();
//Cursor(0,2);
//lcd_out("mama");
//PrintStr("MAMA");

//lcd_set_xy(0, 1);
//lcd_out("mama");
//lcd_set_xy(6, 6);
//lcd_out("papa");
//lcd_send('X',DATA);
// lcd_send('y',DATA);
//lcd_send('e',DATA);
// clearlcd();
// str_lcd("string");
// delay_ms(50);
init_IWDGtimer();
b=((unsigned int) b1<<8)|b2;
c=((unsigned int )c1<<8)|c2;
t=((unsigned int) t1<<8)|t2;
while(1)
{


if(menu==0)
{
program1();

}

if(menu==1)
{

program2();
Delay(50);
}


if(menu==2)
{

program3();

Delay(50);

}

if(menu==3)
{
program4();
Delay(50);

}
if(menu==4)
{
menu=0;
}



}
} #include"main.h"
#define I2C_REQUEST_WRITE 0x00//0
#define I2C_REQUEST_READ 0x01
#define EEPROM_ADDRESS 0b1010000
#define I2C_OWNADDRESS1_7BIT 0x00004000U
void i2c1_AF_init(void)
{
GPIOB->AFR[0]&=~GPIO_AFRL_AFSEL7_0;
GPIOB->AFR[0]&=~GPIO_AFRL_AFSEL7_1;
GPIOB->AFR[0]|=GPIO_AFRL_AFSEL7_2 ;
GPIOB->AFR[0]&=~GPIO_AFRL_AFSEL7_3;

GPIOB->AFR[0]&=~GPIO_AFRL_AFSEL6_0;
GPIOB->AFR[0]&=~GPIO_AFRL_AFSEL6_1;
GPIOB->AFR[0]|=GPIO_AFRL_AFSEL6_2;
GPIOB->AFR[0]&=~GPIO_AFRL_AFSEL6_3;
}

void i2c1_init(void)
{
GPIOB->MODER|=GPIO_MODER_MODE7_1;
GPIOB->MODER&=~GPIO_MODER_MODE7_0;
GPIOB->OTYPER|=GPIO_OTYPER_OT7;
GPIOB->MODER|=GPIO_MODER_MODE6_1;
GPIOB->MODER&=~GPIO_MODER_MODE6_0;
GPIOB->OTYPER|=GPIO_OTYPER_OT6;
RCC->APB1ENR|=RCC_APB1ENR_I2C1EN;

I2C1->CR2&=~I2C_CR2_FREQ_2 ;
I2C1->TRISE=9;
I2C1->CCR&=~I2C_CCR_FS;
//I2C1->OAR1|=I2C_OAR1_ADD0 | I2C_OAR1_ADD1_7 | I2C_OAR1_ADD8_9 | I2C_OAR1_ADDMODE;
I2C1->OAR1|= I2C_OWNADDRESS1_7BIT;
//I2C1->CR1|=I2C_CR1_SMBUS | I2C_CR1_SMBTYPE | I2C_CR1_ENARP;


I2C1->CR1|=I2C_CR1_ACK;
I2C1->OAR2|=I2C_OAR2_ADD2;
I2C1->CR1|=I2C_CR1_PE;
}
void I2C1_SendByteByADDR1(uint16_t adres,uint8_t data)
{

//uint8_t data2;
I2C1->CR1|=I2C_CR1_ACK;
I2C1->CR1|=I2C_CR1_START;
while(!(I2C1->SR1&I2C_SR1_SB))
{
}
(void) I2C1->SR1;
I2C1->DR|= EEPROM_ADDRESS |I2C_REQUEST_WRITE;
//I2C1->DR|= addr | I2C_REQUEST_WRITE;//
while (!(I2C1->SR1& I2C_SR1_ADDR))
{
}
(void) I2C1->SR1;
(void) I2C1->SR2;
I2C1->DR|=(uint8_t)adres;//
while (!(I2C1->SR1& I2C_SR1_TXE))
{

}
I2C1->DR|=(uint8_t) (adres>>8) ;//
while (!(I2C1->SR1 & I2C_SR1_TXE))
{

}

I2C1->DR|=data;
while (!(I2C1->SR1 & I2C_SR1_BTF))
{
}
I2C1->CR1|=I2C_CR1_STOP;
}
void I2C1_readByteByADDR1(uint16_t adres,uint8_t data)
{

//uint8_t data2;
//uint8_t data1;
I2C1->CR1|=I2C_CR1_ACK;
I2C1->CR1|= I2C_CR1_START;

while (!(I2C1->SR1& I2C_SR1_SB)){}

(void) I2C1->SR1;
I2C1->DR|= EEPROM_ADDRESS |I2C_REQUEST_WRITE;
// I2C1->DR|= SLAVE_OWN_ADDRESS | I2C_REQUEST_WRITE;

while (!(I2C1->SR1& I2C_SR1_ADDR)){}
(void) I2C1->SR1;
(void) I2C1->SR2;
//Transmit Address begin EEPROM
I2C1->DR|= (uint8_t) adres;
while (!(I2C1->SR1& I2C_SR1_TXE)){}
I2C1->DR|=(uint8_t) (adres>>8);
while (!(I2C1->SR1& I2C_SR1_TXE)){}

I2C1->CR1 |= I2C_CR1_START;
while (!(I2C1->SR1 & I2C_SR1_SB)){}
(void) I2C1->SR1;
I2C1->DR = EEPROM_ADDRESS|I2C_REQUEST_READ;
while (!(I2C1->SR1 & I2C_SR1_ADDR)){}
(void) I2C1->SR1;
(void) I2C1->SR2;
I2C1->CR1 &= ~I2C_CR1_ACK;
while (!(I2C1->SR1 & I2C_SR1_RXNE)){}


data= I2C1->DR;
// while (!(I2C1->SR1 & I2C_SR1_RXNE)){}
//data2 =I2C1->DR;
I2C1->CR1 |= I2C_CR1_STOP;
// return data;
// Delay(5);
}

void i2c2_AF_init(void)
{
GPIOB->AFR[1]&=~GPIO_AFRH_AFSEL10_0;
GPIOB->AFR[1]&=~GPIO_AFRH_AFSEL10_1;
GPIOB->AFR[1]|=GPIO_AFRH_AFSEL10_2 ;
GPIOB->AFR[1]&=~GPIO_AFRH_AFSEL10_3;

GPIOB->AFR[1]&=~GPIO_AFRH_AFSEL11_0;
GPIOB->AFR[1]&=~GPIO_AFRH_AFSEL11_1;
GPIOB->AFR[1]|=GPIO_AFRH_AFSEL11_2;
GPIOB->AFR[1]&=~GPIO_AFRH_AFSEL11_3;
}

void i2c2_init(void)
{
GPIOB->MODER|=GPIO_MODER_MODE10_1;
GPIOB->MODER&=~GPIO_MODER_MODE10_0;
GPIOB->OTYPER|=GPIO_OTYPER_OT10;
GPIOB->MODER|=GPIO_MODER_MODE11_1;
GPIOB->MODER&=~GPIO_MODER_MODE11_0;
GPIOB->OTYPER|=GPIO_OTYPER_OT11;
//RCC->APB1ENR|=RCC_APB1ENR_I2C2EN;

}
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: stm32 eeprom

Сообщение Мурик »

ivan dimir писал(а):когда выполняется комада (чтения eeprom)
На I2C?
Я полагаю мы должны также догадаться в какой строке виснет?
Что за манера написать "на работает" и вывалить код и пусть помогающие догадываются что не работает.
Так задавая вопросы, вероятно ответа не получите.
Реклама
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32 eeprom

Сообщение ivan dimir »

Ну подсказать хоть можно.Где собака зарыта?Вы сразу в штыки .Это же форум для людей.Или как?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: stm32 eeprom

Сообщение Мурик »

ivan dimir писал(а):Ну подсказать хоть можно. Где собака зарыта?
Что подсказать? По коду сразу не скажешь что не так. Нужно запустить под отладчиком, посмотреть логическим анализатором и т. д.
Может у вас ошибка в схеме или забыли резисторы на I2C и может eeprom неисправна или неправильный адрес. Откуда мы можем это знать?
С теми сведениями что вы предоставили можно только гадать что не так. Или вы полагаете что тут экстрасенсы?
ivan dimir писал(а):Вы сразу в штыки.
Неужели вы не понимаете что предоставили очень мало данных чтобы можно было помочь? Разве тут форум экстрасенсов?
ivan dimir писал(а):Это же форум для людей.
Отвечающие (помогающие вам) тоже люди или нет? Вот вы хотите нормальных ответов, а вопрос задали так что ответить по существу сложно.
Если и так дальше будете задавать вопросы, ответов по существу не будет. Не потому что не хотят помогать, просто вопрос задан неправильно.
Напишите подробнее что неправильно работает, в каком месте виснет. Что при этом на шине I2C и т. д. и тогда возможно напишут в чем причина.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: stm32 eeprom

Сообщение VladislavS »

Подсказать можно. Работа с I2C неправильная совсем. Там даже не имеет смысла ошибки искать, всё надо переписывать с нуля. Да, собственно, и всё остальное тоже. Не надо вам программированием заниматься, не ваше это.

А вы могли бы оформлять свои сообщения нормально, чисто из уважения к читающим?
Реклама
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32 eeprom

Сообщение ivan dimir »

спапсибо не наше это .
while (!(I2C1->SR1& I2C_SR1_ADDR))
{
}
Виснет(гаснет) вот на этой строке .Всё написано не мною.Проверено в референс мануал.Вроде всё сходится.Да и в кубе тоже самое.

Добавлено after 7 minutes 3 seconds:
Да и ещё дюдюке.Не боги обжигали горшки. В stm32 сложная структура микросхемы .И они разные серии.А на русском объяснений мало.Не судите ибо вы судимы будете.

Добавлено after 54 minutes 16 seconds:
дюдюка сразу родился программистом высокого класса.
Реклама
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32 eeprom

Сообщение ivan dimir »

У вас одна пустота.По поводу ошибок.Да я ошибаюсь.Кто не ошибается тот ни чего не делает.По поводу присваивания я ещё со школы знал.Только в практике сыроват.Контроллер СТМ для меня новый.Не судите.У вас один большой пробел.Не не берите в голову..Я не хотел вас профи ни обидеть ни унизить.Я считаю если человек хочет знать.Я ему инфу для размышления кину.А он пускай сам думает как эту ситуацию разруливать.Сегодня СТМ.Вчера АВР.Пик контроллеры.А завтра что. Это правда всё философия.Подводные камни в СТМ .Я наткнулся на один из них.

Добавлено after 18 minutes 47 seconds:
Да это не причина.Я всё устранил.И воз и ныне там.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: stm32 eeprom

Сообщение VladislavS »

[uquote="ivan dimir",url="/forum/viewtopic.php?p=3895000#p3895000"]Да это не причина.Я всё устранил.И воз и ныне там.[/uquote]Причина не только это. Всё надо с нуля переписывать. Там неправильного кода больше чем правильного.
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: stm32 eeprom

Сообщение 240265 »

ivan dimir, "Подводные камни в СТМ .Я наткнулся на один из них." Если бы один, у тебя сплошной камнепад от нежелания самостоятельно искать выход путем изучения материалов.
IVL ex UA6PJ
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32 eeprom

Сообщение ivan dimir »

Вы дайте материал для раздумия у меня яндекс не катит.У нас на Украине яндекс не идёт.А что имменно не правильно.Порты определены как альтернативная функция оупен-дроайн.А по поводу функций.Так я у ваших спецов перипесал.
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: stm32 eeprom

Сообщение 240265 »

Кроме яндекса больше поисковиков нет? Или даже на это смекалки не хватает??? Переписывать тоже с УМОМ нужно. Ни кто Вам материал не даст т.к. Вы не хотите приложить хоть какие-то усилия к поиску.
IVL ex UA6PJ
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32 eeprom

Сообщение ivan dimir »

Это библиотека SPL?

Добавлено after 22 minutes 50 seconds:
она мне ничего не даст одни команды.
Ответить

Вернуться в «ARM»