Pagina 1 di 1

STM32 I2C

MessaggioInviato: 18 mag 2013, 11:08
da silvio93
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

Re: STM32 I2C

MessaggioInviato: 18 mag 2013, 11:16
da simo85
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_/

Re: STM32 I2C

MessaggioInviato: 18 mag 2013, 14:08
da silvio93
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.

Re: STM32 I2C

MessaggioInviato: 19 mag 2013, 8:04
da simo85
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.

Re: STM32 I2C

MessaggioInviato: 19 mag 2013, 10:51
da TardoFreak
Purtroppo no. :(
Non ho mai avuto bisogno di usare I2C.
Ma negli esempi di Keil o ST si trova di tutto. :ok:

Re: STM32 I2C

MessaggioInviato: 19 mag 2013, 11:03
da silvio93
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.

Re: STM32 I2C

MessaggioInviato: 19 mag 2013, 11:16
da simo85
Se allegavi il datasheet si poteva fare qualcosa.

Evidentemente perdo tempo quando scrivo. :(

Re: STM32 I2C

MessaggioInviato: 19 mag 2013, 11:42
da TardoFreak
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.

Re: STM32 I2C

MessaggioInviato: 19 mag 2013, 11:59
da silvio93
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