完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-13 16:42 编辑
ccs5.3下,TMS320F28035PNT的GPIOA16--GPIO23用作输出,默认为高,低有效。 控制按顺序将GPIOA16--GPIO23中的每一位先输出低1.2秒后该位恢复为高,重复两次。即 GpioDataRegs.GPACLEAR.bit.GPIO16 = 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO16 = 1; 延时5秒 GpioDataRegs.GPACLEAR.bit.GPIO16 = 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO16 = 1; 延时5 GpioDataRegs.GPACLEAR.bit.GPIO17 = 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO17 = 1; 延时5秒 GpioDataRegs.GPACLEAR.bit.GPIO17 = 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO17 = 1; 秒 延时5秒 …… 延时5 GpioDataRegs.GPACLEAR.bit.GPIO23 = 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO23 = 1; 延时5秒 GpioDataRegs.GPACLEAR.bit.GPIO23= 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO23 = 1; 延时5秒 GpioDataRegs.GPACLEAR.bit.GPIO16 = 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO16 = 1; 延时5秒 GpioDataRegs.GPACLEAR.bit.GPIO16 = 1; 延时1.2秒 GpioDataRegs.GPASET.bit.GPIO16 = 1; …… 在控制过程中发现:有时xx位由低变高后应该下一位(XX+1位)为低,结果却是xx位输出为低。 例如本应:GPIOA16为低 --》延时1.2秒--》GPIOA16为高 --》延时5秒 --》GPIOA16为低 --》延时1.2秒--》GPIOA16为高 ------> GPIOA17为低 --》延时1.2秒--》GPIOA17为高 --》延时5秒 --》GPIOA17为低 --》延时1.2秒--》GPIOA17为高 实际为:GPIOA16为低 --》延时1.2秒--》GPIOA16为高 --》延时5秒 --》GPIOA16为低 --》延时1.2秒--》GPIOA16为高 ------> GPIOA16为低 --》延时1.2秒--》GPIOA17为高 --》延时5秒 --》GPIOA17为低 --》延时1.2秒--》GPIOA17为高 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑-此处是GPIOA16为低,而不是GPIOA17为低----------| 这种现象随机出现,比较频繁,且不仅仅限于GPIOA16,GPIOA17。GPIOA16~GPIOA23均会出现。 但有个特点是,位号由GPIOAxx变换时总为GPIOA(xx+1)时,是本应GPIOA(xx+1)位为低,实际是GPIOAxx位再次为低。 且位号GPIOAxx,GPIOAxx+1……GPIOAxx+7顺序、逆序、乱序运行时,总是本该下一个位变低,实际却是上一位再次为低(仅一次,且偶尔随机出现)。 好像是GPIOxDAT的读-改-写,在下位变化时,仍将上一位值写入GPIO xDAT寄存器一样。可是我每一位改变后都有延时的呀? 且将GPxDAT、GPxSet、GPxClear、GPxToggle的bit设置方式,all设置方式都用了,每次写GPIO寄存器都加了1ms延时,还是不行。 在每一位改变时将GPIOxx连续几遍设为低或在每一位改变时将GPIOA重新初始化,也不行。 实在是没招了,请求哪位高手路过,指点一二。万分感谢! 板子也投了不少,咋办呀??!!!!! |
|
相关推荐
3个回答
|
|
junlong,
这种现象很奇怪。希望你能够提供更多的信息帮助我们判断。 1.你的代码是否有引用controlSUITE中的源文件? 2. 希望你能够提供GPIO的初始化代码,如果方便的话,可以提供这部分测试代码。 3. 你可以把其他引脚的代码去除掉,只留下GPIO16和GPIO17的代码,这样方便判断,不知道你有没有F28035简单的开发板,例如最小系统的controlCARD之类的,将代码load到开发板,再测试一下,排除外部电路的影响。 我认为GPIOCLEAR和GPIOSET不应该存在这个读修改写的问题。 Eric - ERIC |
|
|
|
首先,感谢您快速专业的解答。 确实像您认为的那样GPIOCLEAR和GPIOSET不应该存在这个读修改写的问题。 今天仔细分析程序,发现有一个控制标志复位的时机不恰当。导致了上述问题。现已解决。 再次感谢您的热心解答,对耽误您的宝贵时间感到十分抱歉。 祝 祺! |
|
|
|
您好 能介绍几位熟悉设计编程TMS320F28035PNT芯片工程师我认识吗 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
677 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
599 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1052 浏览 1 评论
736 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
523 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
160浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
124浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
125浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
122浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
167浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 03:21 , Processed in 0.790770 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号