完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
开发stm8,一直都用的是stvd,但是发现很多例程到使用iar,就转到iar开发。
现在项目上用到IIC从机的问题,也看了挺多人写的硬件IIC从机程序,都运行无问题,于是自己也仿照着写了从机程序 这个程序和他人能用的程序仔细比对过,流程都是一样的(他人用的stm8l不是我用的这个型号,但是这个应该不碍事),选项字节也检查了没有问题 无奈就是不工作,也进不了iic中断。 (IIC硬件接口是PC0 PC1) 贴出初始化代码,还请高人指导一下: void CLK_init(void) { CLK_DeInit(); CLK_MasterPrescalerConfig(CLK_MasterPrescaler_HSIDiv1); CLK_PeripheralClockConfig(CLK_Peripheral_I2C, ENABLE); CLK_PeripheralClockConfig(CLK_Peripheral_SPI, ENABLE); } void IIC_init(void) { I2C_DeInit(); //占空比1/2 //使能应答 //7位地址 I2C_Init(100000, 0X69, I2C_DutyCycle_2, I2C_Ack_Enable, I2C_AcknowledgedAddress_7bit); //标准速度200K,本机地址0X62 GPIO_Init(GPIOC, GPIO_Pin_0 | GPIO_Pin_1, GPIO_Mode_In_FL_No_IT); //开启错误中断、事件中断(如匹配了地址,接收了一字节数据)、BUF中断(接收和发送相关) I2C_ITConfig(I2C_IT_ERR | I2C_IT_EVT | I2C_IT_BUF, ENABLE); //I2C_ClearFlag(I2C_IT_ERR | I2C_IT_EVT | I2C_IT_BUF); //清除一下标志 enableInterrupts(); //开启所有中断 I2C_Cmd(ENABLE); } 中断程序在这里(我在中断里面加入了LED取反的操作,已拿掉,但是用主机发送IIC寻址信号,发现并没有进入中断) INTERRUPT_HANDLER(I2C_IRQHandler, 29) { uint8_t temp = 0; if(I2C->SR1 0x02) //地址已经匹配 ADDR标志 { //temp = I2C->SR3 0x07; (void)(I2C->SR3); //再读SR3,清除ADDR if((I2C->SR3) 0x04) //如果是读操作 { I2C->DR = 0XAA; } } else if((I2C->SR3) 0x04) //如果是接收状态 { if((((I2C->SR1) 0x80) == 0X80)) { //I2C->DR = Test_read[Test_r_pos ]; //Test_r_pos ++; } } else if(((I2C->SR1) 0x40) (!((I2C->SR3) 0x04))) //从机接收数据 { temp = I2C->DR; } else if((I2C->SR1) 0x10) //检测到停止位 { //检测到停止位----清除停止位---通过写CR2 I2C->CR2 = I2C->CR2; } // 错误管理 if((I2C->SR2) 0X0F) //IIC出现错误 { I2C->SR2 = ~(0X0F); //清零 } } |
|
相关推荐
1个回答
|
|
注释的内容有些错误,不用看了。
在iar上开发的,现在无奈使用IIc软件从机,没有硬件的好用 而且很奇怪的是,我在使用stvd开发的时候,连定时器中断,外部中断都进不去,感觉这个mcu还是挑编译器的 不知道其他人是否遇到过这种情况 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1933浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
726浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
550浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 15:18 , Processed in 0.864544 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号