Определения из википедии я читал, спасибо.
Master - это контроллер и инициализируется в режиме MasterRx (т.е. контроллер получает),
следовательно в таком режиме микрофон должен отдавать данные как Slave в пин Master Input Slave Output (т.е. Slave-микрофон данные отдает).
А по факту микрофон подключен на пин для которого допустима инициализация только в режиме MOSI и в примерах константы описаны как MOSI. С MISO контроллер данные не принимает. Почему?
Вот части кода из стандартного примера waverecorder.c:
Код
I2S_InitStructure.I2S_AudioFreq = Freq*2;//i2s two channel mode
I2S_InitStructure.I2S_Standard = I2S_Standard_LSB;
I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16b;
I2S_InitStructure.I2S_CPOL = I2S_CPOL_High;
I2S_InitStructure.I2S_Mode = [b]I2S_Mode_MasterRx[/b];
I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Disable;
#define SPI_[b]MOSI[/b]_PIN GPIO_Pin_3
#define SPI_[b]MOSI[/b]_GPIO_PORT GPIOC
#define SPI_[b]MOSI[/b]_GPIO_CLK RCC_AHB1Periph_GPIOC
#define SPI_[b]MOSI[/b]_SOURCE GPIO_PinSource3
#define SPI_[b]MOSI[/b]_AF GPIO_AF_SPI2
Исходя из документации пин PC3 может быть инициализирован только как MOSI.
Вот и мой вопрос -
почему в режиме MasterRx данные приходят через MOSI ???
Сообщение отредактировал IgorKossak - Apr 8 2016, 17:45
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!