找回密码
 立即注册
查看: 2877|回复: 10

DMA-ADC采样数据自动存储

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-04-27 09:44:17

25

主题

252

回帖

2089

积分

超级版主

积分
2089
发表于 2023-3-23 13:23:36 | 显示全部楼层 |阅读模式
本帖最后由 芯LYS 于 2023-8-28 15:39 编辑

STC32G-DEMO-CODE-V9.6-20230815.zip (28.1 MB, 下载次数: 228) DMA-ADC采样数据自动存储   有现成的 范例参考程序  下载地址:https://www.stcai.com/filedownload/618387

STC8H8K64U-DEMO-CODE-V9.6-20230815.zip (33.25 MB, 下载次数: 222)


申样来电0513-55012928.png


QQ:3398500488
微信号:18106296592(小刘)
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-24 11:40:18

8

主题

25

回帖

516

积分

高级会员

积分
516
发表于 2023-8-26 23:37:19 | 显示全部楼层
本帖最后由 菜鸟大神 于 2023-8-26 23:45 编辑

例程跑起来没问题,实际移植到程序里面,一开DMA就重启
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-8-27 10:47:53 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-24 11:40:18

8

主题

25

回帖

516

积分

高级会员

积分
516
发表于 2023-8-28 20:13:10 | 显示全部楼层
本帖最后由 菜鸟大神 于 2023-8-28 22:03 编辑
神*** 发表于 2023-8-27 10:47
所以仿真的重要性就出来来,用仿真认真观察

编译器/仿真器/ISP下载/做自己的ISP - 国芯论坛-STC全球32位80 ...

重启的问题找到了 例程里面中断用了13号 ,实际测试的时候没有做汇编跳转,
现在不会重启了,
但是一旦打开其他中断 比如USB中断 或者PWM中断 就会直接重启
不打开其他中断 DMA正常运转 并且得到ADC数据
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:263
  • 最近打卡:2025-04-03 13:38:29

10

主题

52

回帖

1354

积分

金牌会员

积分
1354
发表于 2023-9-5 18:32:33 | 显示全部楼层
本帖最后由 清风迎明月 于 2023-9-7 08:08 编辑

STC8H8K64U的ADC2通道不是P5.4吗?
P1.2没必要设高阻
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:263
  • 最近打卡:2025-04-03 13:38:29

10

主题

52

回帖

1354

积分

金牌会员

积分
1354
发表于 2023-9-6 18:26:18 | 显示全部楼层
本帖最后由 清风迎明月 于 2023-9-6 18:55 编辑

详细读了一下STC8H8K64U的DMA-ADC程序,觉得有问题。
void UartPutc(unsigned char dat)
{
        S2BUF=dat;
while((S2CON & 2) == 0);
        S2CON &= ~2:                        //Clear Tx flag
}

char putchar(char c)
{
        UartPutc(c);
        return c;
}
这段程序虽然编写在里面了,但是并没有使用。没跑程序,不知道能否出结果
还有ADC2不是在P5.4管脚吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-9-7 09:56:25 | 显示全部楼层
清风*** 发表于 2023-9-6 18:26
详细读了一下STC8H8K64U的DMA-ADC程序,觉得有问题。
void UartPutc(unsigned char dat)
{

这两个函数是重写"putchar",当需要使用"printf"函数进行打印时,重写"putchar"函数才能改变输出接口。

这两个函数的作用是将"printf"函数打印内容通过串口2进行输出。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-9-7 10:03:54 | 显示全部楼层
清风*** 发表于 2023-9-5 18:32
STC8H8K64U的ADC2通道不是P5.4吗?
P1.2没必要设高阻

STC8H8K64U的ADC2通道是P5.4,例程也没有设置P1.2为高阻啊

  1. P1M1 = 0xfb;   P1M0 = 0x00;   //设置要做ADC的IO做高阻输入
  2. P5M1 = 0x1c;   P5M0 = 0x0c;   //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V),设置P5.4为高阻输入
复制代码
P1M1 = 0xfb -> 1111 1011b

P1M0 = 0x00 -> 0000 0000b

P1.2是准双向模式。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:263
  • 最近打卡:2025-04-03 13:38:29

10

主题

52

回帖

1354

积分

金牌会员

积分
1354
发表于 2023-9-7 10:23:23 | 显示全部楼层
乘风*** 发表于 2023-9-7 09:56
这两个函数是重写"putchar",当需要使用"printf"函数进行打印时,重写"putchar"函数才能改变输出接口。

...

感谢,学习到了。
因为printf默认是串口1,此例中用了串口2,所以要重写
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:263
  • 最近打卡:2025-04-03 13:38:29

10

主题

52

回帖

1354

积分

金牌会员

积分
1354
发表于 2023-9-7 10:33:04 | 显示全部楼层
清风*** 发表于 2023-9-6 18:26
详细读了一下STC8H8K64U的DMA-ADC程序,觉得有问题。
void UartPutc(unsigned char dat)
{

我也再读时发现了。万分感谢
顺便在请教一下,此程序中
u16                Get_ADC12bitResult(u8 channel);
void        ADC_convert(u8 chn);        //chn=0~7对应P1.0~P1.7, chn=8~14对应P0.0~P0.6, chn=15对应BandGap电压

这两个定义有用吗?
还有如果再有1个中断号大于31的时,程序是不是不好处理了?
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 07:06 , Processed in 0.132632 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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