完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
最近一段时间在做I设计到2C以及单总线的协义的一个项目,所用的芯片是F28027。由于内部的I2C的例程都是利用中断的形式来做的,感觉不符合自己的要求,从而就想利用IO来模拟I2C总线的形式来做。做了有很长时间也没有仿真出来,很是头疼。
先撇开I2C总线不谈,在读取AM2301的单总线的数据时,依旧检测不到相应的信号。 在官方的datasheet中谈到28X系列的芯片的GpioDataRegs.GPADAT是可读可写的(即便是设置为输出状态也可以检测到Io口的电平状态),我也写了一个程序用来测验,可以识别。但是不能识别出我模块产生的响应信号,同样的我也尝试着去改变GPIO的GPIODIR的寄存器来做,依旧是解决不了问题。 然而我就在想在进行模拟通信时初始化设置GPIO口的模式时有什么特殊的要求吗??以及在通信过程中临时改变GPIO的方向设置会产生什么样的影响呢?会不会产生电平上的变化,或者说是GPIO的方向设置无法改变?? void AMS2301Io_init() [ EALLOW; GpioCtrlRegs.GPAMUX1.bit.GPIO5 =0; GpioCtrlRegs.GPADIR.bit.GPIO5=1; GpioCtrlRegs.GPAPUD.bit.GPIO5 =0; //初始化上拉电阻 GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 2; GpioDataRegs.GPADAT.bit.GPIO5=1; //将电平拉高 EDIS; ] void DSIN(void) //设置为输入状态 [ EALLOW; GpioCtrlRegs.GPADIR.bit.GPIO5 =0; EDIS; ] void DSOUT(void) //设置为输出状态 [ EALLOW; GpioCtrlRegs.GPADIR.bit.GPIO5 =1; EDIS; ] void DS_0() //将端口的电平置0 [ GpioDataRegs.GPACLEAR.bit.GPIO5=1; //将电平拉低 ] void DS_1() //将电平的数据置1 [ GpioDataRegs.GPASET.bit.GPIO5=1; //将电平拉高 ] 这是我写的一些初步的程序,求指教?对这些设置实在是不懂。 |
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
553 浏览 0 评论
1616 浏览 0 评论
2049 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1516 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1343 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1760浏览 29评论
2787浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1726浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1637浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1647浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 11:37 , Processed in 0.625204 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6061