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

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

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

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

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

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


Ответ
Опции темы

Изучаем STM32 Cortex M3

Непрочитано 06.02.2012, 23:32   #1251
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Еще вопрос по UART:
В пиках (библиотеках ихних) была возможность (функция) в юарт массив, например, из 8 байтов послать за раз. Не побитно, как в CTM32.
А потом на ПК я также с помощью ридфайл читал массивом по 8 байт.


А как на стм32 послать массивом в 8 байт? Или можно слать с мк хоть побайтово а читать массивом с пк по сколбко хочешь байт?

Или слать 8 байт поштучно, а после 8 байт посылать Break frame?
Реклама:
pasipaka вне форума   Ответить с цитированием
Непрочитано 06.02.2012, 23:53   #1252
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

pasipaka,
Процедурка с посылкой строки и переносом коретки:
Код:
void uart_print_string(USART_TypeDef * USARTx, char * string, char newline)
{
	while (*string != 0x00){ uart_send_char(USARTx, *string++);}
	if (newline!=0){uart_send_char(USARTx, 13);}
}
Аналогично без переноса коретки:
Код:
void uart_print_string(USART_TypeDef * USARTx, char * string)
{
	while (*string != 0x00) uart_send_char(USARTx, *string++);

}
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 07.02.2012, 00:30   #1253
ДДН
Временная регистрация
 
Регистрация: 20.01.2011
Адрес: Витебск
Сообщений: 38
Сказал спасибо: 6
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
ДДН на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ДДН Посмотреть сообщение
Подскажите где в IAR при отладке посмотреть на какой частоте работает stm?
В код прописываю
#define SYSCLK_FREQ_24MHz 24000000
но плата (дискавери) работает и без кварца 8МГц
Всё, разобрался.
RCC-›CR|=RCC_CR_HSEON; для включения генерации от внешнего кварца, а для того чтобы без кварца не работало
RCC-›CR|=RCC_CR_CSSON;
ДДН вне форума   Ответить с цитированием
Непрочитано 07.02.2012, 15:29   #1254
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
pasipaka,
Процедурка с посылкой строки и переносом коретки:
Код:
void uart_print_string(USART_TypeDef * USARTx, char * string, char newline)
{
	while (*string != 0x00){ uart_send_char(USARTx, *string++);}
	if (newline!=0){uart_send_char(USARTx, 13);}
}
Аналогично без переноса коретки:
Код:
void uart_print_string(USART_TypeDef * USARTx, char * string)
{
	while (*string != 0x00) uart_send_char(USARTx, *string++);

}
Спасибо что отозвался!.
По WinZ строкам все ясно.
Но я просто буду массив из 32 байтов (числа измерений) слать один за другим. Вот как мне отделить один массив от другого.
Заранее сорри, я софтвернй i2c, spi, 1wire реализовал, потому протоколы знаю. А вот по сом некогда вчитываться, да и имхо не нужно.

На пике делал так:
mUSBUSARTTxRam((byte*)INBUFF,6); т.е. посылал 6 байтов.
а потом на ПК читал:
ReadFile(handlerr, buf_in, 6, &numbytes_readed, 0); читал эти же 6 байтов.

Т.е. там послал 6, а там принял 6.
А вот на стм32 я шлю побайтово: USART2-›DR=send_byte.
Там что меня смущает: если я буду читать с ПК по 6 байтов: ReadFile(handlerr, buf_in, 6, &numbytes_readed, 0);
то все равно как я из мк их туда пошлю? побайтово. Т.е. я считаю только тогда, когда 6 байтов вышлеться? А если я вышлю 3, точ ничего не считается. Или считается только часть?
Или же нет? и нужно после посыла 6 байтов какой-то разделитель посылать, вроде вот этот массив закончился и дальше идет следующий.
Мне важно или прочитать всб пачку, например 6, или если их там в очереди меньше 6 то вообще лучше ничего.
Т.е. важно чтобы размер пакетов по отправке и приему соварадал.


Может глупо, но надеюсь вопрос ясен.

