stm8s208cb I2C Communication

I want to use I2C Communication between two stm8s208cb MCUs. I use stm8s standard peripharel library. My code:

Master:

#include "stm8s.h" #define I2C_SPEED 300000 #define OWN_ADDRESS 0xA0 #define SLAVE_ADDRESS 0x30 void delay_delay(unsigned int mul); void main() { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); I2C_DeInit(); I2C_Init(I2C_SPEED, 0xA0, I2C_DUTYCYCLE_2, I2C_ACK_CURR, I2C_ADDMODE_7BIT, 16);

while (1) { I2C_GenerateSTART(ENABLE); I2C_Send7bitAddress(SLAVE_ADDRESS, I2C_DIRECTION_TX); I2C_SendData(0x61); I2C_GenerateSTOP(ENABLE); delay_delay(500); } }

void delay_delay(unsigned int mul) { for(; mul>0; mul--); }

#ifdef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { while (1) {} } #endif

/*******************************************************************/ Slave:

#include "stm8s.h" #include "stm8s_uart3.h" #include "stdio.h" #include "stm8s_i2c.h"

#define I2C_SPEED 300000 #define OWN_ADDRESS 0xA0 #define SLAVE_ADDRESS 0x30

void delay_delay(unsigned int mul);

void sendstring(char *s) { while(*s){ UART3->DR = (u8) (*s); while ((UART3->SR & (u8) UART3_FLAG_TXE) == RESET); s++; } }

void main(void) { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

UART3_DeInit(); UART3_Init((uint32_t)9600, UART3_WORDLENGTH_8D, UART3_STOPBITS_1, UART3_PARITY_NO, UART3_MODE_TXRX_ENABLE);

I2C_DeInit(); I2C_Init(300000, 0x30, I2C_DUTYCYCLE_2, I2C_ACK_CURR, I2C_ADDMODE_7BIT,

16);

char veri_bas[1];

while (1) {

I2C_AcknowledgeConfig(DISABLE); uint8_t data = I2C_ReceiveData(); //-datayy oku I2C_AcknowledgeConfig(ENABLE); sprintf(veri_bas ,"%i" ,data); sendstring(veri_bas); delay_delay(500); } }

void delay_delay(unsigned int mul) { for(; mul>0; mul--); }

#ifdef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { while (1) {} } #endif

/***************************************************************************/

It does not work. Help please, I can't find the error.

Also: Resistors(4.7K) are okey for I2C Communication.

--------------------------------------- Posted through

formatting link

Reply to
kebuter
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.