سلام به اساتید
میکرو stm32f100 روی برد دیسکاوی (بر ای این میگم که بدونید سخت افزار استاندارده و ساخت دست من و امکان خطاهای سخت افزاری روش نیست)
ماژول ها و ارتباطات:
sim800L روی USART2 با DMA
DS1307 روی I2C1
شرح مشکل:
وقتی از ماژول sim800 پیام دریافت یا ارسال میکنم یا تماس .... پورت i2c که در حال قرائت مقدار زمان و تاریخ از DS1307 در حلقه While(1) هست دچار خطای Timeout میشه و حالتی مثل overflow رخ میده برای متغیرهای درگیر با پورت i2c بدین صورت که اول همه چی صفر میشه و بعد اعداد نامربوط تو متغیرهای خروجیش میشینه.
افزایش دادم زمان timeout رو اما توفیقی حاصل نشد...
از کجا فهمیدم timeout مشکلمه؟ از تابع HAL_I2C_GETERROR
چه باید کرد؟
با سپاس
میکرو stm32f100 روی برد دیسکاوی (بر ای این میگم که بدونید سخت افزار استاندارده و ساخت دست من و امکان خطاهای سخت افزاری روش نیست)
ماژول ها و ارتباطات:
sim800L روی USART2 با DMA
DS1307 روی I2C1
شرح مشکل:
وقتی از ماژول sim800 پیام دریافت یا ارسال میکنم یا تماس .... پورت i2c که در حال قرائت مقدار زمان و تاریخ از DS1307 در حلقه While(1) هست دچار خطای Timeout میشه و حالتی مثل overflow رخ میده برای متغیرهای درگیر با پورت i2c بدین صورت که اول همه چی صفر میشه و بعد اعداد نامربوط تو متغیرهای خروجیش میشینه.
افزایش دادم زمان timeout رو اما توفیقی حاصل نشد...
از کجا فهمیدم timeout مشکلمه؟ از تابع HAL_I2C_GETERROR
چه باید کرد؟
با سپاس
دیدگاه