amiller 2 21 февраля, 2014 Опубликовано 21 февраля, 2014 · Жалоба Здравствуйте! В паре мелких проектов использовал процессор STM8S105C4T6. Среда программирования и отладки IAR. При настройке интерфейса SPI заметил такой ньюанс: Если перед включением интерфейса в настройках GPIO установить биты, отвечающий за скорость (с 2МГц на 10МГц), то процессор вылетает по неподдерживаемой ошибке. По крайней мере так говорит отладчик IAR. Если настройки GPIO не трогать, то SPI работает в соответствии с документацией на частоте 4МГц. Всё бы ничего, но документации (RM0016 Reference manual STM8S and STM8A microcontroller families) в разделе 11.8.1 есть такая фраза: Examples: SPI output pins must be set-up as push-pull, fast slope for optimal operation. Т.е. производитель рекомендует выводы настраивать именно так. Может кто-то сталкивался с этим моментом или есть какие-то мысли по этому поводу. Пример кода ниже: //--------------------------------------------- // Инициализация GPIO PC_CR1_bit.C15 = 1; PC_CR2_bit.C25 = 1 // SCK PC_CR1_bit.C16 = 1; PC_CR2_bit.C26 = 1 // MOSI //--------------------------------------------- // Инициализация SPI SPI_CR1 = 0; SPI_CR1_bit.BR = 1; // Fclk / 4 = 4 МГц SPI_CR1_bit.CPOL = 1; // clock polarity SPI_CR1_bit.CPHA = 1; // clock phase SPI_CR1_bit.LSBFIRST = 0; // msb first SPI_CR2 = 0; SPI_CR2_bit.SSI = 1; // master mode SPI_CR2_bit.SSM = 1; // software mode SPI_CR1_bit.MSTR = 1; // master mode SPI_CR1_bit.SPE = 1; // enable SPI Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться