PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : I2c



mstkmn
15-12-2013, 18:32
سلام
چه طوری باید rise time رو توی I2C تنظیم کرد؟
من از دستور I2C->TRISE استفاده می کنم ولی ارور میده.

sadmonew
15-12-2013, 18:49
سلام مهندس
يه چيزي رو فراموش كردي، مشخص نكردي با كروم I2C ميخواي كار كني: 1 يا 2
اينطوري بنويسش:


I2C2->TRISE = xxxxxx;

mstkmn
15-12-2013, 18:55
سلام
ببخشید دستوری که استفاده کردم اینه I2C1->TRISE=0xxxx
ولی کاپایلر ارور میده.

sadmonew
15-12-2013, 18:57
ارورش چيه؟

mstkmn
15-12-2013, 19:01
C:\Keil\ARM\Inc\ST\STM32F10x\I2C.h(17): error: #109: expression must have (pointer-to-) function type

sadmonew
15-12-2013, 19:06
مهندس يه كاري كن، اون تيكه كدي كه مربوط به i2c ميشه رو قرار بده ببينيم.
راستي: مستقيما" مقدار ميكني يا از طريق يه متغير ديگه؟
از كدوم ورژن Keil استفاده ميكني؟

mstkmn
15-12-2013, 19:12
مستقیم مقدار میدم.
اینم کد برنامه

void I2C1_config()
{
PORTB_L|=0xFF000000;

RCC->APB2ENR|=1;
RCC->APB1ENR|=0x200000;

I2C1->CR1=0x8000; //software reset

I2C1->CR1=0x0000; //software reset

I2C1->CR2|=0x0024; //peripheral clock frequency

I2C1->CCR=0x8000; //Fast mod I2C
I2C1->CCR|=0x0028; //CCR fast/standard mod

//I2C1->TRISE=0xB //Maximum rise time

I2C1->CR1|=0x0001; //peripheral enable
I2C1->CR1|=0x0400; //acknoledge enable
//I2C1->CR1|=0x0080; //no stretch

I2C1->OAR1=0x4000;

}

mahdi8866
15-12-2013, 19:46
سلام
میگم تو این خط علامت ; نیست شاید مشکل از این باشه
//I2C1->TRISE=0xB //Maximum rise time

mstkmn
15-12-2013, 19:53
سلام آقا مهدی
ممنون. متوجه ; نشده بودم حل شد.