Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
artemiys
2 / 2 / 3
Регистрация: 09.01.2015
Сообщений: 85
#1

Программирование VCNL4000 и stm32f407discovery - ARM, Cortex, STM32 микроконтроллер

25.08.2017, 08:46. Просмотров 169. Ответов 1
Метки нет (Все метки)

Прошу помочь в соединение этих двух устройств. Не пойму что надо отправлять в регистры VCNLки. Проинициализировал вроде как правильно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void init_I2C1(void)
{
    GPIO_InitTypeDef gpio;
    I2C_InitTypeDef i2c;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
 
 
    i2c.I2C_ClockSpeed = 100000; 
    i2c.I2C_Mode = I2C_Mode_I2C;
    i2c.I2C_DutyCycle = I2C_DutyCycle_2;
 
    i2c.I2C_OwnAddress1 = 0x13;
    i2c.I2C_Ack = I2C_Ack_Disable;
    i2c.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
    I2C_Init(I2C1, &i2c);
 
    gpio.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
    gpio.GPIO_Mode = GPIO_Mode_AF;          
    gpio.GPIO_Speed = GPIO_Speed_50MHz;
    gpio.GPIO_OType = GPIO_OType_OD;
    gpio.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOB, &gpio);
 
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_I2C1);
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_I2C1);
 
 
    I2C_Cmd(I2C1, ENABLE);
}
Но при передаче данных в структуре I2C1 в регистрах данных появляются только данные которые я отправил и больше никаких других
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#define VCNL4000_ADDRESS 0x13
 
int main (void) {
    u8 data;
    init_I2C1();
    I2C_StartTransmission(I2C1,I2C_Direction_Transmitter,VCNL4000_ADDRESS);
    while(1) {
 
        data = I2C_ReadData(I2C1);
 
    }
            I2C_GenerateSTOP(I2C1, ENABLE);
} 
 
void I2C_StartTransmission(I2C_TypeDef* I2Cx, uint8_t transmissionDirection,  uint8_t slaveAddress)
{
    while(I2C_GetFlagStatus(I2Cx, I2C_FLAG_BUSY));
 
    I2C_GenerateSTART(I2Cx, ENABLE);
 
    while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT));
 
    I2C_Send7bitAddress(I2Cx, slaveAddress, transmissionDirection);
 
    if(transmissionDirection== I2C_Direction_Transmitter)
    {
        while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
    }
 
    if(transmissionDirection== I2C_Direction_Receiver)
    {
    while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));
    }
}
 
uint8_t I2C_ReadData(I2C_TypeDef* I2Cx)
{
    uint8_t data;
    while( !I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_RECEIVED) );
    data = I2C_ReceiveData(I2Cx);
    return data;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2017, 08:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программирование VCNL4000 и stm32f407discovery (ARM, Cortex, STM32 микроконтроллер):

Stm32f407Discovery и ITDB02-2.4E
Кто-нибудь сопрягал два этих устройства? Stm32f407Discovery и ITDB02-2.4E Кто...

Выбор кафедры в дальнейшей жизни: прикладное программирование VS системное программирование
Сразу извиняюсь что очень не по теме но всё же лучшего форума для этого вопроса...

Программирование функций, Программирование процедур, рекурсивную подпрограммa
1 (Программирование функций) Вычислить площадь правильного шестиугольника со...

Криптография, многопоточное программирование, сетевое программирование
Не знаю, с чего начать, подскажите: В этом задании необходимо реализовать...

Программирование ветвлений и программирование циклов
Разбираюсь в двух поставленных выше темах.Нужны примеры двух программ.Язык C#....

Программирование задач обработки графических структур Программирование задач обработки простейших графических структур. Программирование функций
Написать программу, которая вычерчивает на экране узор из 100 окружностей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
artemiys
2 / 2 / 3
Регистрация: 09.01.2015
Сообщений: 85
28.08.2017, 14:58  [ТС] #2
Все разобрался сам. Тему можно закрывать))
0
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru