首页 > 编程知识 正文

结构体指针如何定义和使用,单片机程序用什么编译器

时间:2023-05-05 23:42:51 阅读:174479 作者:3041

Keil编译器有很多奇怪的地方。 例如,许多程序的编写是无法在Keil编译器中实现的。 然后,不报告错误。 然后,不可思议地冻结。

如果结构中只包含指针函数,则正常调用。 如果指针函数和参数都存在,则会死机。

同一方法在其他编译器(如QT自动编译器)中工作正常

typedef struct { uint8_ tso charging; //充电状态uint8_t soDsarging; //放电状态uint8_t soChargMos; //充电MOSuint8_t soDsargMos; //放电MOSuint8_t soCharger; //充电器uint8_t soLoader; //负载void(*sochargmoscontrol ) uint8_t status; //充电MOS控制void(*sodsargmoscontrol ) uint8_t status; //放电MOS控制} PreventSparkStruct; voids h309 chgmosconrotl (uint8_ tvalue ) {uint8_t tempStatus=0; 打印(testaa ); } voids h309 dsgmosconrotl (uint8_ tvalue ) {uint8_t tempStatus=0; printf(testbb ); } voidsoftpreventspark (preventsparkstruct * temppreventspark ) {static uint16_t pretimer=0; static uint8_ tpreventsparkstatus=0; temppreventspark-sodsargmoscontrol (1; } preventsparkstructpreventsparkdata; void main () preventsparkdata.sochargmoscontrol=s h309 chgmosconrotl; preventsparkdata.sodsargmoscontrol=s h309 dsgmosconrotl; softpreventspark (preventsparkdata; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。