реклама на сайте
подробности

 
 
> STM32F103R8 неправильные значений в DR регистре модуля SPI
georgfour
сообщение May 4 2016, 18:02
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 31-12-15
Пользователь №: 89 900



Добрый день.
В IAR отлаживаю микроконтроллер STM32F103R8.
При записи числа, например 0x0000 в регистр DR в реальном регистре значение равно 0xE000 (привожу скриншот для этого случая).
При записи, например, 0x00FE реальное значение регистра равно 0xC0FF. Ну и тому подобное.
В чем может быть проблема?
Сам код:
CODE
#include "stm32f10x.h"

void init_clock(void)
{
RCC->APB2ENR|=RCC_APB2ENR_IOPBEN;
RCC->APB1ENR|=RCC_APB1ENR_SPI2EN;
}

void init_gpio(void)
{
GPIOB->CRH|=(GPIO_CRH_CNF13_1|GPIO_CRH_MODE13_0|GPIO_CRH_MODE13_1);
GPIOB->CRH&=~GPIO_CRH_CNF13_0;//set PA5(SCK) pin for SPI2
GPIOB->CRH|=(GPIO_CRH_CNF15_1|GPIO_CRH_MODE15_0|GPIO_CRH_MODE15_1);
GPIOB->CRH&=~GPIO_CRH_CNF15_0;//set PA7(MOSI) pin for SPI2
GPIOB->CRH|=(GPIO_CRH_MODE12_0|GPIO_CRH_MODE12_1);
GPIOB->CRH&=~(GPIO_CRH_CNF12_0|GPIO_CRH_CNF12_1);//set PA4(NSS) pin for SPI2 in software mode
}

void init_spi1(void)
{
SPI2->CR1|=(SPI_CR1_BR_0|SPI_CR1_BR_1);//set baud rate Fpclk/16
SPI2->CR1|=SPI_CR1_CPOL;//set polarity
SPI2->CR1|=SPI_CR1_DFF;//set 16-bit frame format
SPI2->CR1&=~SPI_CR1_LSBFIRST;//set MSBFIRST frame format
SPI2->CR1|=SPI_CR1_SSM;//set software NSS pin management
SPI2->CR1|=SPI_CR1_SSI;//set NSS bit
SPI2->CR1|=SPI_CR1_MSTR;//set MASTER mode
SPI2->CR1|=SPI_CR1_SPE;//enable SPI
}

void set_dac1(int voltage)
{
GPIOB->BSRR|=GPIO_BSRR_BS12;
SPI2->DR=((uint16_t)voltage);
if ((SPI2->SR) & SPI_SR_TXE)
{
GPIOB->BRR|=GPIO_BSRR_BS12;
}
}

int main(void)
{
init_clock();
init_gpio();
init_spi1();
while(1)
{
//set_dac1(0x01FF);
GPIOB->BSRR|=GPIO_BSRR_BS12;
SPI2->DR=0xE;
if ((SPI2->SR) & SPI_SR_TXE)
{
GPIOB->BRR|=GPIO_BSRR_BS12;
}
}

}


Сообщение отредактировал IgorKossak - May 5 2016, 08:16
Причина редактирования: [codebox] для длинного кода. [code]-для короткого!!!

Прикрепленные изображения
Прикрепленное изображение Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
georgfour
сообщение May 4 2016, 18:33
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 31-12-15
Пользователь №: 89 900



Тогда следует ее следует инициализировать с подтяжкой к нулю?
Go to the top of the page
 
+Quote Post
nanorobot
сообщение May 4 2016, 18:43
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(georgfour @ May 5 2016, 00:33) *
Тогда следует ее следует инициализировать с подтяжкой к нулю?

Сконфигурировать как неиспользуемую для SPI или использовать для любых других целей, а на содержиое DR после вывода - забить.

можно для проверки моих слов подтянуть к нулю , затем к единице, и сравнить результаты. но проще - забить.

Сообщение отредактировал nanorobot - May 4 2016, 18:45
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 20:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016