|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-8-16 10:00 编辑
, ]6 F' R4 Y) G
^0 V. T8 ]8 d: E0 t1、打开AiCube界面
7 j; X) Q3 g* y( [: R4 R( B& p: \打开最新的ISP v6.96版本的软件,点击菜单项“AiCube”打开AiCube界面
( H/ } V# @, l
, C A2 S: [4 ?9 G, k0 b6 O9 ~
22、创建项目
. \9 ]$ X% R7 V$ y. I( w点击AiCube界面中的新建项目按钮,选择“Ai8051U-32Bit”型号2 s2 Q' R; [( q) F
输入项目名称和项目路径,如下图,点击确定按钮进行项目设置
* C9 R: V+ ~+ ]3 m j/ T
$ d- x% C" t% P
5 ]& Z( q, x' Z, M n9 x" |
3、I/O口配置
5 v$ W$ E' C- V8 Z9 L4 j在AiCube的点击左侧的“图形化I/O口配置”,7 y3 ^0 ^6 `3 B9 s
在界面的右侧多PWM1端口进行配置$ x6 n. c- N4 ^ r: p6 z* A$ i' M1 Y+ v
/ V" I5 p) ]4 y
4、使能PWM模块
# m @+ s; @' t# m在AiCube的左侧外设列表中找到PWMA( H7 X3 m& E) x2 N
并勾选使能PWMA外设
5 i5 o& N& O4 H! f
5、PWMA模块设置, t5 N2 R) n- B: d
PWM模块工作模式选择“简单PWM输出”,
7 u) R H" w7 W4 b# u重载值设置为1999,即周期为2000(0~1999)/ u( F9 }8 v) i! I; j
. z( h/ d; @" i! R4 f打开PWMA的通道1,并使能PWM1P和PWM1N输出,使能互补输出
0 R- x6 x& E8 Z; ^3 I8 b+ {- j
# u( H* q! l. |3 B# I B. b" `# b6 ^使能PWMA模块的DMA功能3 ~" y1 Y/ g* ]) \- p3 x4 J
设置DMA事件源为PWMA的更新事件
& ?, P4 f8 v. e5 t! g设置DMA的基地址为0x0D(即PWMA_CCR1H,PWMA_CCR1L)( a2 w$ |; x$ p8 @# s# n
设置DMA的突发传输次数为1次
1 ~# Y {. `+ s$ C( }' X$ b+ {0 O: [6 m设置DMA的突发传输字节数为2字节! y2 A* x' c, z: k1 ~
设置DMA总传输次数为100
- T2 f7 `: j+ x0 I% a" ^3 x使能PWMA的DMA中断
' K. _: e( W: n* ~$ P, J2 |
) A9 G' c( |) ^0 W) e
6、创建Keil项目8 Q. m4 R4 \/ H- V/ R& s
点击创建项目按钮,开始创建Keil项目. B0 x5 O/ w% A& {1 D. m3 U
3 ~; m% O1 O0 r* ^7 G: \% Y7、添加正弦表. Y% Q( e5 |4 w2 ^, }! y. r
打开下载软件主界面中的“工具”->“正弦数据表生成器”; e' x# b: S, v3 E
$ p& w, k' s" J+ @在工具中进行如下设置,产生正弦表( ^5 ?- T" o3 k) ?# g
4 `) _' U9 A# X* m2 d0 Y将上面的表格数据复制到项目的pwm.c文件中
1 x. @& a2 Z2 e. X, j) `0 ?( [! T8 F$ G! D+ {) K& N
8、修改代码,触发DMA
' ^8 d/ H7 p8 j输入如下代码,将正弦表数据复制到DMA缓冲区,并触发DMA发送
) ?3 }5 u S# k+ S将触发语句添加到DMA中断中,实现自动重复触发DMA+ i4 X! F; T" Y2 P7 P5 o( r
: ]2 w+ a% [$ Z* A; E6 K. c9、编译并下载HEX到Ai8051U目标芯片中
4 C3 p! q5 p3 [& d
" F6 o a' m7 h* c
( w( H( h; ^) O |
|