Я тоже в свое время бы удивлен - почему не вписали макросы битбандинга. Ведь написали же бесполезные макросы SET_BIT и особенно READ_REG... В принципе, я вписал макрос битбандинга в этот же заголовочник, как раз под теми макросами.
STM32 новичку в ARM что к чему
- Сообщения: 63
- Зарегистрирован: Пт июн 26, 2020 16:33:29
Поскольку СТМ берут дешевизной, то остальное - приходится допиливать руками счастливых покупателей. А с тех пор, как в ST понабрали кучу индусов (в прямом смысле слова), сопровождение СТМов стало вообще просто ужасным. И чем новее МК, тем меньше выбора остается...
Я тоже в свое время бы удивлен - почему не вписали макросы битбандинга. Ведь написали же бесполезные макросы SET_BIT и особенно READ_REG... В принципе, я вписал макрос битбандинга в этот же заголовочник, как раз под теми макросами.
Я тоже в свое время бы удивлен - почему не вписали макросы битбандинга. Ведь написали же бесполезные макросы SET_BIT и особенно READ_REG... В принципе, я вписал макрос битбандинга в этот же заголовочник, как раз под теми макросами.
Почти все плюсы в свою карму и в рейтинги сообщения поставил себе сам, своими же созданными для этих целей клонами. aen
- Реклама
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Питание, по крайней мере, хотя бы заголовочные файлы с расписанными регистрами есть!
А вот для STM8 мне пришлось ручками все писать по мере продвижения...
А вот для STM8 мне пришлось ручками все писать по мере продвижения...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
[uquote="Питание",url="/forum/viewtopic.php?p=3869561#p3869561"]Поскольку СТМ берут дешевизной[/uquote]
СТМ ни разу не дешев - обычные цены соответствующие уровню чипа (точнее его площади). Дешевыми являются китайские клоны.
СТМ ни разу не дешев - обычные цены соответствующие уровню чипа (точнее его площади). Дешевыми являются китайские клоны.
- Сообщения: 3386
- Зарегистрирован: Пн окт 11, 2010 19:00:08
Видимо имелось в виду цена/производительность/возможности.КРАМ писал(а):СТМ ни разу не дешев - обычные цены соответствующие уровню чипа (точнее его площади).
К примеру STM32 можно купить по той же цене что AVR8, но при этом у STM32 производительность выше, периферия функциональнее, есть отладка и т. д.
Они появились недавно и не для всех МК, в то время как мощный STM32H750VBT6 в Китае стоит около 3.5$.КРАМ писал(а):Дешевыми являются китайские клоны.
[uquote="Мурик",url="/forum/viewtopic.php?p=3870888#p3870888"]Они появились недавно и не для всех МК, в то время как мощный STM32H750VBT6 в Китае стоит около 3.5$.[/uquote]
Если учесть, что цена у производителя в партиях 10К+ составляет $3,62 , то возникает вопрос о происхождении розничной цены в Китае...
Клоны, это не только дженерики, это еще и сверхтиражный выпуск и просто копии.
Ставить такое в серийную продукцию ни один уважающий себя разработчик не будет.
Сравнивать STM32 с допотопными Мегами не по-пацански.
По современным меркам ниша мощных СТМ32 - телематические терминалы и прочая аналогичная по функционалу продукция. Младшие СТМ32 ничем особенным на фоне современных чипов других производителей не выделяются.
Если учесть, что цена у производителя в партиях 10К+ составляет $3,62 , то возникает вопрос о происхождении розничной цены в Китае...
Клоны, это не только дженерики, это еще и сверхтиражный выпуск и просто копии.
Ставить такое в серийную продукцию ни один уважающий себя разработчик не будет.
Сравнивать STM32 с допотопными Мегами не по-пацански.
По современным меркам ниша мощных СТМ32 - телематические терминалы и прочая аналогичная по функционалу продукция. Младшие СТМ32 ничем особенным на фоне современных чипов других производителей не выделяются.
- Реклама
- Сообщения: 2
- Зарегистрирован: Чт июл 30, 2020 23:12:27
Здравствуйте. Подскажите кто сталкивался. Прислали китайцы STM32F107, ревизия "А".
Гугль ничего про такую не знает, ST-Link ее не видит. Тестером соответстующие ноги питания между собой не прозваниваются, в отличии от ревизии Z.
Посмотрел, корме обычных "Z" у китайцев есть разные ревизии - "A", "X", "1".
Что за ерунда такая? Чем они отличаются от ревизии Z?
Гугль ничего про такую не знает, ST-Link ее не видит. Тестером соответстующие ноги питания между собой не прозваниваются, в отличии от ревизии Z.
Посмотрел, корме обычных "Z" у китайцев есть разные ревизии - "A", "X", "1".
Что за ерунда такая? Чем они отличаются от ревизии Z?
Может быть, фейк, и просто кристалла внутри нет?
- Сообщения: 2
- Зарегистрирован: Чт июл 30, 2020 23:12:27
Внутри что-то есть, ноги тестером прозваниваются, возможно это защитные диоды.
Когда я покупал на али, там был только один отзыв, - все хорошо и все работает. Цена в районе 100р. С этим китайцем пока не связывался.
Раньше я на али несколько таких брал (ревизия Z), тоже в районе 100р, все было нормально. С виду как новые, но из разных партий и внутри прошивка. Значит откуда-то выпаяли.
Были мысли, что теперь пришли какие-то другие микросхемы, перемаркированные.
Но тогда возникают вопросы - зачем маркировать "А", а не "Z"? и где взять на столько дешевую в таком же корпусе, что бы был смысл перемаркировать и продать за 100 рублей?
Там же, на алике, нет в подобном корпусе дешевле 100р.
Вот и возникают у меня сомнения, может все-таки это не фейк.
Наверное, можно как-то вскрыть корпус и под микроскопом посмотреть на кристалл, но эта задача не по мне.
Когда я покупал на али, там был только один отзыв, - все хорошо и все работает. Цена в районе 100р. С этим китайцем пока не связывался.
Раньше я на али несколько таких брал (ревизия Z), тоже в районе 100р, все было нормально. С виду как новые, но из разных партий и внутри прошивка. Значит откуда-то выпаяли.
Были мысли, что теперь пришли какие-то другие микросхемы, перемаркированные.
Но тогда возникают вопросы - зачем маркировать "А", а не "Z"? и где взять на столько дешевую в таком же корпусе, что бы был смысл перемаркировать и продать за 100 рублей?
Там же, на алике, нет в подобном корпусе дешевле 100р.
Вот и возникают у меня сомнения, может все-таки это не фейк.
Наверное, можно как-то вскрыть корпус и под микроскопом посмотреть на кристалл, но эта задача не по мне.
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="B_Oleg",url="/forum/viewtopic.php?p=3873365#p3873365"]Но тогда возникают вопросы - зачем маркировать "А", а не "Z"?[/uquote]
Писали, что перемаркировывают F303, причем ревизия вообще не проставлена, а по ID определяются как F0 или F1, там даже ноги питания не всегда совпадают...
Писали, что перемаркировывают F303, причем ревизия вообще не проставлена, а по ID определяются как F0 или F1, там даже ноги питания не всегда совпадают...
- Сообщения: 315
- Зарегистрирован: Пт янв 29, 2010 19:42:27
- Сообщения: 791
- Зарегистрирован: Вт июн 17, 2014 00:34:26
Добрый день, Keil переменные в watch обновляются только при остановке программы. Подскажите как это решается.
View - Periodic Window Update
Иван Сусанин - первый полупроводник 
- Сообщения: 791
- Зарегистрирован: Вт июн 17, 2014 00:34:26
В порядке обмена опытом для тех, кто не сталкивался.
Нынче работаю проект с F407 и опытным путем обнаружил следующее:
1. При работе передатчика USART на шину RS485 необходимо формировать сигнал управления передатчиком драйвера (у меня ADM489). При использовании DMA с USART Tx включение передатчика драйвера не вызывает вопросов и происходит перед запуском DMA. А вот выключение драйвера на передачу требует завершения последнего символа пакета. То есть в прерывании от DMA (TC), в отличии от PIC24/dsPIC33, на передачу в очереди будет стоять ДВА СИМВОЛА, а не один. Один в сдвиговом регистре и один в буфере. То есть нужно увеличить пакет не на один, а на два фиктивных символа, которые будут вырезаны из передаваемого пакета в шине сигналом управления передатчиком драйвера, который мы выключим в обработчике DMA.
2. Тут я вероятнее всего тупо не нашел в рефмануале ...
Реквесты DMA должны быть выбраны таким образом, чтобы периферия обслуживаемая этим потоком DMA и периферия генерирующая реквесты для этого потока были расположены на одной шине (APB1 или APB2). То есть, например, нельзя реквестить USART6 таймером TIM5, поскольку первый сидит на APB2, а второй на APB1. Обычно это не замечаешь, ибо не слишком часто требуется реквестить один периферийный модуль от другого...
Как то так...
Извините, если написал баян...

