Акселерометр ADXL345.

Подошёл черёд приобщаться к очень востребованному во многих разработках датчику положения, ускорения и наклона, а попросту – акселерометру 🙂 С аналоговыми акселерометрами пока что решил не связываться, т.к., во-первых, природная лень всячески противится дополнительному применению внешнего АЦП с последующей и необходимой процедурой обработки полученных данных, а во-вторых, в любительских поделках вполне хватает той полосы пропускания, которую имеют доступные цифровые датчики. В качестве подопытного был выбран цифровой акселерометр ADXL345, быстро отправленный расторопными китайцами автору сего повествования. 
     Фото героя данной публикации:

Читать далее Акселерометр ADXL345.

CRC32: на STM32 как на компе или на компе как на STM32.

Все знают, что в STM32F1xx, STM32F2xx, STM32F4xx есть аппаратный блок CRC32 с полиномом 0x04C11DB7.
И он, в общем-то, работает. Но только контрольная сумма почему-то не совпадает с таковой, рассчитанной софтварно.
В гугле обычно 2 типа вопросов:

  1. Как хардварно посчитать на STM32 побайтовую CRC
  2. Как посчитать софтово CRC так, чтоб она совпала с хардовой на STM32

Читать далее CRC32: на STM32 как на компе или на компе как на STM32.

AT Команды SIM900

С внешним миром модуль общается посредством AT команд. Пользователи модемов должны их помнить:) Все команды делятся на базовые, большинство из которых появились еще во времена U.S. Robotics, так называемые S-команды, родом оттуда же и расширенных, добавленных в стандартах GSM07.05-07.07. Практически все команды работают в 3 режимах — тестовом, чтения и записи.
В тестовом режиме возвращается OK, если команда поддерживается или возможные значения данных в параметре команды. Тестовый режим определяется окончанием команды в виде ‘=?’
В режиме чтения возвращаются текущие значения параметра, отличается от тестового наличием в конце просто символа ‘?’
И в режиме записи после ‘=’ идут новые значения параметров.
Количество параметров при чтении и записи не обязательно должно совпадать.

Читать далее AT Команды SIM900