DSP28335-GPIO寄存器-(1)

28355的GPIO的寄存器主要包括三大类  :控制寄存器   数据寄存器   中断寄存器  手册中貌似先说的数据寄存器  翻了一下没找到对其他寄存器的详细说明  我就先学习一下这个吧  

数据寄存器主要有四个 :数据  置位  清零  翻转   

从手册上截取了一点图   看起来可能方便些  

 DSP28335-GPIO寄存器-(1)_第1张图片
下面 我分别 翻译了一下手册中对每个寄存器的介绍   

DSP28335-GPIO寄存器-(1)_第2张图片
数据寄存器

每一个IO端口都有一个数据寄存器  并且寄存器中的每一位都对应着一个GPIO引脚   无论你怎么配置这个引脚(作为通用的GPIO或者选择它的外设功能) 这个引脚在寄存器中相应的位都可以反映这个引脚的当前状态    如果这个引脚配置为输出IO口  那么向数据寄存器中写清零或者置位 相应的输出锁存 这个引脚都会有驱动能力 无论是高电平还是低电平  如果这个引脚没有被配置为输出 那么这个值就会被锁存起来   但是这个时候这个引脚没有任何的驱动能力   只有在这个引脚被配置为输出以后 那个锁存的值才会赋予这个引脚有驱动能力 

当你使用数据寄存器改变一个输出引脚的电平的时候  需要十分小心  不要意外的改变了其他引脚的电平  举个例子  

当你使用读写修改指令向数据寄存器写指令修改GPIOA0的输出状态的时候  那么这时候端口A也可能在这个读写命令下发生电平的变化   你还可以改变输出锁存的状态  你可以通过操作GPxSET, GPxCLEAR, and GPxTOGGLE  寄存器来改变IO口的状态

DSP28335-GPIO寄存器-(1)_第3张图片

置位寄存器

     这个寄存器被用来驱动指定的引脚为高电平并且不影响其他的引脚   每一个IO端口都有一个置位寄存器  并且寄存器中的每一位都对应着一个IO引脚,读取这个寄存器的值总是返回0   如果相应的引脚被配置为输出  那么向这个引脚对应的为写1将会把输出锁存为高电平  并且这个引脚将会有高电平的驱动能力   如果这个引脚没有被 配置为输出 那么这个值将会被锁存  但是这个引脚没有任何驱动能力  稍后只有这个引脚配置为输出之后 这个锁存的值才会赋予这个引脚驱动能力  对这个寄存器写0没有任何影响

DSP28335-GPIO寄存器-(1)_第4张图片

清零寄存器:

     这个寄存器被用来驱动指定的引脚为低电平并且不影响其他的引脚   每一个IO端口都有一个清零寄存器  读取这个寄存器的值总是返回0   如果相应的引脚被配置为输出  那么向这个引脚对应的为写1将会清除输出锁存并且把输出锁存为低电平  如果这个引脚没有被 配置为输出  那么这个值将会被锁存  但是这个引脚没有任何驱动能力  稍后只有这个引脚配置为输出之后 这个锁存的值才会赋予这个引脚驱动能力  对这个寄存器写0没有任何影响

DSP28335-GPIO寄存器-(1)_第5张图片

这个的套话和前两个基本一样  直接说一下 功能吧 

GPxTOGGLE 翻转寄存器
每个IO口有一个翻转寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出翻转,写0没有变化。
GPxTOGGLE .bit.xx=0,被忽略;
GPxTOGGLE.bit.xx=1,且引脚配置为输出,则输出翻转


最后附上一个寄存器位的截图  以后想看的时候 更明了    其余的也都 差不多     哈哈哈 

DSP28335-GPIO寄存器-(1)_第6张图片

其中有很多说的不对的地方    欢迎指正    哈哈哈哈哈哈哈哈哈哈

你可能感兴趣的:(DSP-28335)