Нынче работаю проект с F407 и опытным путем обнаружил следующее:
1. При работе передатчика USART на шину RS485 необходимо формировать сигнал управления передатчиком драйвера (у меня ADM489). При использовании DMA с USART Tx включение передатчика драйвера не вызывает вопросов и происходит перед запуском DMA. А вот выключение драйвера на передачу требует завершения последнего символа пакета. То есть в прерывании от DMA (TC), в отличии от PIC24/dsPIC33, на передачу в очереди будет стоять ДВА СИМВОЛА, а не один. Один в сдвиговом регистре и один в буфере. То есть нужно увеличить пакет не на один, а на два фиктивных символа, которые будут вырезаны из передаваемого пакета в шине сигналом управления передатчиком драйвера, который мы выключим в обработчике DMA.
2. Тут я вероятнее всего тупо не нашел в рефмануале ...
Реквесты DMA должны быть выбраны таким образом, чтобы периферия обслуживаемая этим потоком DMA и периферия генерирующая реквесты для этого потока были расположены на одной шине (APB1 или APB2). То есть, например, нельзя реквестить USART6 таймером TIM5, поскольку первый сидит на APB2, а второй на APB1. Обычно это не замечаешь, ибо не слишком часто требуется реквестить один периферийный модуль от другого...
Как то так...
Извините, если написал баян...
- Сообщения: 7039
- Зарегистрирован: Сб янв 28, 2006 22:47:24
При попытке подключить к проекту библиотеку для управления OLED дисплеем получил от IAR следующие сообщения:
Error[Pe020]: identifier "uint16_t" is undefined C:\STM32\A\libssd1306\ssd1306.h 5
и
Error[Pe020]: identifier "uint8_t" is undefined C:\STM32\A\libssd1306\ssd1306.h 5
Я так понял, что IAR по умолчанию не понимает типов данных uint16_t и unit8_t и требует подключения библиотечного файла с описанием этих типов. Очевидно, это файл stdint.h. В файле main.с дописал #include "stdint.h", не помогло. Изменил на #include <stdint.h>, бесполезно. Нашел файл stdint.h в директории IAR в Programm Files и скопировал его в папку с проектом и через Add>Add Files добавил этот файл в проект. И ничего, все те же сообщения об ошибках... Что я делаю не так?
P.S. только написал, и тут же сам допер. Нужно было подключить библиотечный файл stdint.h в файлах самой библиотеки ssd1306.h и ssd1306.c.
Одно непонятно, это что же теперь, в каждом подключаемом к проекту файле нужно дописывать #include "stdint.h" если там присутствуют uint8_t или что-то подобное?
Error[Pe020]: identifier "uint16_t" is undefined C:\STM32\A\libssd1306\ssd1306.h 5
и
Error[Pe020]: identifier "uint8_t" is undefined C:\STM32\A\libssd1306\ssd1306.h 5
Я так понял, что IAR по умолчанию не понимает типов данных uint16_t и unit8_t и требует подключения библиотечного файла с описанием этих типов. Очевидно, это файл stdint.h. В файле main.с дописал #include "stdint.h", не помогло. Изменил на #include <stdint.h>, бесполезно. Нашел файл stdint.h в директории IAR в Programm Files и скопировал его в папку с проектом и через Add>Add Files добавил этот файл в проект. И ничего, все те же сообщения об ошибках... Что я делаю не так?
P.S. только написал, и тут же сам допер. Нужно было подключить библиотечный файл stdint.h в файлах самой библиотеки ssd1306.h и ssd1306.c.
Одно непонятно, это что же теперь, в каждом подключаемом к проекту файле нужно дописывать #include "stdint.h" если там присутствуют uint8_t или что-то подобное?
Астролябия-сама меряет, было бы что мерять!!!
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
Не туда подключаете. Где нехватает, туда и подключать. main.c то причём? И кто учил .h в проект добавлять?
- Сообщения: 7039
- Зарегистрирован: Сб янв 28, 2006 22:47:24
В конечном итоге я нашел куда подключать.
Но, неужели нельзя сделать так, чтобы ничего никуда не подключать, а все типы данных определялись как-то сами по себе, и файл stdint.h автоматически подключался везде, где есть в нем необходимость? Может в настройках компилятора что-то подшаманить?
Но, неужели нельзя сделать так, чтобы ничего никуда не подключать, а все типы данных определялись как-то сами по себе, и файл stdint.h автоматически подключался везде, где есть в нем необходимость? Может в настройках компилятора что-то подшаманить?
Астролябия-сама меряет, было бы что мерять!!!
[uquote="Asmodey",url="/forum/viewtopic.php?p=3883695#p3883695"]Может в настройках компилятора что-то подшаманить?[/uquote]
И сделать проект прибитым намертво гвоздями к среде и компилятору...
Причем на уровне исходника.
И сделать проект прибитым намертво гвоздями к среде и компилятору...
Причем на уровне исходника.
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Asmodey",url="/forum/viewtopic.php?p=3883695#p3883695"]Но, неужели нельзя сделать так, чтобы ничего никуда не подключать, а все типы данных определялись как-то сами по себе[/uquote]Есть старинный русский способ! По щучьему велению, по моему хотению, а ну ка код пишись сам! 
[uquote="Asmodey",url="/forum/viewtopic.php?p=3883695#p3883695"]Но, неужели нельзя сделать так, чтобы ничего никуда не подключать, а все типы данных определялись как-то сами по себе...[/uquote]
Можете через typedef определить эти уинты.
Можете через typedef определить эти уинты.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


