找回密码
 立即注册
查看: 133|回复: 8

STC8H8K64U使用串口2DMA接受发送和查询模式的ADC3程序无法正常运行 | 已解决

[复制链接]
  • TA的每日心情
    开心
    2024-3-29 16:24
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    12

    回帖

    90

    积分

    注册会员

    积分
    90
    发表于 2024-3-11 08:28:28 | 显示全部楼层 |阅读模式
    RT
    主频44.2368 波特率460800
    使用USBCDC作为调试输出,单独配置串口2DMA可以使用,单独使用查询模式的AD也可以使用,但是两个合到一起就不能使用了
    串口2DMA使用样例代码,ADC使用的是STC-ISP给出的例程



    主程序

    主程序

    串口2使用DMA中断模式与电脑收发测试.zip

    346.79 KB, 下载次数: 6

    全部代码

    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:54
  • 签到天数: 126 天

    [LV.7]常住居民III

    26

    主题

    1276

    回帖

    3971

    积分

    论坛元老

    积分
    3971
    发表于 2024-3-11 09:08:27 | 显示全部楼层
    这几行代码看不出问题,需要提供完整的程序才能分析原因。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-29 16:24
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    12

    回帖

    90

    积分

    注册会员

    积分
    90
     楼主| 发表于 2024-3-11 09:48:00 | 显示全部楼层
    乘风飞扬 发表于 2024-3-11 09:08
    这几行代码看不出问题,需要提供完整的程序才能分析原因。

    我改了一下,补上代码了,麻烦大佬看看
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:54
  • 签到天数: 126 天

    [LV.7]常住居民III

    26

    主题

    1276

    回帖

    3971

    积分

    论坛元老

    积分
    3971
    发表于 2024-3-11 11:24:55 | 显示全部楼层
    woodzn 发表于 2024-3-11 09:48
    我改了一下,补上代码了,麻烦大佬看看

    能说一下具体的测试步骤跟产生的问题吗?不能使用是指出现什么情况?
    有个地方需要注意以下,扩展寄存器访问使能,在初始化时开启,之后就不要再关闭了。

    截图202403111123433175.jpg


    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9234

    回帖

    1万

    积分

    管理员

    积分
    13942
    发表于 2024-3-11 12:47:22 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-29 16:24
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    12

    回帖

    90

    积分

    注册会员

    积分
    90
     楼主| 发表于 2024-3-11 14:52:17 | 显示全部楼层
    乘风飞扬 发表于 2024-3-11 11:24
    能说一下具体的测试步骤跟产生的问题吗?不能使用是指出现什么情况?
    有个地方需要注意以下,扩展寄存器 ...

    主要就是串口2DMA和ADC查询模式不能一起用,甚至,就是不能在同一个固件里面启用他们两个。比如,我初始化的ADC,但是我不用,我还是用串口DMA的例程代码,这个时候给串口2发消息就不会回复。初始化串口2DMA,不用串口2DMA的功能,我用CDC输出查询的ADC值,这个时候我连接CDC也没有消息发出来。我想知道我应该如何修改才能实现同时使用串口2DMA和ADC查询或者ADC DMA。(另外这里注释掉的原因是,在主函数已经开启扩展了)
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:54
  • 签到天数: 126 天

    [LV.7]常住居民III

    26

    主题

    1276

    回帖

    3971

    积分

    论坛元老

    积分
    3971
    发表于 2024-3-11 17:14:36 | 显示全部楼层
    本帖最后由 乘风飞扬 于 2024-3-11 17:18 编辑
    woodzn 发表于 2024-3-11 14:52
    主要就是串口2DMA和ADC查询模式不能一起用,甚至,就是不能在同一个固件里面启用他们两个。比如,我初始 ...
    截图程序是我修改过的,你的原始代码里面是这么写的:
    1.     P_SW2 |= 0x80;
    2.     // ADCTIM = 0x3f;                              //设置ADC内部时序
    3.     P_SW2 &= 0x7f;
    复制代码
    另外,如果初始化USB之后,其它的初始化程序里面有修改到IE2寄存器的话,在全部初始化完成之前需要重新使能USB中断,如图所示:
    截图202403111717519294.jpg

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-29 16:24
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    12

    回帖

    90

    积分

    注册会员

    积分
    90
     楼主| 发表于 2024-3-11 17:20:48 | 显示全部楼层
    乘风飞扬 发表于 2024-3-11 11:24
    能说一下具体的测试步骤跟产生的问题吗?不能使用是指出现什么情况?
    有个地方需要注意以下,扩展寄存器 ...

    抱歉,刚刚看错了,现在问题解决了,多谢大佬了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-29 16:24
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    2

    主题

    12

    回帖

    90

    积分

    注册会员

    积分
    90
     楼主| 发表于 2024-3-11 17:51:23 | 显示全部楼层
    乘风飞扬 发表于 2024-3-11 17:14
    截图程序是我修改过的,你的原始代码里面是这么写的:
    另外,如果初始化USB之后,其它的初始化程序里面有修 ...

    好的,多谢大佬指点
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-29 08:46 , Processed in 0.068830 second(s), 63 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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