完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请大神指教#define START 0x08
#define RE_START 0x10 #define MT_SLA_ACK 0x18 #define MT_SLA_NOACK 0x20 #define MT_DATA_ACK 0x28 #define MT_DATA_NOACK 0x30 #define MR_SLA_ACK 0x40 #define MR_SLA_NOACK 0x48 #define MR_DATA_ACK 0x50 #define MR_DATA_NOACK 0x58 #define RD_DEVICE_ADDR 0x0B //ADDR脚接地时的读地址 #define WD_DEVICE_ADDR 0x0A //ADDR脚接地时的写地址 //常用TWI操作(主模式写和读) #define Start() (TWCR=(1< #define SetAck (TWCR|=(1< extern void init_devices(void); int main(void) { int i,j; init_devices(); Delay_ms(10); while(1) { Start(); //I2C启动 Wait(); if(TestAck()!=START) return 1; Write8Bit(0x14); //写I2C从器件地址和写方式 Wait(); PORTC&=~(1<<7); //控制7号灯亮,查询程序是否执行到这一步 if(TestAck()!=MT_SLA_ACK) //检测是否有应答 return 1; PORTC&=~(1<<6); //控制6号灯亮,查询程序是否执行到这一步 } return (0); } void init_devices(void) { int_init(); LED_Init(); PWM8_init(); HC595_Init(); CLI(); //领导说不 timer0_init();//定时器中断配置 TIMSK = 0x02; //定时器中断小boss SEI(); //领导同意 } 将BMA220连在Atmega16的学习板上后,7灯亮,而6灯不亮,这是为什么啊??? |
|
相关推荐
4个回答
|
|
已经解决了,谢谢大家。之前之所以没有接收到数据,还是因为IIC底层程序不对,后来又重写了一个底层一调用就接收到数据了!下面是我用的IIC底层程序,希望可以和大家多多交流
|
|
|
|
楼主,你上面的问题 搞定了?
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3982 浏览 0 评论
8536 浏览 0 评论
5955 浏览 0 评论
4102 浏览 1 评论
5190 浏览 0 评论
请问一下qspi mtsr引脚传输一次32bit后引脚不拉低怎么解决?
418浏览 2评论
655浏览 2评论
4762浏览 2评论
最近UJA1023开发遇到问题了,各位大神有谁知道可以替代这颗芯片的
589浏览 1评论
820浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 17:27 , Processed in 0.768583 second(s), Total 89, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号