Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

STM32 I2C

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] STM32 I2C

Messaggioda Foto Utentesilvio93 » 18 mag 2013, 11:08

Buongiorno a tutti,
ho qualche problema nell'implementazione dell'interfaccia I2C del micro stm32f100.
Questa dovrebbe essere la inizializzazione:
Codice: Seleziona tutto
#include <stm32f10x.h>



void I2CG_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
    I2C_InitTypeDef  I2C_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    // GPIOB clock enable
       
   
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
   // I2CG clock enable
   
    // I2CG SCL and SDA configuration
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
   
    // Enable I2CG reset state
    RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE);
   
       // Release I2CG from reset state
       RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE);
         
    I2C_DeInit(I2C1);
    I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
    I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
    I2C_InitStructure.I2C_OwnAddress1 =  1;
    I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
    I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
    I2C_InitStructure.I2C_ClockSpeed = 300;


    I2C_Init(I2C1, &I2C_InitStructure);
    I2C_Cmd(I2C1, ENABLE);
    I2C_AcknowledgeConfig(I2C1, ENABLE);
}




int main(){
   
   I2CG_Init();
   
   while(1)
   I2C_SendData(I2C1,7);
   
}


Però andando, con l'oscilloscopio, nei pin PB6 e PB7 non esce niente.
Qulache consiglio? grazie in anticipo
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[2] Re: STM32 I2C

Messaggioda Foto Utentesimo85 » 18 mag 2013, 11:16

silvio93 ha scritto:Qulache consiglio? grazie in anticipo

Sarebbe interessante leggere la sezione apposita del datasheet.

Hai dato una occhiata alla documentazione ufficiale della librerie ST?
O_/
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[3] Re: STM32 I2C

Messaggioda Foto Utentesilvio93 » 18 mag 2013, 14:08

simo85 ha scritto:Sarebbe interessante leggere la sezione apposita del datasheet.

Hai dato una occhiata alla documentazione ufficiale della librerie ST?
O_/


A proposito dell'help, volevo capire una cosa.
Ad esempio se io volessi inizializzare una porta, vado su Modules->STM32F10x_StdPeriph_Driver->GPIO->GPIO_Private_Functions e da qui tipo guardo GPIO_Init e vado nella sezione delle InitTypeDef. Però non c'è un esempio esplicito di tutto quello che va dichiarato per farla funzionare. Non so se mi sono spiegato ma io speravo di trovarci tipo un codice di esempio che inizializzasse la periferica e specificasse i vari passaggi.
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[4] Re: STM32 I2C

Messaggioda Foto Utentesimo85 » 19 mag 2013, 8:04

Putroppo non ho esperienza con l' STM32F1, bensì con il Cortex M4.

silvio93 ha scritto:vado su Modules->STM32F10x_StdPeriph_Driver->GPIO->GPIO_Private_Functions e da qui tipo guardo GPIO_Init e vado nella sezione delle InitTypeDef


Non ho capito. Io avevo chiesto un datasheet del micro. :(

Magari vediamo se Foto UtenteTardoFreak ha la soluzione sulla punta delle dita.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[5] Re: STM32 I2C

Messaggioda Foto UtenteTardoFreak » 19 mag 2013, 10:51

Purtroppo no. :(
Non ho mai avuto bisogno di usare I2C.
Ma negli esempi di Keil o ST si trova di tutto. :ok:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[6] Re: STM32 I2C

Messaggioda Foto Utentesilvio93 » 19 mag 2013, 11:03

TardoFreak ha scritto:Ma negli esempi di Keil o ST si trova di tutto. :ok:


Scusa ma io su keil ho trovato solo gli esempi per il blink, che stanno in questo percorso: C:\Keil\ARM\Boards\ST.
Mi basterebbe trovare un esempio funzionante che mandi anche solo un bit, così da capire quali sono le configurazioni necessarie.
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06

0
voti

[7] Re: STM32 I2C

Messaggioda Foto Utentesimo85 » 19 mag 2013, 11:16

Se allegavi il datasheet si poteva fare qualcosa.

Evidentemente perdo tempo quando scrivo. :(
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[8] Re: STM32 I2C

Messaggioda Foto UtenteTardoFreak » 19 mag 2013, 11:42

in Keil\ARM\Boards\MCBSTM32E\Demo trovi il appunto, il demo della scheda che fa da lettore di files .wav ed usa un codec audio comandato da I2C.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[9] Re: STM32 I2C

Messaggioda Foto Utentesilvio93 » 19 mag 2013, 11:59

simo85 ha scritto:Se allegavi il datasheet si poteva fare qualcosa.

Evidentemente perdo tempo quando scrivo. :(


Si scusa, ecco il link: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00246267.pdf
Avatar utente
Foto Utentesilvio93
405 2 7
 
Messaggi: 26
Iscritto il: 21 apr 2013, 17:06


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti