S3C44B0的端口組件及应用
多功能GPIO的配置方法:
1、端口配置寄存器PCONA~PCONG决定A~G端口的功能
2、端口数据寄存器PDATA~PDATG端口A~G的数据,可输入输出
3、上拉电阻寄存器PUPC~PUPG决定C~G端口是否内部上拉
4、特殊上拉电阻寄存器
SPUPR决定数据总线是否上拉
S3C44B0的UART开发应用
对于S3C44B0,已知MCLK=60MHz,阅读程序回答问题:
ARM汇编语言如下,试说明完成的功能。
LDR R0,=rPCONA
LDR R1,=0x3FF
STR R1,[R0] ;A口功能2
LDR R0,=rPCONB
LDR R1,=0x7FF
STR R1,[R0] ;B口功能2
LDR R0,=rPCOND
MOV R1,=0x0055
STR R1,[R0] ;D口中GPD7~GPD4输入,GPD3~GPD0输出
LDR R0,=rPCONF
LDR R1,=0x120000
STR R1,[R0] ;GPF6,7为UART1RXD和TXD,其余GPF为输出
LDR R0,=rPCONG
MOV R1,#0xFFFF
STR R1,[R0] ;F口为外部中断
解答:具体功能见注释!
S3C44B0的UART組件及开发應用
常用UART寄存器
1、UART线路控制寄存器ULCON0和ULCON1
决定字符格式(数据位数、停止位、奇偶校验位,红外和正常模式)
2、UART控制寄存器UCON0和UCON1
决定中断类型、发送和接收触发方式、接收和发送中断允许等)
3、UART发送接收状态寄存器UTRSTAT0和UTRSTAT1反映接收和发送状态
4、 UART发送接收数据寄存器UTXH0和UTXH1保持发送和接收的数据
5、UART波特率发生器决定通信波特率
UBRDIVn =INT(MCLK/(波特率×16)+0.5)-1
S3C44B0的UART开发应用
利用S3C44B0进行串行通信,已知MCLK=60MHz,阅读程序回答问题:
LDR R0,=rPCONE
ORR R1,R0,#0x28 00 10 10 00
STR R1,[R0];写PCONE使GPE1GPE2为TXD0和RXD0用于串行通信功能
LDR R0,rUFCON0
MOV R1,#0
STR R1,[R0] ;UFCON0=0禁止FIFO
LDR R0,rULCON0
ORR R1,#0x23 ;00100011
STR R1,[R0] ;字符格式为:8位数据,1位停止位,奇校验
LDR R0,=rUCON0
ORR R1,R0,#0xC1
STR R1,[R0] ;写UART0控制寄存器使允许接收中断正常接收发送
LDR R0,=rUBRDIV0
LDR R1,=325
STR R1,[R0] ;设定波特率为11520BPS
1、说明本程序完成的功能
2、串行通信波特率是多少?
3、对程序进行注释
解答:1、本程序段完成的是对UART0进行初始化,使用GPE1和GPE2用于UART0的TXD0和RXD0进行串行通信,通信字符格式为8位数据,1位停止位,奇校验,禁止FIFO,允许接收中断,正常接收和发送。
2、串行通信波特率根据UBRDIV0=[MCLK/(波特率×16)-0.5]怪整数
所以:波特率=MCLK/((UBRDIV0+0.5)*16)=60000000/(325.5*16)=11520bps
3、注释如上。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |