文件名称:
APT32F003触摸按键32位MCU,引脚兼容STM8S003,大存储器2KB RAM,36KB Flash-AN1601 TouchSensorLayoutGuideV1.1.pdf
开发工具:
文件大小: 682kb
下载次数: 0
上传时间: 2019-09-03
详细说明:APT32F003触摸按键32位MCU,引脚兼容STM8S003,大存储器2KB RAM,36KB Flash-AN1601 TouchSensorLayoutGuideV1.1.pdfAPPN1503
一、GPIO库函数使用详解
1.1.I0输入输出配置函数
1.1.1PA00输入配置
GPIO Init(GPIOA0, 0,0;
1.1.2PA0.0输出配置
GPIO Init(GPIOA0, 0, 1)
1.2.10输出高电平或低电平配置
1.21PAOO输出高电平
GPIO Sct Valuc(GPIOA0,O, 1)
1.2.1PA00输出低电平
PIO Set value(GPIOA0,0, 0)
1.3.I0上拉或下拉配置
1.3.1PA0.0能上拉
GPIO PullHigh IniL(GPIOA0,0
13.2PA0.0使能下拉
GPIO Pulll ow Init(GPIOA0, 0);
13.3PA00上拉下拉禁止
GPIO PullHighLow DIs(GPloA0,0)
1.4.I0漏极开路输出禁止或使能
1.4.1.PA00漏极开路使能
GPIO Open Drain EN(GPIOA0,0)
1.4.2.PA0.1漏极开路禁止
GPIO Open Drain DIS(GPIOAO,O)
1.5. lligh sink输出使能或禁止
1.5.1.PA08 High sink输出使能
GPIO DriveStrength EN(GPIOA0, 8):
1.52PAO.8 Iligh sink输出禁止
GPIO DriveStrength DIS (GPIOAO, 8
1.6.使能外部中断和唤醒忾置
1.6.1.使能PA0.0外部上升沿或下降沿屮断唤陧。
GPIO Int(roup_Set(PA0);∥选择 GPIO groupA,另外可以选择PB0PCO,只能选择种·组,不能同时选择
iPOA0 EXI In(EX10;PA00作为输入外部中断口EXI0
EXTI trigger CMD( ENABLE EXI PIN0,EXIT):仗宦EX10下降沿中断
EXTI trigger CMD( ENABLEEXI PINO,EXRT);∥使能FXI0上升沿中断
EXTI interrupt CMD( ENABLE, EXI PNO);∥使能EXI0外部屮断
PIO EXTI interrupt( GPIOA0,0b000000000能PA0.0外部中断使能
EX0 Int Enable(;∥/使能EXI0中断向量
EX0 WakeUp enable):∥仗能EXI0中断唤醒
3/15
AP CHIP
APPN1503
16.2.外部中断向量对应外部中断口如
EXIO INT= EXIO
EXII INT- EXIL
EXI NT=EXI2-EXI3
EXI3 INT=EXIA-EXI8
EXI4 NT=EXI9-EXII3
7.GPIO输入输出禁止
1.7.1. GPIOA0输入输出禁止
GPIO InPutOutPut Disable(GPIoA0, 0)
4/15
APPN1503
COUNTA库函数使用详解
2.1. COUNTA1ms定时配置初始化, Counter H-2000,ysck2Mhn
计算公式= Counter h(1/ sysclock
OUNT Delnito)
COUNTA Init(20000,0, Pcriod H, DIVI, REPEAT MODE, CARRIER ON,OSP LO W)
/INT COUNT=20000*(1/20Mhz)
COUNTA Config(SW STROBE, PENDREM OFF, MATCHREM OFF, REMSTAT 0, ENVELOPE 0)
COUNTA Starl(
COUNTA Int EnableD
2.2.配置PAO.07为Buzz(可以调制高电平和低电平脉宽)
COUNT Delnito)
COUNTA O_Init(O)
COUNTA Init(10000, 10000, Period H L, DIVI, REPEAT MODE, CARRIER ON, OSP LOW);
/i Output H=10000(1/20Mhz)=500us
Output L=10000(1/20Mhz)=500u
COUNTA Config( SW STROBE, PENDREM OFF, MATCHREM OFF, REMSTAT 0, ENVELOPE 0)
COUNTA Start
COUNTA Int Enable(;
若在程序RUN状态需要修改富电平-250ns,低申平-250us脉宽时,需条用下面函数
COUNTA Dalia Update(5000, 5000)
5/15
APPN1503
、ADC库函数使用详解
3.1.初始化,配置 ADCIN2为采样通道,单次采样模式,3个采样周期,12 bit adc,ADC
采用时钟2分频
ADC12 RESET VALUEO:
ADCI2 CLK CMD(ADC CLK CR, ENABLE;使能ADC时钟
ADCI2 Software Reset;/软件复位
ADC12 Configure Mode(ADC 12 12BIT, ADC12 3CYCLES, One shot mode, 2, 1);
∥12 bit adc,采周期3个,单次采样模式,adc时钟2div,采样1个通道
ADCI2 Convcrsion Channel Config(ADC12 ADCIN2, 1)
设置A冂CIN2为第一个采样通道
ADCI2CMD( ENABLE;∥使能ADC
ADCl2 ready waito;等待ADC转换完成
3.2.ADC初始化亢成后,实现多通道切换配置。采样 ADCIN2, ADCIN3。
采样ADCN2通道
ADC>CMR[OADC>CMR[0]0xf,∥ADC切换到放电通道
ADC12 Control(ADCI2 START
ADC12 EOC: wail(
whilel(ADC->DR!=0);∥放电是否完成
ADCl2 Conversion Channel Conlig(ADCI2 ADCIN2,1);/选择 ADCIN2通道
ADC12 Control(ADC I2 START
ADC12 FOC wait(;
adc dr=ADCI2 DATA OUPUT(;/出ADC采值
采样ADCN3通道
ADC-XCMR0=ADC>CMR[0]0xf,∥ADC切换到放比通道
ADC12 Control(ADC12 START)
ADC12 EOC wail
whilel(ADC-DR!=0);/放电是否完成
ADC12 Conversion Channel Config(ADC2ADCI2,1);∥选择ADCI3通道
ADC12 Control(ADC12 START
ADC 12 EOC wail
adc dr=ADC12 DATA OUPUT(;/出ADC采样值
6/15
APPN1503
四、UART库函数使用详解
4.1.初始化配置UART1PB0.1(RXD1),PB0.0(TXD1)为UART口,
Sysclock-20Miz
baudrate=sysclock/174=115200
UART Delnito
UART IO Init(IO UARTI, 1)
UARTIniIRxTxIntEn(UARTI, 174); //baudrate=sysclock/174=115200
UARTI Int enabl(;UART1屮断使能
UARTI WakeUp Enable(:/ Bart!中断唤醒
4.2.UART发送
尽量使用 UART TX FULL标志位判断
UARTTransmit( UARTI, SendBuf,3);∥ SendBu卬为发送数组缓存,3表示发送字节数
4.3UART接收
if((CSP UART_ GET_ ISR(UART1)& UART_RX_ INT_ S)==UART_ RX_INT_ 5
CSP UART_ SET_ ISR(UART1, UART_ RX_ INT_ S
RxDataFlag= TRUE
ART1接收
UART ReturnRxByte(UART1):
7/15
APPN1503
五、GTCx库函数使用详解
5.1.外部晶振32.768K做GTC时钟
丶面为外部晶振32.768K做GTC0时钟,定时60s,运用于定时范例
●外部晶振32.768K使能配置
(volatile unsigned int )(0x40012200)=0X5AA50040
SYSCON->OSTR=OX7D
SYSCON General CMD(ENABLE, ENDIS EMOSC)
●配置PAO.0作为CL0输出
GPIOAO->CONLR=(GPIOAO->CONLR&OXFFFFFFFO)0X00000007
SYSCON->IMFT=0X000301FF
配置GTCO,中断片期为60s
计算公式: GTCO PEND=24576*(21*(9+1)/(32768k/4)=60s
GTC RESET VALUE(GTCO)
GTCo IO Init(GTC IO TCLK0, 0):
GTC Configure(GTCO, GTC FIN TCLKO,I, 9, Counter Sizc 16BIT, 24576, 1);
GTC ConlrulSet Cunligure(GTCO, GTC ControlSet REPEAT,ENABLE)
GTC ConfigInterrupt CMDIGTCO, GTC PENDI, ENABLE):
GTC Start(GTCO);
GTCO Int Enabled
GtCo Wakeup Enable(;
●将CL0与TCLK0短接
5.2.GTC输出PwM波形:
下面为GTC1做PWM功能,输出口为PA0.09,开始输出波形为高电平,duty-50us,
period=100us,运用范例如下
GTC RESET VALUE(GTCI)
GTCl IO Init(GTC IO TXOUT, 0)
GTC Cunligure(GTCl, GTC FIN PCK, 1, 9, Counter Size 16BIT: 100, 50)
ZTCCLK-=20Mhz/21/10. 20m-->lus
GTC ControlSet Configure(TCl, GTC ControlSet REPEAt, ENABLE);∥循环计数使危
GTC ControlSct Configure(TCl, GTC Controlsct PWMeN, ENABLE);∥PWM功能使能
GTC ControlSet Configure(GiTC, ITC ControlSet OUTSTENABLF);开始厂输出高电平
GTC Starte(GTC1);∥开始
5.3.GTC捕提功能
下面为GTC2做捕捉功能,捕捉输入口PA0.08,TCIK=0.5us,捕提高电平时间
R Capture buf3*TCLK,捕捉低电平时间= R Capture bul2*TCLK,运用范例如卜
初始化
GTC RESET VALUE(GTC2)
GTC2 Io Init( GTC IO TCAPX。0);捕捉输入口选择PA0.08
GTC Configure(GTC2, GTC Fin PCK, 0, 2, Counter Sizc 16BIT,0, 0; /TCLK=0.5us
8/15
AP CHIP
APPN1503
GTC ControlSet Configure(GTC2, GTC ControlSet STOPCLEAR, ENABLE)∥使能计数器停止后清除计数器
GTC_ Contro ISet Configure(GTC2,GTC_ Controlset CNtmenable)∥使能连续计数模式,计数到最大值
GTC ControlSet Configure(GTC2, GT ControlSet REPEAtENable):∥使能循环计数
GTC ControlSet Configure(GTC2, GTC ControlSet CAPT F,ENABLE);使能下降沿捕捉
GTC_ ControlSet Configure(GTC2, GTC ControlSet CAPT TCAp2 ENABLE:∥能捕捉凵2
GTC Conliglnterrupt CMD(GTC2, GTC CAPTI ENABLE),使能捐捉中断
GTC Start(GTC2);/开始
GTC2 Int Enabled;/使能GTC2中断向量
●捕捉程序
else if((GTC2-NISRRGTC_ CAPTE)M=GTC CAPTI)
//Capture interrupt
aTc2>IcR· GTC CAPT
GTC2 CAPTIFlag-l;
捕捉程序放在GTC2捕捉中断中
if(It GTc CaptTrigg)
f GTC CaptTrigg-li
R Capture bufI=GTC CaptureDown Count value (GTC2):
//R Capture buf1 Feriod time
GTC ControlSet Configure(GTC2, GTC ControlSet CAPT R, ENABLE);
//capture down enable
GTC ControlSet Configure(GTC2, GTC ControlSet CAPT F, DISABLE):
GTC StoP(GT2);
6 re start(GTC2》
//请涂计数器
else
R_Capture_ butzaGTC_Captureup_Count_value/GTC2):
//R Capture but Low level time
GTC_Controlset_Configur(GTC2, GTC_ControlSetCAPT_R, DISABLE
//capture down enable
GTC_Controlset_Configure(GTC2, GTC-Cortrolset_CAPT F, ENABLE);
R Capture buf3-R Capture buf 1-8 Capture buf2
eise
R Capture buf3-R Capture buf2-R Capture buf1
9/15
APPN1503
六、I2C库函数使用详解
6.1.主机
6.1.1.I2C做主机初始化,通讯脚PA0.2(SDA),PAO.1
(SCL),I2 DL -OX20,I2CPRV-0X40,通讯速度-20M/(0X40+4)-290K,
当I2C_PRV>125时,选择 FAST MODE,反之选择 STANDARD MODE
12C Delnit(
12C Master Init(I2C Gl, FAST MODE, 0x040, 0x20)
6.1.2.单字节写。向器件地址为0x56,数据地址0x01中写0xa:
apt32003i2ch”文档中定义I2 c Address(0x56)∥7bit
I2C Write Byte(0X01, Xaa)
6.1.3.多宇节写。向器件地址为0x56,数据地址0x01中写0xa,0xab,0xac:
pt32003_2ch”文档屮定义D2 c Address( i0x56)/7bit
Ug T data[3 ]=(Oxaa, Oxab, Xac,
12C Write More Byte(0xOl, data, 3)
6.2.从机
6.2.1.I2C做从机初始化,通讯脚PA0.2(SDA),PA0.1(SCL),
从机地址选择为0X56(7bit),读(0XAC),写(0XAD),
I2CDL=0X20,I2CPRV=0X40,通讯速度=20M/(0X4A+4)=250K
当I2C_PRV>125时,选择 FAST MODE,反之选择 STANDARD MODE
12C DelnitO
12C Slave Init(12C G2, FAST MODE, 0X4A, 0X20,OXAC)
12C Int Enable(
6.2.2.写寄存器为I2 CWrBuffer[ BUFSIZE], BUFS IZ配置可以在
pt32r003i2c.h”文档中定义。 BUFSLZE表示主机读寄存器地址
6.2.3.读寄存器为I2 CRdBuffer[ BUFSIZE], BUFSIZE配置可以在
apt32r003i2c.h”文档中定义。 BUFS IZ表示主机写寄存器地址。
注意:I2C主机从机不能同时使用,在I2C中断中若使用主机中断,则从机程序需
要删除。
10/1
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.