迪文科技论坛

 找回密码
 立即注册
搜索
楼主: dwinForumAdmin

【资料分享】连续630帧读写无错误 UART2_82/83读写 C51程序代码

[复制链接]

9

主题

8

回帖

160

积分

注册会员

Rank: 2

积分
160
发表于 2021-1-11 15:29:25 | 显示全部楼层
我下载楼主代码,C51程序UART2下载怎么用,我一直不成功
回复

使用道具 举报

6

主题

40

回帖

327

积分

中级会员

Rank: 3Rank: 3

积分
327
发表于 2021-4-7 22:57:47 | 显示全部楼层
参考价值很好
回复

使用道具 举报

1

主题

15

回帖

1030

积分

金牌会员

Rank: 6Rank: 6

积分
1030
发表于 2021-5-13 16:40:48 | 显示全部楼层
问个问题
功能:协议数据解析*/
void ParseBuffer(void)
{
    uint16_t frame_length = 0;/*一帧数据的总长度*/
    uint16_t i = 0, temp_len = 0;
    uint8_t has_content = 0;/*buf中是否有数据*/
    uint8_t frame_error = 0;/*缓存区当前的数据对所有协议都不满足*/
    uint8_t*  p_buf= Uart2_Rx;/*串口接受数组首地址*/
    protocol_type_t protl_type = PROTOCOL_UNKNOWN;/*协议类型UNKNOWN*/
    frame_result_t find_frame_re = UNKNOWN;/*一帧协议类型UNKNOWN*/

    //用来保存每个协议解析后的结果
    //frame_results[0] 保存PROTOCOL_DL_T_645协议解析结果
    //frame_results[1] 保存PROTOCOL_DL_T_698协议解析结果
    frame_result_t frame_results[2] = {UNKNOWN, UNKNOWN};

    has_content = uart2_rx_count > 2;
    while (has_content) {
        p_buf = Uart2_Rx;
        //检索0x5A开头的数据
        while (*p_buf != 0x5A && p_buf < Uart2_Rx + uart2_rx_count) {
            p_buf ++;
        }
        if (p_buf == Uart2_Rx + uart2_rx_count) {
            //检索当前包数据,都不包含,清空
            uart2_rx_count = 0;
            break;
        }
        //Uart2_Rx中剩余的数据长度
        temp_len = uart2_rx_count - (p_buf - Uart2_Rx);

        //以下处理不包含校验
       switch(protl_type)
            {
            case PROTOCOL_UNKNOWN:
                memset(frame_buf,0,sizeof(frame_buf));
                find_frame_re = UNKNOWN;
                frame_error = 0;
                frame_length = 0;

程序中 protl_type只看到定义了
protocol_type_t protl_type = PROTOCOL_UNKNOWN;/*协议类型UNKNOWN*/
并没有看到它的使用 那么它的值是怎么改变的?在哪里改变的?
回复

使用道具 举报

11

主题

79

回帖

649

积分

高级会员

Rank: 4

积分
649
发表于 2021-5-18 15:52:05 | 显示全部楼层
mmlyy2001 发表于 2021-5-13 16:40
问个问题
功能:协议数据解析*/
void ParseBuffer(void)

这只是开源了一个架构。赋值部分要应用者自己完成的,是为了跑用户自定义协议。
湖南迪弘科技有限公司
联系人:文彧15576128088
地址:迪文湖南科技园 5栋7楼
回复

使用道具 举报

25

主题

79

回帖

502

积分

高级会员

Rank: 4

积分
502
发表于 2021-10-27 14:44:24 | 显示全部楼层
神秘の宅叔 发表于 2020-2-11 14:36
可以参考《迪文 T5L ASIC应用开发指南.pdf》有详细的读写说明,那个函数就是用于读写DGUS变量地址的。 ...

好多警告   keil  4  打开

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

25

主题

79

回帖

502

积分

高级会员

Rank: 4

积分
502
发表于 2021-10-27 14:46:01 | 显示全部楼层
神秘の宅叔 发表于 2020-2-11 14:36
可以参考《迪文 T5L ASIC应用开发指南.pdf》有详细的读写说明,那个函数就是用于读写DGUS变量地址的。 ...

好多警告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

1223

回帖

4982

积分

论坛元老

Rank: 8Rank: 8

积分
4982
发表于 2021-10-27 14:49:09 | 显示全部楼层

不报错就可以的
回复

使用道具 举报

25

主题

79

回帖

502

积分

高级会员

Rank: 4

积分
502
发表于 2021-10-27 15:01:04 | 显示全部楼层

修改这两个地方后 警告消失,但是还有一个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

1223

回帖

4982

积分

论坛元老

Rank: 8Rank: 8

积分
4982
发表于 2021-10-27 15:13:27 | 显示全部楼层
本帖最后由 integer_32 于 2021-10-27 15:31 编辑
windyxin872 发表于 2021-10-27 15:01
修改这两个地方后 警告消失,但是还有一个

我编译了一下1楼的文件好像没有这个警告, 您贴的图片中的警告应该是重定义NULL宏,应该不是太要紧, 注释掉那行 或者改个宏名称 看看 。
回复

使用道具 举报

2

主题

33

回帖

109

积分

注册会员

Rank: 2

积分
109
发表于 2022-1-5 14:11:31 | 显示全部楼层
里面没有82,83的解析代码啊??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-4-24 19:35 , Processed in 0.086950 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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