完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
型号
MDC300F, 刷的新的101版本, 操作系统是Ubuntu18. 除了Debug口, 有一路RS232的UART可以用, 不仅仅用于授时. SOME/IP定义 mdc_uart_abstract_application.arxml 中定义的UDP端口号 54865(host, mcu的为51361). uart_rx_service_interface.arxml有 SOME/IP 的定义: ... ... ... 数据上行 SOME/IP Event 定义 EventID:0x8001 ServiceID:0xd3 InstanceID:1 EventGroupID:0x10 数据下行 SOME/IP Method 定义 MethodID:0x0001 ServiceID:0xd3 InstanceID:1 接收参数配置 UART通路配置参数定义 的路径: 产品文档 -> 接口说明 -> 数据透传 -> 通路配置说明 -> UART通路配置参数定义 假设我这里要给MDC发的UART数据如下: 波特率115200bps 帧头固定为 0x55, 0xAA 剩余有效数据长度为5 不要校验 本来是要写一下MMC的用法, 但是不晓得是MMC的问题, 还是MDS生成json出了错, 或者是我操作有问题, 总感觉101版本的生成的有bug, 特别是SyncData参数, 明明写的是uint8类型, 生成的json文件却是十六进制的string, 让人很无奈, 索性不走这条路了. 直接拷贝原有模版文件修改 # 如果是外面编写好的json文件上传到 /home/sftpuser/uploads/ 目录 # 如果传不了, 可能是文件的执行权限不够, 用chmod命令加权限 # 切换到配置文件目录 $ cd /opt/platform/mdc_platform/runtime_service/devmc/conf/ # 备份原有uart配置文件 $ cp mcu_uartbus_config.json mcu_uartbus_config.json.bak # 拷贝模版文件修改 $ cp mcu_uartbus_config_m39.json mcu_uartbus_config.json $ vi mcu_uartbus_config.json # 主要修改如下 # 波特率是115200, 保持不变 { "key": "BaudRate", "value": { "uint32": 115200 }, "checksum": 4213107651 }, # SyncData中的value修改为 85(0x55) 和 170(0xAA) { "key": "SyncData", "value": { "object[]": [ { "key": "object", "value": { "uint8": 85 }, "checksum": 1360879489 }, { "key": "object", "value": { "uint8": 170 }, "checksum": 264756932 } ] }, "checksum": 572302646 } # HeadFixLength 由原来的2修改为0 "key": "HeadFixLength", "value": { "uint8": 0 }, # DataFixLength 修改为 "uint8": 5 { "key": "DataFixLength", "value": { "uint8": 5 }, "checksum": 1103247409 } # 去掉校验 "uint8": 0 { "key": "ChecksumSignalLengthSize", "value": { "uint8": 0 }, "checksum": 1103247409 }, # 下发uart配置到MCU $ mdc-tool devm set-dev-cfg 0 # 复位MCU使配置生效 $ mdc-tool mcu reset mcu 新建UART工程 参考GPIO篇用MDS新建tk_uart工程, 导入官方的 uart_sample. 文件树为 $ tree . ├── cmake │ └── toolchain.cmake ├── CMakeLists.txt ├── manifest │ ├── application_sample │ │ └── uart_sample │ │ └── mdc_uart_abstract_application.arxml │ └── common │ ├── data_type │ │ ├── mdc_data_type.arxml │ │ └── mdc_mode_declaration.arxml │ ├── machine │ │ ├── dmini0_machine.arxml │ │ ├── dmini1_machine.arxml │ │ ├── dmini2_machine.arxml │ │ ├── dmini3_machine.arxml │ │ └── host_machine.arxml │ └── service_interface │ └── canfd_can_uart_gpio_sample │ └── uart_rx_service_interface.arxml └── modules ├── CMakeLists.txt └── uart_sample ├── CMakeLists.txt └── src ├── main.cpp ├── uart.cpp └── uart.h 12 directories, 16 files 依次点击 Generate, Reload Cmake, Build 按钮, 点齿轮图标配置如下 点击Launch按钮运行 MDC发出的数据 115200波特率, 打开串口, HEX显示, 500ms发出一帧, 每帧发出69字节数据 发送数据到MDC 发送框输入 55 AA 01 02 03 04 05, 勾选HEX发送, 定时发送, 100ms/次 可以在MDS的窗口中间隔大约100ms收到7字节数据: 命令行运行 命令行运行可以参照MDS运行时Console最上面的提示 $ export CM_CONFIG_FILE_PATH=/home/mdc/wks/tk_uart/etc/HostMachine/mdcuart/MdcUartProcess$ /home/mdc/wks/tk_uart/bin/uart_sample 程序调用关系 日志调试 程序中开的有log, 可以查看MDC收发UART数据的log # 删除掉之前的日志 $ rm -f /opt/log/host/platform_log/debug/MCU* # 设置日志级别 # 日志总开关 # $ mdc-tool log-control level debug # 设置MCU日志级别 $ mdc-tool mcu setloglevel debug # https://bbs.huaweicloud.com/forum/thread-147089-1-1.html # https://bbs.huaweicloud.com/forum/thread-146888-1-1.html $ mdc-tool log-control appid MCU ctxid MCU level info # 查看日志, 5s更新一次 # 串口助手发送数据给MDC $ mdc-tool log-convert continue datatime /opt/log/host/platform_log/debug/MCU*.log | grep -i uGetMsg 2019/04/20 08:36:20.371737830 007 MCU MCU info [A I N 2019-4-20 0:36:20.349 cdd_datacen 26 uGetMsg:113443,PkgFrqHz:9] 2019/04/20 08:36:25.382858440 098 MCU MCU info [A I N 2019-4-20 0:36:25.359 cdd_datacen 26 uGetMsg:113765,PkgFrqHz:10] 2019/04/20 08:36:30.392578490 189 MCU MCU info [A I N 2019-4-20 0:36:30.369 cdd_datacen 26 uGetMsg:114087,PkgFrqHz:9] 2019/04/20 08:36:35.402783650 024 MCU MCU info [A I N 2019-4-20 0:36:35.379 cdd_datacen 26 uGetMsg:114402,PkgFrqHz:9] ... # 可以看到 uGetMsg 的数据在增加, 频率大概9~10Hz [tr]第一部分[/tr]
|
||
|
||
只有小组成员才能发言,加入小组>>
3318 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9063 浏览 16 评论
4088 浏览 18 评论
1183浏览 3评论
609浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
601浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2336浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1897浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 03:56 , Processed in 1.209736 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号