|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-8-16 10:00 编辑 B6 e% [1 L3 j5 F
# @( u# b; f7 |+ W+ l# v* o$ O" @
1、打开AiCube界面
" k' t6 @& Y( s9 q; ^6 [- p% a/ l% O7 `打开最新的ISP v6.96版本的软件,点击菜单项“AiCube”打开AiCube界面6 \" O# h- h# x, T, d* n- r4 A
+ [$ |) u1 j; I$ m; ^7 ?" k
22、创建项目
& V, Y9 k9 ^3 V' @点击AiCube界面中的新建项目按钮,选择“Ai8051U-32Bit”型号
2 i8 R4 d- Q! a, {输入项目名称和项目路径,如下图,点击确定按钮进行项目设置; g s& e% U9 o0 ]. f
$ V+ \8 U0 Z* c4 O$ \7 b7 q: j
3 O$ L4 r& F+ X; E. U
3、I/O口配置 T* v' \! A i; Y/ ]3 ?+ L
在AiCube的点击左侧的“图形化I/O口配置”,& Q0 X" _0 M9 f, Q3 Z& ?
在界面的右侧多PWM1端口进行配置
, w8 E E! U" v4 U f
( Q" W6 j$ K1 F) T+ [
4、使能PWM模块
7 {- t* H) N- _& {在AiCube的左侧外设列表中找到PWMA: w1 S' C2 H: W7 Y. U- Y% H) x
并勾选使能PWMA外设
( p& _( q+ ?" Z; T* [: W3 S
5、PWMA模块设置
0 I, I( e1 W6 e% @4 d+ u3 |8 lPWM模块工作模式选择“简单PWM输出”,
- ~$ }, l) N0 J' n3 O D重载值设置为1999,即周期为2000(0~1999)
1 J* b0 [, {% g" F2 F
2 a8 p5 D- R( X- p7 q
打开PWMA的通道1,并使能PWM1P和PWM1N输出,使能互补输出
; _3 f& C' D* z/ u
: E1 \$ L$ k1 e使能PWMA模块的DMA功能/ P3 C3 ~# Z$ Q, f3 E, T
设置DMA事件源为PWMA的更新事件
. J5 u' ]# |, G3 a% X8 c设置DMA的基地址为0x0D(即PWMA_CCR1H,PWMA_CCR1L)
& T" {1 w2 ?0 a) c+ Y设置DMA的突发传输次数为1次
. l& o! [/ G! M! z7 u- k6 @/ n设置DMA的突发传输字节数为2字节& m; G6 C5 U- |5 k, S$ t
设置DMA总传输次数为100& c+ x% A4 H) D1 ?' P4 k
使能PWMA的DMA中断7 L: A' ]7 L3 ^' v8 m0 T; ^. T p
! f9 x7 j2 I; z+ J, U- j6、创建Keil项目1 J& T) z" n# K
点击创建项目按钮,开始创建Keil项目
' A |# K6 C3 Z# P4 i
, r- ^0 ]9 ~' V3 W& l
7、添加正弦表
! Q% \' o. Q- P3 j J+ Q打开下载软件主界面中的“工具”->“正弦数据表生成器”
( T/ Y' _' _! v3 X4 ]2 Z+ ?. @
8 H2 F/ y0 S! j- t9 y% j
在工具中进行如下设置,产生正弦表
4 `2 F+ ~, x( u: m4 T$ a
, A7 p `- R# J' Y% c将上面的表格数据复制到项目的pwm.c文件中
: A0 Z- I+ z8 R, m$ y2 i
" T4 w3 C/ i& P* `+ [: W% W# s8、修改代码,触发DMA4 ?6 A6 |7 j% S; J0 Q. i o
输入如下代码,将正弦表数据复制到DMA缓冲区,并触发DMA发送
: \- K$ [5 S n1 {3 G, ]
将触发语句添加到DMA中断中,实现自动重复触发DMA
) k" u) i$ Z, V! o2 p4 l
& T; g/ C( H4 s( X0 z* N; ]3 R o
9、编译并下载HEX到Ai8051U目标芯片中% T. ~3 A; ?" X" a
: N7 L9 _4 U4 s6 e
# L" [, O7 y. ?: H6 u |
|