Skip to content

设置波特率

设置Makcu波特率4M 提升响应速度

手动设置方法

连续按4下左边的小按钮,MACKU的灯会闪动4下证明上设置好了

如果运行脚本自动设置不了,需采用手动设置的方式

MaKcu

makcu

自动设置脚本

自动设置不是永久性的,重新通电就会复原,推荐使用手动设置的方式

lua
local function connect_Makcu(port_name, baud_rate)
    local sp, err = openSerial("/dev/" .. port_name, baud_rate)
    if not sp then
        print("连接到 MAKCU 失败: " .. tostring(err))
        return nil
    end
    print(string.format("已连接到 MAKCU! {端口: /dev/%s | 波特率: %d}", port_name, baud_rate))
    return sp
end

local function main()
    print("MAKCU 波特率修改工具")

    local port = "ttyACM0"
    if not port then
        print("未检测到 MAKCU 设备!")
        return
    end

    print("尝试连接到 MAKCU基础波特率 (115200) ...")
    local sp = connect_Makcu(port, 115200)
    if not sp then return end
    sp:write("km.version()\r")
    local resp = sp:read(128, 500)  -- 最多 128 字节,超时 500ms

    if resp and string.find(resp, "km.MAKCU") then
        print("连接成功")
        print("正在发送修改波特率的字节序列...")
        local data_bytes = string.char(
            0xDE, 0xAD, 0x05, 0x00, 0xA5, 0x00, 0x09, 0x3D, 0x00
        )
        sp:write(data_bytes)

        sleep(1)

        print("使用新波特率 4000000 重新连接...")
        local sp_new = connect_Makcu(port, 4000000)
        if not sp_new then return end

        print("测试新波特率通信...")
        sp_new:write("km.version()\r")
        local resp = sp_new:read(128, 500)

        if resp and string.find(resp, "km.MAKCU") then
            print("波特率成功修改为 4000000!    ")
            print("注意:该修改不是永久的,每次重新上电需重新执行。")
        else
            print("波特率修改失败或未收到正确响应!请手动修改4000000波特率")
        end

    else
        print("基础115200波特率连接失败")
        print("正在使用波特率 4000000 重新连接...")
        local sp_new = connect_Makcu(port, 4000000)
        if not sp_new then return end

        print("测试波特率通信...")
        sp_new:write("km.version()\r")
        local resp = sp_new:read(128, 500)

        if resp and string.find(resp, "km.MAKCU") then
            print("此波特率已为4000000")
            print("注意:此波特率可能不是永久的,每次重新上电需重新执行。")
        else
            print("4000000波特率修改失败或未收到正确响应!")
            print("找不到makcu波特率,请手动恢复115200波特率")
        end

    end

end

main()