З.Ы. а вообще причина этого: если слать побайтово и если я с ПК побайтово читаю, то ПК не успевает все вычитывать, т.к. винда читает до около 200раз в секуду. Т.е. размер посылки нужно увеличивать, дабы за 1 раз (из тех 200) винда больше инфы вычитывала. Т.е. пакет увеличивать.
Вот в стм32 один посланный байт - это один пакет или всеравно как. Их можно слать хоть по одному а с ПК читать хоть по тысячи?

Но тогда проблема: напрмер, я успел послать только 3 из 6, а винда толко 3 из массива из 6 считала. И потом у меня весь протокол обмена рушится.
pasipaka вне форума   Ответить с цитированием
Непрочитано 07.02.2012, 15:34   #1255
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

С вин строками все ясно. Видишь 13 (или 0) - конец строки, после нее следующая.

В моем случае можно опр. набор байт как разделитель слать, но это потом по приему парсить нужно. Имхо это излишне.
Ведь думаю, можно же как-то как на пике: слать по х и принимать по х. Тогда у меня все четко: массив из х байт - мой пакет обмена.

Последний раз редактировалось pasipaka; 07.02.2012 в 15:42.
pasipaka вне форума   Ответить с цитированием
Непрочитано 08.02.2012, 13:51   #1256
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Тогда еще вопрос чайника:
Решил перепроверить реальную частоту Дискавери.
Написал такой цикл:
while(1)
{
GPIOC-›BSRR = GPIO_BSRR_BR8; //8off
GPIOC-›BSRR = GPIO_BSRR_BS8; //8on
}

Т.е. моргание. Частоту вроде на 24МГц настроил. А осцилограф на выходе
2МГц дает...
А вроде 3 должно:

??main_0:
0x800021c: 0x4815 LDR.N R0, ??DataTable3_12 ; GPIOC_BSRR
0x800021e: 0xf05f 0x7180 MOVS.W R1, #16777216 ; 0x1000000
0x8000222: 0x6001 STR R1, [R0]
GPIOC-›BSRR = GPIO_BSRR_BS8; //8on
0x8000224: 0x4813 LDR.N R0, ??DataTable3_12 ; GPIOC_BSRR
0x8000226: 0xf44f 0x7180 MOV.W R1, #256 ; 0x100
0x800022a: 0x6001 STR R1, [R0]
0x800022c: 0xe7f6 B.N ??main_0 ; 0x800021c
GPIOC-›BSRR = GPIO_BSRR_BS9; //on pc9

7 асм. команд по 1 циклу плюс еще 1 цикл на переход.
2х8=16МГц.

Так на какой частоте работает то?

Если настраиваю на 8МГц,
то мерцание - 666кГц.

Это так должно быть, лыжи не едут или мне на рожу пинять?
pasipaka вне форума   Ответить с цитированием
Непрочитано 08.02.2012, 15:53   #1257
strnikol
Вид на жительство
 
Регистрация: 22.05.2006
Сообщений: 300
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 26 сообщении(ях)
strnikol на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Будет ли работать АЦП и ЦАП от внешнего опорника например в 1 вольт.
Кто нибудь пробовал запустить в таком режиме.
strnikol вне форума   Ответить с цитированием
Непрочитано 09.02.2012, 00:53   #1258
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от pasipaka Посмотреть сообщение
Это так должно быть, лыжи не едут или мне на рожу пенять?
Едут, но немного разъезжаются
Вот так 3 асм команды, 7 тактов
236: *pbo=r1;
0x080004B6 6001 STR r1,[r0,#0x00]
237: *pbo=r2;
0x080004B8 6002 STR r2,[r0,#0x00]
234: while(1)
0x080004BA E7FC B 0x080004B6
=GM= вне форума   Ответить с цитированием
Непрочитано 09.02.2012, 01:17   #1259
L_0_R
Вид на жительство
 
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
L_0_R на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

=GM=, извините новичка, можно поподробнее?
L_0_R вне форума   Ответить с цитированием
Непрочитано 09.02.2012, 16:02   #1260
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от L_0_R Посмотреть сообщение
=GM=, извините новичка, можно поподробнее?
Между асм-строками видны строки на си, куда уж подробнее?
=GM= вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.