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

 
 
> Не компилируется StdPeriph
Memento Mori
сообщение Nov 14 2012, 20:32
Сообщение #1


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

Группа: Участник
Сообщений: 151
Регистрация: 1-10-12
Пользователь №: 73 751



Скачал с официального сайта указанную библиотеку.
Сделал все по инструкции http://amberclan.clan.su/publ/uroki_po_pro...periph/7-1-0-81

Не компилируется, выдает ошибку "STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c(2870): error: #20: identifier "TIM_CCER_CC4NP" is undefined "

Что делать и кто виноват?
Прикрепленные файлы
Прикрепленный файл  TEST.rar ( 3.02 мегабайт ) Кол-во скачиваний: 9
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
spectral1989
сообщение Nov 15 2012, 02:33
Сообщение #2


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

Группа: Свой
Сообщений: 76
Регистрация: 5-04-12
Из: Томск
Пользователь №: 71 210



у вас header контроллера и std periph библиотека разных версий.
Go to the top of the page
 
+Quote Post
Memento Mori
сообщение Nov 15 2012, 05:32
Сообщение #3


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

Группа: Участник
Сообщений: 151
Регистрация: 1-10-12
Пользователь №: 73 751



Исправил. Все равно выдает ту же ошибку.

Прикрепленные файлы
Прикрепленный файл  TEST.rar ( 3.02 мегабайт ) Кол-во скачиваний: 7
 
Go to the top of the page
 
+Quote Post
011119xx
сообщение Nov 15 2012, 05:47
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



В stm32f10x.h такое определение:
Код
#define  TIM_CCER_CC4E                       ((uint16_t)0x1000)            /*!<Capture/Compare 4 output enable */
#define  TIM_CCER_CC4P                       ((uint16_t)0x2000)            /*!<Capture/Compare 4 output Polarity */

А stm32f10x_tim.c использует TIM_CCER_CC4NP. Поэтому возникает ошибка.
Go to the top of the page
 
+Quote Post
Memento Mori
сообщение Nov 15 2012, 08:06
Сообщение #5


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

Группа: Участник
Сообщений: 151
Регистрация: 1-10-12
Пользователь №: 73 751



скачал заново все одной версии, скомпилировал, заработало.

Появился еще вопрос.
Инициализирую порт:
Цитата
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
GPIOA->CRL &= ~GPIO_CRL_CNF3;
GPIOA->CRL |= GPIO_CRL_MODE3_0; // 10 МГц


Объясните, почему для CNF используется операция &= ~, а для Mode - операция ИЛИ ?
Я так понял, что операция, производимая с CNF3 приведет к обнулению соответствующих битов, чему бы они раньше не равнялись. А операция с Mode3_0 не затронет бит Mode3_1?

То есть, если я хочу включить 10 МГц, до этого у меня были нули (вывод на вход), то это сработает.
А если был режим 50 МГц, то его нужно сначала обнулить?
Go to the top of the page
 
+Quote Post
spectral1989
сообщение Nov 16 2012, 01:17
Сообщение #6


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

Группа: Свой
Сообщений: 76
Регистрация: 5-04-12
Из: Томск
Пользователь №: 71 210



Цитата
То есть, если я хочу включить 10 МГц, до этого у меня были нули (вывод на вход), то это сработает.
А если был режим 50 МГц, то его нужно сначала обнулить?

верно
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:03
Рейтинг@Mail.ru


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