23.07.2013, 16:40
|
|
Временная регистрация
Регистрация: 12.09.2006
Сообщений: 69
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Вопросы по CooCox CoIDE
ещё один глупый вопрос. В Coocox в примерах часто попадаются хидеры типа:
#include "xhw_memmap.h"
#include "xhw_types.h"
#include "xcore.h"
#include "xsysctl.h"
#include "xhw_sysctl.h"
#include "xgpio.h"
я не могу найти их в Coocox. Где их взять?
Последний раз редактировалось banzayy; 23.07.2013 в 16:44.
|
|
|
|
23.07.2013, 18:35
|
|
Прописка
Регистрация: 14.04.2009
Сообщений: 103
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 10 сообщении(ях)
|
Re: Вопросы по CooCox CoIDE
banzayy, это библиотеки coocox, см. репу ниже библиотек от ST
|
|
|
|
24.07.2013, 10:16
|
|
Временная регистрация
Регистрация: 12.09.2006
Сообщений: 69
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Вопросы по CooCox CoIDE
я понимаю, что это его хидеры. В Coocox хидеры подключаются выбором нужных в REPOSITORY/PERIPHERAL. я попереключал все и нужных хидеров в проекте не увидел. Да, в примерах в REPO в COMPONENT я их видел, но они под другие контроллеры. Мне нужно под STM32F407. Или их под него нет?
|
|
|
|
24.07.2013, 12:13
|
|
Временная регистрация
Регистрация: 12.09.2006
Сообщений: 69
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Вопросы по CooCox CoIDE
всё, кажется понял. Я их не находил, т.к. их для STM32F407 попросту нет меню PERIPHERAL.COX. При создании проекта для STM32F100 я их нашёл.
но не могу понят ещё один момент. Вот где эти хидеры подключаются?
#include "systick.h"
#include "stm32f10x_systick.h"
|
|
|
|
24.07.2013, 12:16
|
|
Временная регистрация
Регистрация: 12.09.2006
Сообщений: 69
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Вопросы по CooCox CoIDE
Сообщение от ATMExpert
|
вместо GPIO_Mode_IN попробуй GPIO_Mode_IN_FLOATING;
строку GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; убери
|
для STM32F407 в хидере GPIO есть только
GPIO_Mode_IN = 0x00, /*!‹ GPIO Input Mode */
GPIO_Mode_OUT = 0x01, /*!‹ GPIO Output Mode */
GPIO_Mode_AF = 0x02, /*!‹ GPIO Alternate function Mode */
GPIO_Mode_AN = 0x03 /*!‹ GPIO Analog Mode */
так, что на GPIO_Mode_IN_FLOATING компилятор ругается
|
|
|
|
29.07.2013, 08:46
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Вопросы по CooCox CoIDE
Столкнулся с проблемой в Coocox. Не мог на плате STM32F4Discovery запустить работу с внешним DAC. Убил кучу времени на поиск ошибки.
Оказалось с Coocox в комплекте идет более старая версия файла system_stm32f4xx.c в которой не хватает кода для инициализации тактирования блока I2S.
|
|
|
|
29.07.2013, 08:54
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Вопросы по CooCox CoIDE
Flopix, может почитаете посты с самого начала ?
Стоит ли тратить время на сырую хрень?
Допиливать IDE вместо работы над проектом?
__________________
Осторожно , злой кот
|
|
|
|
29.07.2013, 09:14
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Вопросы по CooCox CoIDE
dosikus, я уже это понял. От Сoocox мне нужен просто эклипсоподобный редактор и рабочая из коробки отладка. Библиотеки все подключаю вручную.
|
|
|
|
30.07.2013, 09:29
|
|
Временная регистрация
Регистрация: 12.09.2006
Сообщений: 69
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Вопросы по CooCox CoIDE
вчера добрался до ADC. Столкнулся с такой проблемой. Если указать АЦП 8 бит, то результат отображается правильно (от 0 до 255), если 10 или 12 бит, то всё равно младшие 8 бит. Измеряет видимо правильно, т.к. при повороте потенциометра 255 проскакивает пару раз. Функция преобразования числа и вывода на ЖКИ работает правильно, т.к. если задать data=65535(16-и битное число), то всё выводит правильно. Не пойму куда деваются старшие 2(4) разряда.
Код:
|
/* GPIOA Periph clock enable */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
// input of ADC (it doesn't seem to be needed, as default GPIO state is floating input)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//************************************************** *****************************
/* разрешаем тактирование AЦП1 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
/* АЦП1 и АЦП2 работают независимо */
adc_init.ADC_Mode = ADC_Mode_Independent;
adc_init.ADC_Prescaler = ADC_Prescaler_Div4;
/* выключаем scan conversion */
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
/* Одиночное преобразование */
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
/* Начинать преобразование програмно */
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConvEdge_None;
/* 12 битное преобразование. результат в 12 младших разрядах результата */
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
/* инициализация */
ADC_CommonInit(&adc_init);
ADC_Init(ADC1, &ADC_InitStructure);
/* Включаем АЦП1 */
ADC_Cmd(ADC1, ENABLE);
//************************************************** *****************************
lcd_set_xy(0,0);
lcd_out("test ADC convert");
while(1)
{
data=readADC1(3);
lcd_set_xy(0,1);
sprintf (string_out,"%6i", data);
lcd_put(string_out);
delay_ms(500);
}
}
uint16_t readADC1(unsigned char channel)
{
ADC_RegularChannelConfig(ADC1, channel, 1, ADC_SampleTime_3Cycles);
// начинаем работу
ADC_SoftwareStartConv(ADC1);
// ждём пока преобразуется напряжение в код
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
// возвращаем результат
return ADC_GetConversionValue(ADC1);
} |
вот так работает. спасибо
Последний раз редактировалось banzayy; 30.07.2013 в 13:45.
|
|
|
|
30.07.2013, 09:36
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Вопросы по CooCox CoIDE
banzayy, Для начала оформите код как следует.
У вас readADC1 что возвращает ?
И что вы хотите получить , сами обрезая результат...
И вопрос Вам :
Зачем сие -
Код:
|
/* сбрасываем настройки АЦП */
ADC_DeInit(); |
Не спешите отвечать , не подумав...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 30.07.2013 в 09:43.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:06.
|
|