Página 1 de 1
Convertendo biblioteca Keil para CooCox

Enviado:
13 Jun 2013 13:37
por longo.251272
Boa tarde pessoal, comecei a converter algumas bibliotecas do kit que esta em Keil para o CooCox e esbarrei na função RCC_APB2Periph_GPIOA.
Não estou achando ela no arquivo stm32f4xx_rcc.h, no arquivo stm32f10x_rcc.h tem, mas quero evitar de acrescentar ele ao projeto.
Alguém sabe qual a função no stm32f4xx_rcc.h equivalente ao RCC_APB2Periph_GPIOA do stm32f10x_rcc.h ?
Re: Convertendo biblioteca Keil para CooCox

Enviado:
13 Jun 2013 15:33
por proex
No 407 o RCC_APB2Periph_GPIOA não existe. Vc tem que usar a funçao RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState)
Fica assim então:
RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA, ENABLE);
.
Re: Convertendo biblioteca Keil para CooCox

Enviado:
14 Jun 2013 09:04
por longo.251272
Valeu pela dica proex,
Acabei atualizando desse forma,
// RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);
Fiquei mais na dúvida porque os valores definidos em RCC_AHB1Periph_GPIOX no stm32f4xx estão diferentes.
Re: Convertendo biblioteca Keil para CooCox

Enviado:
15 Jun 2013 09:54
por longo.251272
proex, você esta certo. Verifiquei o certo é RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);
Re: Convertendo biblioteca Keil para CooCox

Enviado:
18 Jun 2013 09:43
por longo.251272
Bom dia pessoal, estou apanhando para atualizar essa rotina :
- Código: Selecionar todos
void delay_us(u32 Nus)
{
SysTick_SetReload(delay_fac_us * Nus);
SysTick_CounterCmd(SysTick_Counter_Clear);[color=#FF0000] // error: 'SysTick_Counter_Clear' undeclared (first use in this function)[/color]
SysTick_CounterCmd(SysTick_Counter_Enable); // error: 'SysTick_Counter_Enable' undeclared (first use in this function)
do
{
Status = SysTick_GetFlagStatus(SysTick_FLAG_COUNT);
}while (Status != SET);
SysTick_CounterCmd(SysTick_Counter_Disable);
SysTick_CounterCmd(SysTick_Counter_Clear);
}
Vendo a documentação não cheguei a nenhuma conclusão.
/ ************************************************* ******************************
* Function Name: SysTick_CounterCmd
* Description: Enables or disables the SysTick counter.
* Input: - SysTick_Counter: new state of the SysTick counter.
* This parameter can be one of the Following values:
* - SysTick_Counter_Disable: Disable counter
* - SysTick_Counter_Enable: Enable counter
* - SysTick_Counter_Clear: Clear counter value to 0
* Output: None
* Return: None
************************************************** ***************************** /
void SysTick_CounterCmd (u32 SysTick_Counter)
{
/ * Check the parameters * /
assert_param (IS_SYSTICK_COUNTER (SysTick_Counter));
if (SysTick_Counter == SysTick_Counter_Enable)
{
SysTick-> CTRL | = SysTick_Counter_Enable;
}
else if (SysTick_Counter == SysTick_Counter_Disable)
{
SysTick-> CTRL & = SysTick_Counter_Disable;
}
else / * SysTick_Counter SysTick_Counter_Clear == * /
{
SysTick-> VAL = SysTick_Counter_Clear;
}
}
Estou apanhando para resolver esse problema.
Re: Convertendo biblioteca Keil para CooCox

Enviado:
26 Set 2013 10:47
por proex
Eu nao estou entendendo o que vc esta querendo fazer com o Systick.
No 407 não precisa dessas linhas que vc colocou ai.
Basta isso:
SysTick_Config(SystemCoreClock / 1000) // configura e habilita o Systick para interromper a cada 1mS
void SysTick_Handler(void) // Rotina de interrupçao do Systick
{
suas rotinas
}
Veja que nao precisa nada daquilo que vc esta colocando.
.