电子创新网提供的代码对于GPIO的操作有这样的一段,通过分析这句程序来确定对于K60的GPIO的操作。
GPIOA_PDOR&=~GPIO_PDOR_PDO(GPIO_PIN(10)); //PTA10对应D12
(1)GPIO_PIN(10)
#define GPIO_PIN(x) (((1)<<(x & GPIO_PIN_MASK)))
#define GPIO_PIN_MASK 0x1Fu
(2)GPIO_PDOR_PDO()
#define GPIO_PDOR_PDO(x) (((uint32_t)(((uint32_t)(x))<<GPIO_PDOR_PDO_SHIFT))&GPIO_PDOR_PDO_MASK)
#define GPIO_PDOR_PDO_MASK 0xFFFFFFFFu
#define GPIO_PDOR_PDO_SHIFT 0
(3)GPIOA_PDOR
/* GPIO - Register instance definitions */
/* PTA */
#define GPIOA_PDOR GPIO_PDOR_REG(PTA_BASE_PTR)
#define GPIOA_PSOR GPIO_PSOR_REG(PTA_BASE_PTR)
#define GPIOA_PCOR GPIO_PCOR_REG(PTA_BASE_PTR)
#define GPIOA_PTOR GPIO_PTOR_REG(PTA_BASE_PTR)
#define GPIOA_PDIR GPIO_PDIR_REG(PTA_BASE_PTR)
#define GPIOA_PDDR GPIO_PDDR_REG(PTA_BASE_

本文详细解析了Freescale K60微控制器中GPIO的操作,特别是针对GPIOA_PDOR寄存器的位操作,包括GPIO_PIN()宏定义和GPIO_PDOR_PDO()宏定义的解释,以及它们如何影响GPIO端口的输出状态。通过对GPIO寄存器的深入探讨,有助于理解K60的GPIO控制机制。

489

被折叠的 条评论
为什么被折叠?



