在查看STM32F103XX固件函数库时关于外设设置结构体的问题

在查看STM32F103xx固件函数库用户手册时发现可以优化代码大小的设置结构体的用法,但是在实际写出来时却报警告。


```c

PPP_InitTypeDef PPP_InitStructure = { val1, val2,.., valN}

这是手册里的内容

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/911009441976189.png "#left")

这是写的一个测试的代码,指示警告的位置

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/512943541976198.png "#left")

这是警告的提示

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/225395541976178.png "#left")

参考GPT和自己的思路:

根据你提供的信息,警告提示是 "missing braces around initializer",意思是在结构体初始化时缺少大括号。具体来说,在你的代码中,应该这样初始化PPP_InitStructure结构体:

PPP_InitTypeDef PPP_InitStructure = { val1, val2, ..., valN };

注意最后有一个分号。大括号的作用是将初始值按照结构体成员的顺序进行初始化。如果缺少大括号,则会导致某些值被错误地赋给结构体成员。

同时,保证初始化的值的数量和类型与结构体成员匹配。如果数量不足,缺少的成员将自动初始化为0;如果数量过多,则多出来的成员将被忽略。如果类型不匹配,则编译器可能会发出警告或错误。

希望这些信息可以帮助你解决问题!

类型的问题,不要混合类型

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^