Commit 4983f340feb7152828cae2d2d746f59f0a7cbb79

Authored by Imanol-Mikel Barba Sabariego
1 parent 1648f85c

I2C Compiled and ready to test

Project/applications/smartcities/Makefile
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 SDK_ROOT = ../../ 10 SDK_ROOT = ../../
11 PROJECT_OUT = smartcities 11 PROJECT_OUT = smartcities
12 12
13 -USER_SRC = main.c httpClient.c callbacks.c module.c sensors.c json.c 13 +USER_SRC = main.c httpClient.c callbacks.c module.c sensors.c json.c i2c.c
14 USER_INCDIR = include/ 14 USER_INCDIR = include/
15 15
16 # if you need to add build Defines options add to USER_DEFS define 16 # if you need to add build Defines options add to USER_DEFS define
Project/applications/smartcities/i2c.c
1 -#include <stm32f10x.h>  
2 -#include <stm32f10x_i2c.h> 1 +#include "i2c.h"
3 2
4 -void I2C1_init() 3 +void I2C_init(void)
5 { 4 {
6 GPIO_InitTypeDef GPIO_InitStruct; 5 GPIO_InitTypeDef GPIO_InitStruct;
7 I2C_InitTypeDef I2C_InitStruct; 6 I2C_InitTypeDef I2C_InitStruct;
8 7
9 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); 8 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
10 - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); 9 + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
11 10
12 /* 11 /*
13 * 1. SCL on PB6 or PB8 12 * 1. SCL on PB6 or PB8
14 * 2. SDA on PB7 or PB9 13 * 2. SDA on PB7 or PB9
15 */ 14 */
16 15
  16 + GPIO_PinRemapConfig(GPIO_Remap_I2C1,ENABLE);
17 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_9; 17 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_9;
18 - GPIO_InitStruct.GPIO_Mode = GPIO_Mode_A 18 + GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_OD;
19 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; 19 GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
20 - GPIO_InitStruct.GPIO_OType = GPIO_OType_OD; // set output to open drain  
21 - GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; // enable pull up resistors  
22 GPIO_Init(GPIOB, &GPIO_InitStruct); // init GPIOB 20 GPIO_Init(GPIOB, &GPIO_InitStruct); // init GPIOB
23 21
24 /* WARNING 22 /* WARNING
@@ -28,10 +26,6 @@ void I2C1_init() @@ -28,10 +26,6 @@ void I2C1_init()
28 * --Imanol 26 * --Imanol
29 */ 27 */
30 28
31 - // Connect I2C1 pins to AF  
32 - GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_I2C1); // SCL  
33 - GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_I2C1); // SDA  
34 -  
35 // configure I2C1 29 // configure I2C1
36 I2C_InitStruct.I2C_ClockSpeed = 100000; // 100kHz - STANDARD MODE 30 I2C_InitStruct.I2C_ClockSpeed = 100000; // 100kHz - STANDARD MODE
37 I2C_InitStruct.I2C_Mode = I2C_Mode_I2C; 31 I2C_InitStruct.I2C_Mode = I2C_Mode_I2C;
Project/applications/smartcities/include/i2c.h
1 #ifndef I2C_H 1 #ifndef I2C_H
2 #define I2C_H 2 #define I2C_H
3 3
4 -void I2C1_init(); 4 +#include "stm32f10x.h"
  5 +#include "stm32f10x_i2c.h"
  6 +#include "stm32f10x_gpio.h"
  7 +
  8 +void I2C_init(void);
5 void I2C_start(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction); 9 void I2C_start(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction);
6 void I2C_stop(I2C_TypeDef* I2Cx); 10 void I2C_stop(I2C_TypeDef* I2Cx);
7 void I2C_write(I2C_TypeDef* I2Cx, uint8_t data); 11 void I2C_write(I2C_TypeDef* I2Cx, uint8_t data);