74HC595 непонятки

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

Собсвенно вопрос такой подключил 74HC595a к STM32l,питание 3В
Соответственно на выход поставил светодиоды.Написал программу.Запуск светодиоды негорят.
Подношу палец к микросхеме зажигаются.
И еще проблемма с написанием программы с проверкой бита. Тоесть есть число проверяем 0 бит,выводим на ногу и смещаем число,и так 8 раз.

Спойлерfor(i=0;i<8;i++){
if((data&1)!=1)
GPIOA ->BSRRL = GPIO_BSRR_BS_1 ;
else{
GPIOA ->BSRRH = GPIO_BSRR_BS_1 ;
}
GPIOA ->BSRRH = GPIO_BSRR_BS_3 ;
GPIOA ->BSRRL = GPIO_BSRR_BS_3 ;
data=data>>1;
}
Спойлер#include "stm32l1xx.h"
#include "stdio.h"

void data();

int m,x,l1,l2,l3,adc_i,ugol_1,ugol_2,ugol_3,summ,result1,Lm1,Re1;
uint32_t i;
char adc[512];
void main()
{
//настройка выводов
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER |= (GPIO_MODER_MODER1_0|GPIO_MODER_MODER2_0|GPIO_MODER_MODER3_0|GPIO_MODER_MODER4_0|GPIO_MODER_MODER5_0|GPIO_MODER_MODER6_0|GPIO_MODER_MODER7_0);
GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_1|GPIO_OTYPER_OT_2|GPIO_OTYPER_OT_3|GPIO_OTYPER_OT_4|GPIO_OTYPER_OT_5|GPIO_OTYPER_OT_6|GPIO_OTYPER_OT_7);
GPIOA->PUPDR &= ~(GPIO_PUPDR_PUPDR1|GPIO_PUPDR_PUPDR2|GPIO_PUPDR_PUPDR3|GPIO_PUPDR_PUPDR4|GPIO_PUPDR_PUPDR5|GPIO_PUPDR_PUPDR6|GPIO_PUPDR_PUPDR7);
GPIOA->OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR1|GPIO_OSPEEDER_OSPEEDR2|GPIO_OSPEEDER_OSPEEDR3|GPIO_OSPEEDER_OSPEEDR4|GPIO_OSPEEDER_OSPEEDR5|GPIO_OSPEEDER_OSPEEDR6|GPIO_OSPEEDER_OSPEEDR7);

RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER |= (GPIO_MODER_MODER1_0|GPIO_MODER_MODER2_0|GPIO_MODER_MODER3_0|GPIO_MODER_MODER4_0|GPIO_MODER_MODER5_0|GPIO_MODER_MODER6_0|GPIO_MODER_MODER7_0);
GPIOB->OTYPER &= ~(GPIO_OTYPER_OT_1|GPIO_OTYPER_OT_2|GPIO_OTYPER_OT_3|GPIO_OTYPER_OT_4|GPIO_OTYPER_OT_5|GPIO_OTYPER_OT_6|GPIO_OTYPER_OT_7);
GPIOB->PUPDR &= ~(GPIO_PUPDR_PUPDR1|GPIO_PUPDR_PUPDR2|GPIO_PUPDR_PUPDR3|GPIO_PUPDR_PUPDR4|GPIO_PUPDR_PUPDR5|GPIO_PUPDR_PUPDR6|GPIO_PUPDR_PUPDR7);
GPIOB->OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR1|GPIO_OSPEEDER_OSPEEDR2|GPIO_OSPEEDER_OSPEEDR3|GPIO_OSPEEDER_OSPEEDR4|GPIO_OSPEEDER_OSPEEDR5|GPIO_OSPEEDER_OSPEEDR6|GPIO_OSPEEDER_OSPEEDR7);
// pa1= DATA PA2=ЗАЩЕЛКА ST PA3=SH ТАКТ

while(1)
{
data(0X0100100);
}

}


void data(int data){

GPIOA ->BSRRH = GPIO_BSRR_BS_2 ;

for(i=0;i<8;i++){
if((data&1)!=1)
GPIOA ->BSRRL = GPIO_BSRR_BS_1 ;
else{
GPIOA ->BSRRH = GPIO_BSRR_BS_1 ;
}
GPIOA ->BSRRH = GPIO_BSRR_BS_3 ;
GPIOA ->BSRRL = GPIO_BSRR_BS_3 ;
data=data>>1;
}


GPIOA ->BSRRL = GPIO_BSRR_BS_2;
}
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Код: Выделить всё

data(0X0100100);
Разложите это число на биты, посмотрите на младшие 8 бит, поймете почему светодиоды не могут загореться.
Подношу палец к микросхеме зажигаются.
Пины неправильно настроены на выход и ловят наводку.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

uk8amk писал(а):Разложите это число на биты, посмотрите на младшие 8 бит, поймете почему светодиоды не могут загореться.
..для некоторых нет разницы между 0X0100100 и 0b0100100, хотя первое значение явно 32-х битное. (причем 0b... "песня" из ассемблера, а программа то на С - какие мелочи :) )
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

ChipKiller писал(а):для некоторых нет разницы между 0X0100100 и 0b0100100
я автоматом зацепился за это 0х с нулями и единицами, но сознанием не мог осознать
вижу, что что-то не то, а понять не могу
секунд 10 смотрел и думал, а потом твой пост увидел :)))

и вот так очень часто интуитивно вижу что-то "не то", а мозги еще жутко тормозят
тематические ответы только в форуме, в приват не пишите
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

всеравно негорят, только когда палец подводиш,от наводки,может быть питание 3В,маленькое.
Реклама
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

всеравно негорят, только когда палец подводиш,от наводки,может быть питание 3В или управление,маленькое.
Реклама
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Сообщение спящий »

Нашел подал питание на MR заработал,я думал надо наоборот активным низким держать.Видно к ему прикасался работало.
Ответить

Вернуться в «Периферия»