Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Результаты опроса: Запуск "на коленке" часть 2. Что дальше будем обсмакивать?
RTC (часы реального времени) 119 11.41%
USB 540 51.77%
Базовые навыки работы с портами ввода-вывода 247 23.68%
АЦП 108 10.35%
ЦАП 29 2.78%
Голосовавшие: 1043. Вы ещё не голосовали в этом опросе

 
Опции темы
Непрочитано 22.11.2010, 01:15  
Snacker
Временная регистрация
 
Регистрация: 16.05.2007
Сообщений: 59
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 9 сообщении(ях)
Snacker на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от nekolex Посмотреть сообщение
как передавать данные по uart на com порт
Странный вопрос. Если вы имеете в виде последовательный порт ПК, то между микроконтроллером и этим последовательным портом должна быть микросхема драйвера RS232 (например, max3232). Если вас интересует пример кода передачи данных по уарт, то вроде на сайте NXP он имеется.
Реклама:
Snacker вне форума  
Непрочитано 22.11.2010, 01:19  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Цитата:
на сайте NXP он имеется
ссылочкой не поделитесь?)
nekolex вне форума  
Непрочитано 22.11.2010, 02:10  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от nekolex Посмотреть сообщение
ссылочкой не поделитесь?)
http://ics.nxp.com/support/documents...c11xx.keil.zip
kison вне форума  
Непрочитано 22.11.2010, 10:37  
Snacker
Временная регистрация
 
Регистрация: 16.05.2007
Сообщений: 59
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 9 сообщении(ях)
Snacker на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от kison Посмотреть сообщение
http://ics.nxp.com/support/documents...c11xx.keil.zip
Жаль нельзя прикрепить пост со всеми ссылками на всякие примеры кодов, а то постоянно одни и те же вопросы, а простым поиском по теме народ просто отказывается воспользоваться. Может сделать отдельную тему и попросить модераторов прикрепить ее?
Snacker вне форума  
Непрочитано 22.11.2010, 15:01  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Могли бы вы прокомментировать код:
Код:
#include "LPC11xx.h"
#include "uart.h"

extern volatile uint32_t UARTCount;
extern volatile uint8_t UARTBuffer[BUFSIZE];

int main (void) {
	  /* Basic chip initialization is taken care of in SystemInit() called
	   * from the startup code. SystemInit() and chip settings are defined
	   * in the CMSIS system_‹part family›.c file.
	   */

  /* NVIC is installed inside UARTInit file. */
  UARTInit(115200);

  while (1)  /* Loop forever */ 
  {				
	if ( UARTCount != 0 ) /*Здесь не понятно, для чего 
                                     UARTCount?*/
	{
          /* Disable RBR  -отключается прием*/
	  LPC_UART-›IER = IER_THRE | IER_RLS;
			
          /*UARTBuffer имеет тип uint8_t, 
          так как же передавать текст?
          И что он передает в данном случае?*/
	  UARTSend( (uint8_t *)UARTBuffer, UARTCount );
 
	  UARTCount = 0;
          /* Re-enable RBR -включаем прием*/
	  LPC_UART-›IER = IER_THRE | IER_RLS | IER_RBR;	
	}
  }
}
/************Ниже код из uart.c***************/
void UARTSend(uint8_t *BufferPtr, uint32_t Length)
{
  
  while ( Length != 0 )
  {
	  /* THRE status, contain valid data */
#if !TX_INTERRUPT
	  while ( !(LPC_UART-›LSR & LSR_THRE) );
	  LPC_UART-›THR = *BufferPtr;
#else
	  /* Below flag is set inside the interrupt handler when THRE occurs. */
      while ( !(UARTTxEmpty & 0x01) );
	  LPC_UART-›THR = *BufferPtr;
      UARTTxEmpty = 0;	/* not empty in the THR until it shifts out */
#endif
      BufferPtr++;
      Length--;
  }
  return;
}
/*************************************/

Последний раз редактировалось nekolex; 22.11.2010 в 15:03.
nekolex вне форума  
Непрочитано 22.11.2010, 16:13  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от nekolex Посмотреть сообщение
Могли бы вы прокомментировать код
Это высосанный из пальца пример. Он вовсе не обязан быть логичным.
UARTCount - счетчик принятых данных. Если он не равен 0, значит что то пришло.
По логике примера это "что то" нужно отправить обратно, причем во время отправки не принимать другие данные. Видимо сделано для возможности простой адаптации под RS485. Не забывайте - это пример, причем в основном просто для тестирования железа. Не нравится - напишите нормальный драйвер на основе предложенного производителем, с кольцевым буфером и разбором своего протокола.
Работа с железом показана в примере, а логика работы Вашего устройства известна только Вам.
kison вне форума  
Непрочитано 22.11.2010, 18:43  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сваял такой код, оцените пожалуйста:
Код:
#include "LPC11xx.h"
#include "stdio.h"
#include "uart.h"

/**************************************************  ******/
/************************* MAIN **************************/

int main(void)
{
UARTInit(9600);
char str[20];
  while(1){
	str[20]=UARTGet();
	UARTSend(str[20]);
  }
}
/*******************End of MAIN.C*************************/


/***********Функции для отправки и приема (UART.C)***********/
/***************Функция для отправки строки****************/
void UARTSend(char *c) 
{
int i;
i=0;
	/* Keep Transmitting until Null character('\0') is reached */
	while(c[i])
	{
		LPC_UART-›THR=c[i];
		i++;
	}
	LPC_UART-›THR=LINE_FEED;
	LPC_UART-›THR=CARRIAGE_RET;
	/* Wait till U0THR and U0TSR are both empty */
	while(!(LPC_UART-›LSR & TEMT)){}
}

/***************Функция для приема строки******************/
/*проблема гдето здесь, вместо строки
отправляет странные символы, либо пустые строки*/
char UARTGet() 
{
int i;
char rxData[20];
	i=0;
	while(!(LPC_UART-›LSR & LSR_RDR)){
	rxData[i] = LPC_UART-›RBR;
	i++;
	}
	return rxData[20];
}
Суть в том что контроллер должен считать инф-ю с com порта и отправить ее обратно.

Последний раз редактировалось nekolex; 22.11.2010 в 19:16.
nekolex вне форума  
Непрочитано 22.11.2010, 23:58  
espectr0
Временная регистрация
 
Регистрация: 26.09.2009
Сообщений: 81
Сказал спасибо: 4
Сказали Спасибо 16 раз(а) в 13 сообщении(ях)
espectr0 на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

nekolex,

int main(void)
{
UARTInit(9600);
char str[20];
while(1){
str[20]=UARTGet();
UARTSend(str[20]);
}
}
Дальше можно не смотреть?
espectr0 вне форума  
Непрочитано 23.11.2010, 01:45  
L_0_R
Вид на жительство
 
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
L_0_R на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от nekolex Посмотреть сообщение
str[20]=UARTGet();
Раскрывая ответ espectr0, Вы считываете в память за пределами выделенного буфера, и хотите вывести данные обратно? ARM тут точно не при чём...
L_0_R вне форума  
Непрочитано 23.11.2010, 10:25  
nekolex
Частый гость
 
Аватар для nekolex
 
Регистрация: 24.03.2010
Сообщений: 25
Сказал спасибо: 6
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nekolex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Код:
int main(void)
{
UARTInit(9600);
char str[20];
  while(1){
	*str=UARTGet();
	UARTSend(*str);
  }
}
Если так?
nekolex вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:39.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot