DSP

DSP28335-GPIO寄存器-(1)

2019-07-13 10:28发布

28355的GPIO的寄存器主要包括三大类  :控制寄存器   数据寄存器   中断寄存器  手册中貌似先说的数据寄存器  翻了一下没找到对其他寄存器的详细说明  我就先学习一下这个吧   数据寄存器主要有四个 :数据  置位  清零  翻转    从手册上截取了一点图   看起来可能方便些    
下面 我分别 翻译了一下手册中对每个寄存器的介绍   

数据寄存器
每一个IO端口都有一个数据寄存器  并且寄存器中的每一位都对应着一个GPIO引脚   无论你怎么配置这个引脚(作为通用的GPIO或者选择它的外设功能) 这个引脚在寄存器中相应的位都可以反映这个引脚的当前状态    如果这个引脚配置为输出IO口  那么向数据寄存器中写清零或者置位 相应的输出锁存 这个引脚都会有驱动能力 无论是高电平还是低电平  如果这个引脚没有被配置为输出 那么这个值就会被锁存起来   但是这个时候这个引脚没有任何的驱动能力   只有在这个引脚被配置为输出以后 那个锁存的值才会赋予这个引脚有驱动能力  当你使用数据寄存器改变一个输出引脚的电平的时候  需要十分小心  不要意外的改变了其他引脚的电平  举个例子   当你使用读写修改指令向数据寄存器写指令修改GPIOA0的输出状态的时候  那么这时候端口A也可能在这个读写命令下发生电平的变化   你还可以改变输出锁存的状态  你可以通过操作GPxSET, GPxCLEAR, and GPxTOGGLE  寄存器来改变IO口的状态

置位寄存器      这个寄存器被用来驱动指定的引脚为高电平并且不影响其他的引脚   每一个IO端口都有一个置位寄存器  并且寄存器中的每一位都对应着一个IO引脚,读取这个寄存器的值总是返回0   如果相应的引脚被配置为输出  那么向这个引脚对应的为写1将会把输出锁存为高电平  并且这个引脚将会有高电平的驱动能力   如果这个引脚没有被 配置为输出 那么这个值将会被锁存  但是这个引脚没有任何驱动能力  稍后只有这个引脚配置为输出之后 这个锁存的值才会赋予这个引脚驱动能力  对这个寄存器写0没有任何影响
清零寄存器:      这个寄存器被用来驱动指定的引脚为低电平并且不影响其他的引脚   每一个IO端口都有一个清零寄存器  读取这个寄存器的值总是返回0   如果相应的引脚被配置为输出  那么向这个引脚对应的为写1将会清除输出锁存并且把输出锁存为低电平  如果这个引脚没有被 配置为输出  那么这个值将会被锁存  但是这个引脚没有任何驱动能力  稍后只有这个引脚配置为输出之后 这个锁存的值才会赋予这个引脚驱动能力  对这个寄存器写0没有任何影响
这个的套话和前两个基本一样  直接说一下 功能吧  GPxTOGGLE 翻转寄存器
每个IO口有一个翻转寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出翻转,写0没有变化。
GPxTOGGLE .bit.xx=0,被忽略;
GPxTOGGLE.bit.xx=1,且引脚配置为输出,则输出翻转


最后附上一个寄存器位的截图  以后想看的时候 更明了    其余的也都 差不多     哈哈哈 
其中有很多说的不对的地方    欢迎指正    哈哈哈哈哈哈哈哈哈哈