写一个链表准备管理散乱的引脚, 结构体中 bit *pin; 咋不支持啊,应该如何改正
STC官方的文档,也没找到关于对散乱的IO口进行统一管理的方法
如果用sfr 定义 ,也无法对其他引脚做映射啊.相对的指针也没办法引出. 愁死了
下面是DEMO 测试编译的,直接不通过
-
- #include <STC32G.H>
-
- //定义链表节点的结构体:
- //其中,bit *pin表示指向引脚的指针,struct node *next表示指向下一个节点的指针。
-
-
- typedef struct node {
- bit *pin; // 指向引脚的指针
- struct node *next; // 指向下一个节点的指针
- } Node;
-
- Node *head = NULL;
-
- void addNode(bit *pin) {
- Node *newNode = (Node *) malloc(sizeof(Node)); // 分配新节点内存
- newNode->pin = pin; // 设置新节点的引脚指针
- newNode->next = head; // 将新节点的next指针指向当前的头节点
- head = newNode; // 将头指针指向新节点
- }
-
-
- void main() {
- bit *pin1 = &P10;
- bit *pin2 = &P41;
- bit *pin3 = &P52;
-
- addNode(pin1);
- addNode(pin2);
- addNode(pin3);
-
- // 遍历链表并访问每个引脚
- Node *currentNode = head;
- while (currentNode != NULL) {
- *(currentNode->pin) = 1; // 将引脚设置为高电平
- currentNode = currentNode->next;
- }
- }
复制代码
|