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

 
 
> usart stm32l, Помогите разобраться
Dele
сообщение Apr 12 2014, 20:41
Сообщение #1


Участник
*

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



Добрый день!
Неполучается уже второй день запустить USART на STM32L-DISCOVERY Среда Coocox
Логическим анализатором смотрю нету ничего...
РА 2Tx
PA 3Rx

КОД:
CODE
#include "stm32l1xx_gpio.h"
#include "stm32l1xx_rcc.h"
#include "stm32l1xx.h"
#include "misc.h"
#include "stm32l1xx_usart.h"



void Usart1_Transmit(uint8_t); //Объявление функции передачи символа через USART
void Usart1_Transmit_str(char* str); //Объявление функции передачи строки через USART
void usart(void);

void RCC_Configuration(void)
{
SystemInit(); // Сброс по умолчанию
GPIO_DeInit(GPIOA);
GPIO_DeInit(GPIOB);
GPIO_DeInit(GPIOC);
GPIO_DeInit(GPIOD);
GPIO_DeInit(GPIOE);

RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB |
RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOD |
RCC_AHBPeriph_GPIOE, ENABLE);

RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOAEN, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIODEN, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOBEN, ENABLE);
}

void init_led()
{
GPIO_InitTypeDef PORT;
PORT.GPIO_Pin = (GPIO_Pin_7 | GPIO_Pin_6);
PORT.GPIO_Mode = GPIO_Mode_OUT;
PORT.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init( GPIOB , &PORT);
}

void init_but()
{
GPIO_InitTypeDef BUTA;
BUTA.GPIO_Pin = GPIO_Pin_0;
BUTA.GPIO_Mode = GPIO_Mode_IN;
BUTA.GPIO_Mode = GPIO_PuPd_NOPULL;
BUTA.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init( GPIOA , &BUTA);

GPIO_InitTypeDef BUTD;
BUTD.GPIO_Pin = GPIO_Pin_2;
BUTD.GPIO_Mode = GPIO_Mode_IN;
BUTD.GPIO_Mode = GPIO_PuPd_UP;
BUTD.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init( GPIOD , &BUTD);
}

void usart()
{

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //Включаем тактирование USART1
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2); //Rx
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); //Tx
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = (GPIO_Pin_2); //Настройки будут производится для вывода PA2 TX
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; //Режим альтернативной функции
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; //Выход Push-Pull
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; //Выход без подтягивающих резисторов
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_40MHz; //Скорость порта максимальная
GPIO_Init(GPIOA, &GPIO_InitStruct); //Заданные настройки сохраняем в регистрах GPIOА

GPIO_InitStruct.GPIO_Pin = (GPIO_Pin_3); //Настройки будут производится для вывода PA3 //Rx
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; //Режим альтернативной функции
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; //Режим альтернативной функции
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; //Выход без подтягивающих резисторов
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_40MHz; //Скорость порта максимальная
GPIO_Init(GPIOA, &GPIO_InitStruct); //Заданные настройки сохраняем в регистрах GPIOА
//Инициализация USART1


USART_InitTypeDef USART_InitStruct;
USART_InitStruct.USART_BaudRate = 9600; //Скорость обмена 9600 бод
USART_InitStruct.USART_WordLength = USART_WordLength_8b; //Длина слова 8 бит
USART_InitStruct.USART_StopBits = USART_StopBits_1; //1 стоп-бит
USART_InitStruct.USART_Parity = USART_Parity_No ; //Без проверки четности
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //Без аппаратного контроля
USART_InitStruct.USART_Mode = USART_Mode_Tx ; //Включен только передатчик USART1
USART_Init(USART2, &USART_InitStruct); //Заданные настройки сохраняем в регистрах USART1
USART_Cmd(USART2, ENABLE); //Включаем USART1
}
void Usart1_Transmit(uint8_t data)
{
while(!(USART2->SR & USART_SR_TC)); //Ждем установки флага TC - завершения передачи
USART2->DR = data;
}
void Usart1_Transmit_str(char* str)
{
uint8_t i=0;
while(str[i])
{
Usart1_Transmit(str[i]);
i++;
}
Usart1_Transmit('n');
Usart1_Transmit('r');
}


int main(void)
{
RCC_Configuration();
init_led();
init_but();
usart();

int i=0;
while(1)
{
Usart1_Transmit_str('STM32L-DISCOVERY'); //Вызов функции передачи строки через USART
for(i=0; i<1000; i++); //Временная задержка
}

}


Сообщение отредактировал Dele - Apr 13 2014, 04:31
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexdos
сообщение Apr 13 2014, 04:55
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856



не вижу включение тактирования альтернативных функций.
Go to the top of the page
 
+Quote Post
Dele
сообщение Apr 13 2014, 04:57
Сообщение #3


Участник
*

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



Цитата(alexdos @ Apr 13 2014, 08:55) *
не вижу включение тактирования альтернативных функций.

В самом начале определил тактирование на все порты и Альт. функции в RCC_Configuration(void)
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Apr 13 2014, 07:56
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Dele @ Apr 13 2014, 08:57) *
В самом начале определил тактирование на все порты и Альт. функции в RCC_Configuration(void)


надо не забывать, о правильном выставления делителя для первого usart-а. Он(и 6, если память не подводит) тактируется с другой шины чем 2,3 и т.д..
на приёмнике при этом приём идёт, но принимает крокозябрики.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dele   usart stm32l   Apr 12 2014, 20:41
- - garlands   http://we.easyelectronics.ru/STM32/uart-us...m32l-...   Apr 12 2014, 21:16
- - Timma   while(!(USART2->SR & USART_SR_TC)); //Ж...   Apr 13 2014, 02:29
|- - Dele   Цитата(Timma @ Apr 13 2014, 06:29) while(...   Apr 13 2014, 04:29
- - Timma   Если USART настроен только на вывод, зачем подключ...   Apr 13 2014, 05:13
- - Dele   Пробовал уже без пина на ввод РА3 так же. USART1 т...   Apr 13 2014, 10:32
- - Golikov A.   ну нормальные дела, заглушка от не назначенной фун...   Apr 13 2014, 13:13
|- - jcxz   Цитата(Golikov A. @ Apr 13 2014, 19:13) б...   Apr 13 2014, 15:05
- - adnega   Может, в HardFault улетает?   Apr 13 2014, 13:20
- - Golikov A.   Знаю, но чем дальше тем труднее противостоять эксп...   Apr 13 2014, 15:15
|- - jcxz   А я вот как раз сейчас в одном из проектов его и п...   Apr 13 2014, 15:18
- - Dele   Планирую дальше организовать радиосвязь между двум...   Apr 14 2014, 07:47


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

 


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


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