Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => ARM7 Mikrodenetleyici => Konuyu başlatan: ali.bayuk - 19 Haziran 2014, 20:48:56

Başlık: STM32F0 Discovery kiti USART1 sorunu
Gönderen: ali.bayuk - 19 Haziran 2014, 20:48:56
Arkadaşlar kolay gelsin,
STM32F0 Discovery kitimle bişeyler yazmaya çalışıyorum. USART2 yi rahatlıkla kullanabiliyorum fakat ne yaptıysam USART1 i kullanamadım. Kodu aşağıya ekledim. Hatanın nerede olduğunu görebilirseniz çok mutlu olurum. Kafama takıldı uyuyamaz oldum.

#include <stdint.h>
#include <system_stm32f0xx.h>
#include <stm32f0xx_gpio.h>
#include <stm32f0xx_rcc.h>
#include <stm32f0xx_usart.h>
#include <stm32f0xx_misc.h>

void uart_send_char(char chr);
void uart_send_string(unsigned char *string);

void USART1_IRQHandler(void)
{
char temp;
temp=USART_ReceiveData(USART1);
uart_send_char(temp);
}

void uart_send_char(char chr)
{
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
USART_SendData(USART1, chr);
}

void uart_send_string(unsigned char *string)
{
    while(*string)
    {
    uart_send_char(*string);
        *string++;
    }
}

int main (void)
{
uint32_t times;
USART_InitTypeDef USART_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStruct;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1);

//Configure USART1 pins:  Rx and Tx ----------------------------
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

//Configure USART1 setting:         ----------------------------
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);

USART_Cmd(USART1,ENABLE);

uart_send_string("BASLA!\r\n");

while(1)
{
uart_send_string("Merhaba Dunya!\r\n");
for(times = 0; times < 5000000; times++);
}

return 0;
}

Teşekkürler.
Başlık: Ynt: STM32F0 Discovery kiti USART1 sorunu
Gönderen: ali.bayuk - 21 Haziran 2014, 14:22:51
arkadaşlar kimse bir hata göremedi mi?
Başlık: Ynt: STM32F0 Discovery kiti USART1 sorunu
Gönderen: pisayisi - 21 Haziran 2014, 19:44:58
PA9 VE PA10 Pinleri dahili olarak stlink çipine bağlı görünüyor, bu nedenle sorun çıkıyor olabilir. Sb14 ve Sb15 lehim köprüleri ile jp1 jakına bakarak bu pinlerin dıştaki tanımlı pinlere bağlı olup olmadığını da inceleyebilir, yada stlink ile usart1 bağlantısını ayırabilirsin...
Başlık: Ynt: STM32F0 Discovery kiti USART1 sorunu
Gönderen: ali.bayuk - 21 Haziran 2014, 21:05:45
hocam yanıtınız için teşekkür ederim,
bende kendi üzerinde bir yerlere gidiyordur diye düşünmüştüm fakat onunla ilgili bir şeyler bulamamıştım. peki şu yolu denedim PB6 ve PB7 olarak kullandım usart1'i.bunun için sadece pin tanımlamasını değiştirdim yine olmadı. acaba usart1 ayarlarında da bir değişiklik yapmam gerekir mi?
cevaplarınız için şimdiden teşekkür ederim.
Başlık: Ynt: STM32F0 Discovery kiti USART1 sorunu
Gönderen: MC_Skywalker - 22 Haziran 2014, 08:05:59
pisayisi'nın da dediği gibi bazı pinler kart üsütün de kullanılıyor.

(http://img263.imageshack.us/img263/4633/pinlistesi.jpg)
Başlık: Ynt: STM32F0 Discovery kiti USART1 sorunu
Gönderen: ali.bayuk - 23 Haziran 2014, 16:00:57
cevaplarınız için çok teşekkür ederim, ellerinize sağlık.