Jump to content
Денис216

опросить магнетометр на stm32f3descovery

Recommended Posts

Не могу опросить магнитометр по I2C. На линиях какие-то сигналы проскакивают, но никакого результата не могу достичь. Кто-то что-то знает по этому поводу? Как заставить работать его.



 

#include "stm32f30x.h"

            
int a1=0, j=0;
int main(void)
{
RCC->AHBENR|=RCC_AHBENR_GPIOBEN;// тактирование портa B включено
RCC->AHBENR|=RCC_AHBENR_GPIOEEN;//21 тактирование портa Е включено
RCC->APB1ENR|=RCC_APB1ENR_I2C1EN;// тактирование I2C1 включено


GPIOB->MODER|=0x0000A000; // альтернативная функция линий PB7,PB6
GPIOB->OTYPER|=(1<<6);  //настройка линии PB7 на выход открытый сток
GPIOB->OTYPER|=(1<<7);  //настройка линии PB6 на выход открытый сток
GPIOB->OSPEEDR=0xFFFFFFFF;
GPIOB->AFR[0] |= 0x44000000;  //настройка линий PB7,PB6 на функцию AF4


GPIOE->MODER=0x55555555; //настройка порта Е на выход

EXTI->EMR=1<<23;
EXTI->IMR=1<<23;
NVIC_EnableIRQ(I2C1_EV_IRQn);

//инициализация I2C мастер
I2C1->CR1=(0<<0); //PE=0

I2C1->TIMINGR=(0x4<<28);//PRESC[3:0]: Timing prescaler
I2C1->TIMINGR=(0x8<<20);//SCLDEL[3:0]: Data setup time
I2C1->TIMINGR=(0x8<<16);//SDADEL[3:0]: Data hold time
I2C1->TIMINGR=(0xC3<<8);//SCLH[7:0]: SCL high period (master mode)
I2C1->TIMINGR=(0xC7<<0);//SCLL[7:0]: SCL low period (master mode)

I2C1->CR1=(0<<17);//для мастера = 0 NOSTRETCH: Clock stretching disable
I2C1->CR1=(1<<6);//TCIE: Transfer Complete interrupt enable
I2C1->CR1=(1<<2);//RXIE: RX Interrupt enable(RXNE)
I2C1->CR1=(1<<1);//TXIE: TX Interrupt enable(TXIS)
I2C1->CR2=(0<<11);//ADD10=0 -7 bits
I2C1->CR2=(0<<10);//RD_WRN=0 передача
I2C1->CR2=(1<<25);//AUTOEND
I2C1->CR1|=(1<<0); //PE=1

I2C1->CR2 = 0x03<<1;//adress 
I2C1->CR2|=1<<13;//start

??????

a1=I2C1->RXDR;




    while (1){
    //    I2C1->CR2|=1<<13;//start
        if((a1&0x1)>0)    GPIOE->ODR =1<<9;
        else            GPIOE->ODR =(0<<9);

        if((a1 & 0x2)>0)    GPIOE->ODR |=1<<10;
        else            GPIOE->ODR &= ~(1<<10);

        if((a1 & 0x4)>0)    GPIOE->ODR |=1<<11;
        else            GPIOE->ODR &= ~(1<<11);

        if((a1 & 0x8)>0)    GPIOE->ODR |=1<<12;
        else            GPIOE->ODR &= ~(1<<12);

        if((a1 & 0x10)>0)    GPIOE->ODR |=1<<13;
        else            GPIOE->ODR &= ~(1<<13);

        if((a1 & 0x20)>0)    GPIOE->ODR |=1<<14;
        else            GPIOE->ODR &= ~(1<<14);

        if((a1 & 0x40)>0)    GPIOE->ODR |=1<<15;
        else            GPIOE->ODR &= ~(1<<15);

        if((a1 & 0x80)>0)    GPIOE->ODR |=1<<8;
        else            GPIOE->ODR &= ~(1<<8);


}}

