找回密码
 立即注册
查看: 68|回复: 4

AI8H使用库函数的时候发现一个神奇的问题

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:212
  • 最近打卡:2025-06-13 13:35:50
已绑定手机

19

主题

83

回帖

570

积分

高级会员

积分
570
发表于 2025-6-5 23:41:39 | 显示全部楼层 |阅读模式
void BSP_GPIO_Init()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.Mode = GPIO_OUT_PP;
        GPIO_InitStructure.Pin = GPIO_Pin_All;
        GPIO_Inilize(GPIO_P2,&GPIO_InitStructure);
        //P2M0 = 0xff; P2M1 = 0x00;
P2 = 0xff;
}理论上来说这个配置是能够让P2口输出高电平的,但是实测输出不了高电平,只有把GPIO_InitTypeDef GPIO_InitStructure;改为idata GPIO_InitTypeDef GPIO_InitStructure;才能正常把P2口配置为推挽输出,不知道是不是结构体指针问题。
原本是想把AI8051的ST7789驱动移植到STC8上,我把工程贴在下面,各位大佬可以帮我看看,解释一下原因。

STC8H8K64U.zip

183.3 KB, 下载次数: 6

回复

使用道具 举报 送花

3

主题

698

回帖

107

积分

等待验证会员

积分
107
发表于 2025-6-5 23:43:00 | 显示全部楼层
在你的代码中,使用了结构体指针,但在BSP library中,结构体指针通常不会直接用于树的构建和查询。BSP library通常处理的是结构体指针的指针变量,而不是直接的结构体对象。这可能导致在移植驱动代码时遇到问题。

具体来说,你的代码中使用了)..结构体指针,但在你的移植驱动代码中使用了)..结构体,这会导致编译错误。正确的做法是将结构体指针转换为指针变量,而不是直接使用结构体对象。

在移植驱动代码中,要正确处理结构体指针,可以将结构体指针转换为指针变量,例如:
  1. c
  2. void BSPGPIOInit() {
  3.     GPIOInitialized = ( GPIOInitialized = GPIOInitTypeDef GPIO/Edit );
  4.     // ...其他代码
  5. }
复制代码

这样,)..结构体指针会被自动转换为指针变量,从而在BSP library中正确处理。

总的来说,你的代码中使用了结构体指针,但在移植驱动代码中使用了结构体,导致编译失败。正确的做法是将结构体指针转换为指针变量,以确保代码在移植过程中能够正确运行。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-06-17 17:14:03
已绑定手机
已实名认证

112

主题

2394

回帖

6026

积分

版主

积分
6026
发表于 2025-6-6 09:30:19 | 显示全部楼层
要用全局变量,否则可能会被编译器优化
截图202506060929473069.jpg
以下是测试通过的,可以P2口正常输出高电平的程序:
Drivers.zip (339.13 KB, 下载次数: 3)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:212
  • 最近打卡:2025-06-13 13:35:50
已绑定手机

19

主题

83

回帖

570

积分

高级会员

积分
570
发表于 2025-6-6 15:12:21 | 显示全部楼层
王*** 发表于 2025-6-6 09:30
要用全局变量,否则可能会被编译器优化

以下是测试通过的,可以P2口正常输出高电平的程序:

我改为全局变量也有问题,不知道什么原因,还有这个SPI配置对了吗,怎么发送不了数据
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:209
  • 最近打卡:2025-06-17 08:51:39
已绑定手机

68

主题

1926

回帖

4310

积分

荣誉版主

无情的代码机器

积分
4310
发表于 2025-6-6 15:28:57 | 显示全部楼层
我这边复现不了gpio的问题?1L程序放函数里不改也是正常的。

spi有例程:
https://www.stcaimcu.com/data/do ... H-LIB-DEMO-CODE.zip

三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 23:57 , Processed in 0.155189 second(s), 80 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表