Прочитал все ваши посты, спасибо, многое проясняется потихоньку.
А насчет стиля... вот уже несколько лет програмирую на плюсах, на асме и яве и того больше.
Год назад пришлось учить PHP, это вообще жесть
Причем стиль строго заставляют соблюдать, иначе прогу сдать практически нереально.
Так что он со временем вырабатывается свой - главное, самому его придерживаться
Кстати, за время ковыряния проца, возникла проблема с интерфейсом SPI.
Сначала настраиваю интерфейс:
Код: Выделить всё
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER |= GPIO_MODER_MODER4_0; //port in output mode
GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4; //high speed
GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_4); //push-pull
GPIOA->BSRR = GPIO_BSRR_BS_4; //set one to self
GPIOA->MODER |= GPIO_MODER_MODER5_1; //alternate
GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR5; //high speed
GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_5); //push-pull
GPIOA->MODER &= ~(GPIO_MODER_MODER6); //input mode
GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6; //high speed
GPIOA->PUPDR |= GPIO_PUPDR_PUPDR6_0; //pull-up
//GPIOA->BSRR = GPIO_BSRR_BS_6;
GPIOA->MODER |= GPIO_MODER_MODER7_1; //alternate
GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7; //high speed
GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_7); //push-pull
RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;
SPI1->CR1 |= SPI_CR1_MSTR;
SPI1->CR1 |= SPI_CR1_SSI;
SPI1->CR1 |= SPI_CR1_SSM;
SPI1->CR1 |= SPI_CR1_BR;
SPI1->CR2 = SPI_CR2_DS;
SPI1->CR1 |= SPI_CR1_SPE; Код: Выделить всё
if ((SPI1->SR & SPI_SR_TXE) == SPI_SR_TXE) /* Test Tx empty */
//{
SPI1->DR = 0xFF;
GPIOB->BSRR = GPIO_BSRR_BS_1;
// }Причем светодиод загорается, то есть условие выполняется.
Скажите, пожалуйста, что и где я делаю не так?