void I2C1_EV_EXTI23_IRQHandler () {a1=2;}

 

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Термины, формулировки, ярлыки, это все несколько вакуумно-сферично. Обследование пациента, вот что объективно. У меня есть смутные подозрения в недостаточных величинах устойчивости и стабильности от тока и температуры. Все элементарно оценивается осликом, мультиметром и феном. Диспуты без объективных клинических исследований поциента поставить диагноз не помогут. Заодно выработается метода оценки перспективных вариантов ЛБП. А то всякую нежизнеспособную хню рисуют в симуляторах и графических редакторах как картинки из кусков разных изображений без проверки в реале. Мне кажется, что практика главный арбитр.
    • Самый простой резонансер.Долговременная мощность 16ватт. Кратковременная мощность 50ватт.(1 минута). Трансформатор намотан на сердечнике от дросселя ЭМП энергосберегающий лампочки..    
    • Тоже сделал три заказа - отправка втечении 16 дней, но два отправили уже на другой день. Третий заказ не отправляют. Думаю, что этого товара у них нет, сами заказали на Тао-Бао и ждут. Так часто бывает.
    • Если рядом стоит загрузочная ПЗУ-шка, то можно считать с неё. Если загрузка конфигурации производится процессором, то загрузочная прошивка ПЛИС-ины может находиться в его памяти. Тогда надо смотреть даташит на процессор (контроллер). Altera Programming Hardware Data Sheet
    • Куплю VGA 7" TFT
    • У меня для этой цели ПСН-100 , 1978 года, с фрезерованным жалом и загнутым под 450.   То же, приложил и микросхема выпадает вниз, если плата перевернута. Пинцет не нужен, бывает пара ножек загнута у микрух, их предварительно нужно выпрямить обычным паяльником.

  • 4-х контактный переключатель, 2 шт.

  • Similar Content

    • By admin
      В видео протестируем плату Nucleo G474RE и проверим насколько она быстрее Arduino Uno.
      Текстовый вариант инструкции, как превратить отладочную плату STM в Arduino: https://www.compel.ru/lib/132248
      Плата Nucleo-G474RE: https://www.electronshik.ru/item/ST/NUCLEO-G474RE
      Arduino Uno: https://www.electronshik.ru/item/ARDUINO/ARDUINO%20UNO%20REV3
      Репозиторий проекта stm32duino: https://github.com/stm32duino/Arduino_Core_STM32
      Репозиторий benchmark’а: https://github.com/PaulStoffregen/CoreMark
      Пи тест, вторая часть: https://youtu.be/uLOWYE-JJpA
      Пи тест, первая часть: https://youtu.be/ozu1IUjH1_Q
      Платы XNucleo: https://www.st.com/content/st_com/en/search.html#q=xnucleo-t=tools-page=1
    • By Zendilor
      Добрый день, меня интересует вопрос про Keil u Vision 5. Кто переходил с arm compiler 5 на arm compiler 6? Меня интересуют подробности, гайды на оф сайтах я пересмотрел. Кто использует ARM compiler 6? Какие плюсы, минусы, ньюансы. Я сделал все как в видеогайде но у меня есть 4 ошибки которые я не могу убрать.
    • By 3цераптор
      Аутомотив Солюшенз Груп, (ASG) входящая в группу компаний VK Electronics, открывает вакансию программиста микроконтроллеров. На данный момент компания ведет свою деятельность по трем направлениям:
      Разработка автомобильной электроники (блоки управления для сбора данных);
      Системы управления автопарком;
      Промышленная электроника (система "умный дом" SOHO)
      Сотрудничая с нами, Вы будете находиться на острие новых технологий, заниматься исследованием и креативной разработкой, а не банальным написанием кода в жестких условиях ТЗ. Мы позволим Вам самостоятельно принимать решение и находить новые технологии реализации Ваших идей.
      Вы заинтересованы в собственном развитии и Вам интересны новые технологии, а так же Вы желаете стать частью команды современной компании?Ждем Ваших откликов!
      Что нужно делать:
      разрабатывать прошивки для микроконтроллеров;
      участвовать в составлении ТЗ в составе рабочей группы проекта.
      Мы хотим видеть специалиста с...
      Профильным образованием, рассматриваем выпускников ВУЗов;
      Знанием языков программирования;
      Знанием ОС FreeRTOS, Linux;
      Умением программировать чисто, без мусора в коде и стандартных библиотек;
      Умением самостоятельно, а главное быстро разбираться и искать пути решения интересных и трудных задач;
      Знанием архитектур на ядре ARM7,Contex-M3, Contex-M4;
      Опытом работы с процессорами STM 32F1/2/3/4, NXP, Texas industries;
      Знанием протоколов CAN, CANOpen, RS232, RS485;
      Опытом работы с беспроводными модулями GSM,GPS,WiFi и их аппаратными реализациями;
      Опытом разработки ПО для серийных изделий.
      Мы предлагаем:
      ЗП по итогам собеседования, от 80 000 руб.
      Адекватную мотивацию как по ЗП, так и по бонусам;
      Комфортный офис, расположенный в самом центре г. Воронежа;
      Необходимое оборудование для продуктивной работы;
      Пятидневная рабочая неделя, с 9 до 18 часов ( возможно смещение времени работы);
      Работа в молодой команде профессионалов;
      Возможность работать с реальными проектами, видеть результаты креативной работы;
      Сладости для питания мозга :).
    • By Александр Кобелев
      Может кто поможет понять почему китайский свисток ST-Link не хочет работать?
      В ST-Link Utility выскакивает "Can not connect to target". Распиновка и подключение мк к st-link правильные, firmware update делал, under reset тоже не работает, драйвера установлены. Сам же мк спокойно отображается в ST-Link Utility при использовании другого ST-Link, который распаен на другой плате STM32 Discovery 
    • By Phil Yar
      Привет! Я проектирую плату микроконтроллера (STM32F405RGT6) с минимальной конфигурацией. Это нормальная схема, которую я разработал? В микроконтроллер будет загружена прошивка по USART1. BOOT1 и BOOT0 подключены к перемычкам.
      Пожалуйста, покажите мне мои ошибки дизайна. Я руководствовался AN4488. Электрическая принципиальная схема прилагается в файлах ниже в формате PDF или JPEG
      Спасибо!

      test.pdf
×
×
  • Create New...