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

 
 
> Проблема с usart, не записывает значения в регистры
THI
сообщение Mar 4 2013, 13:57
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 4-03-13
Пользователь №: 75 886



Здравствуйте, уважаемые форумчане!

Существует плата с неким функционалом для работы с пк через usb. Используемый мк был msp430, а теперь решили перейти на stm. И при первоначальных тестах у меня возникли 2 проблемы. Первая проблема - это отправка данных с платы через уарт на пк. На прием все работало хорошо. Открыл список регистров, выяснилось что в регистр USART1->DR не записываются данные. Решил проверить, запишется ли значение в usart2->dr. Добавил код настройки 2го уарта, запустил... и обнаружил, что в оба уарта теперь вообще ничего не записывается, ни в один регистр. Попытался убрать код, проблема осталась. Собственно, это 2 проблема. Используемый код
CODE
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
int i;

char* trans_dist;
int trans_n, trans_cur;
char flag_1 = 0;
char text_1[]={'h','e','l','l','o'};

void Transmit_data(char* source, int n)
{
int i=0;
for(;i<n;i++)
{
//volatile char temp;
USART1->SR &= ~USART_SR_TC;
while(!(USART1->SR & USART_SR_TXE));
USART1->DR = *source;
//temp = USART1->DR;
++source;
if (i==(n-1))
flag_1 = 0;
}
}



int main(void)
{
RCC->CR|=RCC_CR_HSION;
while (!(RCC->CR & RCC_CR_HSIRDY));
RCC->CFGR &=~RCC_CFGR_SW;
RCC->CFGR |= RCC_CFGR_SW_HSI;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
GPIOA->CRL |= GPIO_CRL_CNF1_0 | GPIO_CRL_CNF2_1 | GPIO_CRL_MODE2_1 | GPIO_CRL_CNF4_1 | GPIO_CRL_MODE4_1 |
GPIO_CRL_CNF5_0 | GPIO_CRL_CNF6_0 | GPIO_CRL_CNF7_0;
GPIOA->CRL &= ~(GPIO_CRL_CNF2_0 | GPIO_CRL_CNF4_0);
GPIOA->CRH |= GPIO_CRH_CNF9_1 | GPIO_CRH_MODE9_1 | GPIO_CRH_CNF10_0 | GPIO_CRH_CNF12_1 | GPIO_CRH_MODE12_1;
GPIOA->CRH &= ~(GPIO_CRH_CNF9_0 | GPIO_CRH_CNF12_0);
GPIOB->CRL |= GPIO_CRL_MODE0_1 | GPIO_CRL_MODE1_1 | GPIO_CRL_MODE2_1;
GPIOB->CRH |= GPIO_CRH_MODE10_1 | GPIO_CRH_MODE12_1 | GPIO_CRH_CNF13_0;
GPIOC->CRH |= GPIO_CRH_CNF13_0;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);
USART1->BRR = (8000000+19200/2)/19200;
USART1->CR1 |= USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;
USART1->CR1 |= USART_CR1_UE;
//USART2->BRR = (8000000+19200/2)/19200;
//USART2->CR1 |= USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE;
//USART2->CR1 |= USART_CR1_UE;
NVIC_EnableIRQ(USART1_IRQn);

while(1)
{
if (flag_1)
Transmit_data(text_1, 5);
//USART1->DR |= 49;
}
}
void USART1_IRQHandler(void)
{
//char t;
if(USART1->SR & USART_SR_RXNE)
{
flag_1 = 1;
USART1->SR &= ~USART_SR_RXNE;
//t = USART1->DR;
}
if(USART1->SR & USART_SR_TXE)
{
//USART1->SR &= ~USART_SR_TXE;
}
}

PA2 и PA3 - выход и вход для usart2, PA9 и PA10 - выход и вход для usart1
Среда: CooCox CoIDE 1.6.2, мк: stm32f100c4
Интересно ваше мнение по поводу обеих проблем.

Сообщение отредактировал IgorKossak - Mar 6 2013, 07:26
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- THI   Проблема с usart   Mar 4 2013, 13:57
- - kan35   У вас вроде бы GPIO настроены не верно. Все альтер...   Mar 4 2013, 17:12
- - maksimp   Цитата(THI @ Mar 4 2013, 16:57) в регистр...   Mar 4 2013, 17:28
- - THI   kan35, maksimp спасибо что откликнулись ЦитатаИ в ...   Mar 6 2013, 19:20
- - Elcarnado   Здравствуйте! Я тоже недавно начал разбираться...   Mar 7 2013, 07:16
- - THI   Elcarnado спасибо за пример, но я уже пробовал нас...   Mar 7 2013, 09:52
|- - Сергей Борщ   QUOTE (THI @ Mar 7 2013, 11:52) существуе...   Mar 7 2013, 13:48
|- - maksimp   Цитата(THI @ Mar 7 2013, 12:52) существуе...   Mar 7 2013, 20:00
- - THI   Всем спасибо, кто ответил, извиняюсь, что так долг...   Mar 23 2013, 12:36
- - Rimsky   Здравствуйте друзья. Инициализировал USART1 (МК ST...   Mar 8 2014, 09:28
- - Rimsky   Открыл исходник (stm32f10x_usart.c) там в функции ...   Mar 8 2014, 11:50
|- - adnega   Цитата(Rimsky @ Mar 8 2014, 15:09) Кто об...   Mar 8 2014, 11:51
|- - Rimsky   Цитата(adnega @ Mar 8 2014, 20:51) Refere...   Mar 8 2014, 23:59
|- - adnega   Цитата(Rimsky @ Mar 9 2014, 03:59) В проч...   Mar 9 2014, 05:36
|- - Rimsky   Цитата(adnega @ Mar 9 2014, 14:36) 1. По ...   Mar 9 2014, 08:06
|- - adnega   Цитата(Rimsky @ Mar 9 2014, 12:06) Если о...   Mar 9 2014, 11:00
|- - Rimsky   Цитата(adnega @ Mar 9 2014, 20:00) Т.е. В...   Mar 9 2014, 23:52
|- - adnega   Цитата(Rimsky @ Mar 10 2014, 03:52) Нет, ...   Mar 10 2014, 04:27
|- - Rimsky   Цитата(adnega @ Mar 10 2014, 13:27) Это ч...   Mar 10 2014, 05:50
|- - adnega   Цитата(Rimsky @ Mar 10 2014, 09:50) Да эт...   Mar 10 2014, 06:59
- - Golikov A.   можно прочитать главу мануала за 10 минут, а потом...   Mar 10 2014, 11:24


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 01:38
Рейтинг@Mail.ru


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