STC8H8K64U使用串口2DMA接受发送和查询模式的ADC3程序无法正常运行 | 已解决
RT主频44.2368 波特率460800
使用USBCDC作为调试输出,单独配置串口2DMA可以使用,单独使用查询模式的AD也可以使用,但是两个合到一起就不能使用了
串口2DMA使用样例代码,ADC使用的是STC-ISP给出的例程
这几行代码看不出问题,需要提供完整的程序才能分析原因。 乘风飞扬 发表于 2024-3-11 09:08
这几行代码看不出问题,需要提供完整的程序才能分析原因。
我改了一下,补上代码了,麻烦大佬看看 woodzn 发表于 2024-3-11 09:48
我改了一下,补上代码了,麻烦大佬看看
能说一下具体的测试步骤跟产生的问题吗?不能使用是指出现什么情况?
有个地方需要注意以下,扩展寄存器访问使能,在初始化时开启,之后就不要再关闭了。
用 仿真 来排查 程序错在哪吧
仿真 STC8 系列 MCU,用 STC-USB Link1D 全自动仿真/脱机下载 工具 ! 有视频讲解 - 仿真/编译器/头文件 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
乘风飞扬 发表于 2024-3-11 11:24
能说一下具体的测试步骤跟产生的问题吗?不能使用是指出现什么情况?
有个地方需要注意以下,扩展寄存器 ...
主要就是串口2DMA和ADC查询模式不能一起用,甚至,就是不能在同一个固件里面启用他们两个。比如,我初始化的ADC,但是我不用,我还是用串口DMA的例程代码,这个时候给串口2发消息就不会回复。初始化串口2DMA,不用串口2DMA的功能,我用CDC输出查询的ADC值,这个时候我连接CDC也没有消息发出来。我想知道我应该如何修改才能实现同时使用串口2DMA和ADC查询或者ADC DMA。(另外这里注释掉的原因是,在主函数已经开启扩展了) 本帖最后由 乘风飞扬 于 2024-3-11 17:18 编辑
woodzn 发表于 2024-3-11 14:52
主要就是串口2DMA和ADC查询模式不能一起用,甚至,就是不能在同一个固件里面启用他们两个。比如,我初始 ...截图程序是我修改过的,你的原始代码里面是这么写的:
P_SW2 |= 0x80;
// ADCTIM = 0x3f; //设置ADC内部时序
P_SW2 &= 0x7f;另外,如果初始化USB之后,其它的初始化程序里面有修改到IE2寄存器的话,在全部初始化完成之前需要重新使能USB中断,如图所示:
乘风飞扬 发表于 2024-3-11 11:24
能说一下具体的测试步骤跟产生的问题吗?不能使用是指出现什么情况?
有个地方需要注意以下,扩展寄存器 ...
抱歉,刚刚看错了,现在问题解决了,多谢大佬了{:lol:} 乘风飞扬 发表于 2024-3-11 17:14
截图程序是我修改过的,你的原始代码里面是这么写的:
另外,如果初始化USB之后,其它的初始化程序里面有修 ...
好的,多谢大佬指点
页:
[1]