楼主: NXP管管

[在线活动] 【送70块板卡】“中秋芯礼”开发板大放送

  [复制链接]
回帖奖励 27 NXP金币 回复本帖可获得 3 NXP金币奖励! 每人限 2 次
抢楼 抢楼 查看抢中楼层 本帖为抢楼帖,欢迎抢楼!  奖励楼层: 7,77,177 
  • TA的每日心情
    奋斗
    昨天 14:31
  • 签到天数: 2095 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    65

    主题

    8410

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    14215
    最后登录
    2025-7-31
    发表于 2024-9-14 16:35:14 | 显示全部楼层

    回帖奖励 +3 NXP金币

    BACKNET协议,用过的人比较少吧


                          case READ_PROPM:                                                        //读多个属性
                                    if ((buf[15] == 0x1E) && (buf[16] == 0x09) && (buf[17] == 0x69)
                                            && (buf[18] == 0x1F)){                                //scan软件读对象属性readPropertyMultiple
                                            //81 0A 00 13 01 04 00 05 01 0C 0C 02 31 39 37 19 4C 29 00
                                            Eth_ReadProp_AckObject2 (buf);
                                            return;
                                    }
                                    else{
                                            //81 0A 00 11 01 04 02 75 05 0C 0C 01 40 00 00 19 55
                                            if (buf[17] != 0x55){                                //固定字节
                                                    Eth_ErrNum = 2;
                                                    Eth_RecvErrAck1 (buf);                        //返回错误代码
                                                    return;
                                            }
                                            Eth_ReadPropM_Value_Ack (buf);                 //
                                    }
                                    break;
                            case WRITE_PROP:                                                        //写属性
                                    //81 0A 00 17 01 04 00 75 11 0F 0C 01 40 00 00 19 55 3E 21 63 3F 49 10
                                    if ((buf[13] != 0x00) || (buf[14] > REG_MAXNUM) || (buf[16] != 0x55)){//固定字节
                                            Eth_ErrNum = 2;
                                            Eth_RecvErrAck1 (buf);                                //返回错误代码
                                            return;
                                    }

                                    Dat = Eth_Get_Value (buf + 11);                        //获取设置的数据
                                    Eth_ErrNum = ErrNum;
                                    if (Eth_ErrNum != 0){
                                            Eth_RecvErrAck1 (buf);                                //返回错误代码
                                            return;
                                    }
                                    if (1 == Eth_WriteChk(buf[14], Dat)){        //要写的数据校验,1为错误
                                            Eth_ErrNum = 3;
                                            Eth_RecvErrAck1 (buf);                                //返回错误代码
                                            return;
                                    }
                                    else{                                                                        //数据正确的话,处理,并应答
                                            Eth_WriteDeal (buf[14], Dat);                //写单个数据处理
                                            Eth_WriteProp_Value_Ack (buf);                 //应答
                                            if (WriteM_Flag == true){
                                                    WriteM_Flag = false;
                                                    Reg_Deal ();
                                                    Write_EEPROM_Pra ();
                                            }
                                            Sys_Reset_Deal ();                                        //修改参数后复位处理
                                    }
                                    break;
                            case WRITE_PROPM:                                                        //写多个属性
                                    Eth_WritePropM_Value_Ack (buf);                        //写多个数据处理
                                    Sys_Reset_Deal ();                                                //修改参数后复位处理
                                    break;
                            default:
                                    Eth_ErrNum = 3;
                                    Eth_RecvErrAck1 (buf);                                        //返回错误代码
                                    break;       

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-7-18 08:48
  • 签到天数: 154 天

    连续签到: 2 天

    [LV.7]常住居民III

    0

    主题

    245

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1432
    最后登录
    2025-7-18
    发表于 2024-9-14 17:10:42 | 显示全部楼层

    回帖奖励 +3 NXP金币

    if(tb==1)
            {
                    zjxz(ns1_fgz1zjx,ns1_fgz1fjx,tyxd,tyfw,tygd,ns1_fgz1dxdcb,ns1_fgz1nbdcb,ns1_fgz1dxzb,ns1_fgz1nbzb,ns1_fgz1lzgd,1);
                    yy11x=xzyyx;
                    zj11x=xzzjx;
                    zj11z=xzzjz;
                    zjxz(ns1_fgz1zjx,ns1_fgz1fjx,tyxd,tyfw,tygd,ns1_fgz1dxdcb,ns1_fgz1nbdcb,ns1_fgz1dxzb,ns1_fgz1nbzb,ns1_fgz1lzgd,4);
                    yy14x=xzyyx;
                    zjxz(ns1_fgz2zjx,ns1_fgz2fjx,tyxd,tyfw,tygd,ns1_fgz2dxdcb,ns1_fgz2nbdcb,ns1_fgz2dxzb,ns1_fgz2nbzb,ns1_fgz2lzgd,1);
                    yy21x=xzyyx;
                    zj21x=xzzjx;
                    zj21z=xzzjz;
                    zjxz(ns1_fgz3zjx,ns1_fgz3fjx,tyxd,tyfw,tygd,ns1_fgz3dxdcb,ns1_fgz3nbdcb,ns1_fgz3dxzb,ns1_fgz3nbzb,ns1_fgz3lzgd,4);
                    yy34x=xzyyx;
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:32
  • 签到天数: 1105 天

    连续签到: 23 天

    [LV.10]以坛为家III

    28

    主题

    4278

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5800
    最后登录
    2025-7-31
    发表于 2024-9-14 17:22:39 | 显示全部楼层

    回帖奖励 +3 NXP金币

    在开发中,会经常不小心设置变量类型时,设置不正确,到之后续处理出现问题。像定义变量是unsigned char型,在后续处理时,判断大小范围,却是用超过255的数值,导致循环永远无法结束。这个错误已经犯过连三次。
    unsigned char o =0;
    for (i=0; i<512; i++) {
    ...
    }
    语法上是没有任何问题的。但是只要运行起来,必然是死循环。
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2025-8-1
    发表于 2024-9-14 18:03:31 | 显示全部楼层

    回帖奖励 +3 NXP金币

    遇到过最奇怪的一个BUG莫过于这个了:在驱动SSD1306核的OLED时,使用硬件SPI来驱动,结果只能显示不全的第二行,不管怎么调试都不行!!!!!!(只能显示最后一行,其它保持是雪花形态!)

    你猜怎么着,他居然是时序问题,CS提前1us下拉,然后显示恢复正常,完全正常使用。要是手上没有个逻辑分析仪,这就是惊天BUG。(你说不能显示吧,它能,但是你说它正常显示吗?它不正常!!)
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    22
    最后登录
    2024-9-14
    发表于 2024-9-14 22:56:35 来自手机 | 显示全部楼层

    回帖奖励 +3 NXP金币

    最近做温控器,研究了下史密斯预估器,凭印象简单写点发出来吧
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    22
    最后登录
    2024-9-14
    发表于 2024-9-14 22:56:42 来自手机 | 显示全部楼层

    回帖奖励 +3 NXP金币

    #include <stdio.h> #include <math.h>  // 定义时间步长和系统延迟 #define TIME_STEP 1.0 #define SYSTEM_DELAY 5.0  double system_function(double input) {     double output = 0.5 * input; //在这里写个系统模型     return output; }  // 史密斯预估器 double smith_predictor(double setpoint, double control_input, double last_output) {     // 预估下一时刻的输出     double predicted_output = system_function(control_input);          // 计算控制误差     double error = setpoint - predicted_output;          // 计算控制输入     double control_signal = last_output + error;          // 更新输出     double new_output = system_function(control_signal);          // 返回新的控制输入和输出     return control_signal, new_output; }  int main() {     double setpoint = 10.0; // 目标值     double control_input = 0.0; // 初始控制输入     double last_output = 0.0; // 初始输出     double current_output;          // 模拟控制系统     for (int i = 0; i < 50; i++) {         // 调用史密斯预估器         control_input = smith_predictor(setpoint, control_input, last_output);         current_output = system_function(control_input);                  // 更新上一时刻的输出         last_output = current_output;                  // 打印当前输出         printf("Time: %d, Control Input: %.2f, Output: %.2f\n", i, control_input, current_output);     }          return 0; }
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-12-9 14:23
  • 签到天数: 204 天

    连续签到: 1 天

    [LV.7]常住居民III

    7

    主题

    567

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1143
    最后登录
    2025-3-12
    发表于 2024-9-15 09:06:12 | 显示全部楼层

    回帖奖励 +3 NXP金币

    ③找一个你觉得设计想法很好的方案可以是板子也可以是应用
    --经常见到开发板核心板与底板分离的设计,一方面减低问题成本,另一方面兼容一系列U,是一种很好的设计。
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    昨天 12:43
  • 签到天数: 2462 天

    连续签到: 87 天

    [LV.Master]伴坛终老

    25

    主题

    7675

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    14796
    最后登录
    2025-7-31
    发表于 2024-9-15 09:48:17 | 显示全部楼层

    回帖奖励 +3 NXP金币

    设计一款多功能的桌面“小电视”,可以支持无线充电,无线联网,教育教学,健康检测,支付播报等。既小巧又不占空间,具有很好市场竞争力的IoT产品。
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-5-23 06:13
  • 签到天数: 1082 天

    连续签到: 1 天

    [LV.10]以坛为家III

    18

    主题

    1974

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    6174
    最后登录
    2025-7-31
    发表于 2024-9-15 10:11:49 | 显示全部楼层

    回帖奖励 +3 NXP金币

    中秋要外出,家里的小鱼喂食换水可是个问题,得借助NXP的芯技术来设计一个方案。
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    12
    最后登录
    2024-9-16
    发表于 2024-9-15 10:40:15 来自手机 | 显示全部楼层

    回帖奖励 +3 NXP金币

    i2c被mpu6050
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-1 00:37 , Processed in 0.102765 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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