Qt210uart学习笔记

Qt210uart学习笔记

1.学习串口思路

1.把相关引脚设为RXDTXD,2.设置查询或中断模式和时钟源3.设置数据位和校验位4.配置波特率5.接受和发送数据

2.看原理图知道串口与GPAO    寄存器有关

 

 

所以 设置对应GPIO用于UART0

       GPA0CON |= 0x22;

3.设置查询或中断模式和时钟源

* Receive Mode [1:0]:1 = 接收采用查询或者中断模式,* Transmit Mode[3:2]:1 = 发送采用查询或者中断模式,* bit[6]:1 = 产生错误中断,* bit[10]:0 = 时钟源为PCLK(这是PSYS Domain的)约66Mhz在下图可看出

 

UCON0 = (1<<6)|(1<<2)|(1<<0);

4.设置数据位和校验位

bit[1:0]:0x3 = 8位数据位, 1位停止位,无校验,正常模式

ULCON0 |= (0x3<<0);

5.配置波特率,相关寄存器有UBRDIV0UDIVSLOT0

DIV_VAL = (PCLK / (bps x 16)) −1可以计算出UBRDIV0

其中PCLK如下图得到

 

PCLK=667mhz/5/ 2

UBRDIV0=667Mhz/5/ 2/115200/16 -1(UBRDIV0等于整数部分35,小数部分0.187*16=2则查下表)

得出UDIVSLOT0=0x0808

#define GPA0CON  	(*(volatile unsigned int *)0xE0200000) 

#define ULCON0  	(*(volatile unsigned int *)0xE2900000) 
#define UCON0  		(*(volatile unsigned int *)0xE2900004) 
#define UTRSTAT0  	(*(volatile unsigned int *)0xE2900010)
#define UTXH0  		(*(volatile unsigned char *)0xE2900020) 
#define URXH0  		(*(volatile unsigned char *)0xE2900024) 
#define UBRDIV0 	(*(volatile unsigned int *)0xE2900028) 
#define UDIVSLOT0  	(*(volatile unsigned int *)0xE290002C)

void uart_init(void)
{
	/* 设置对应GPIO用于UART0 */
	GPA0CON |= 0x22;
			
	/* 设置UART0寄存器 */
	/* bit[1:0]:0x3 = 8位数据位
	 * 其他位默认,即1位停止位,无校验,正常模式
	 */
	ULCON0 |= (0x3<<0);
	/*
	 * Receive Mode [1:0]:1 = 接收采用查询或者中断模式
	 * Transmit Mode[3:2]:1 = 发送采用查询或者中断模式
	 * bit[6]:1 = 产生错误中断
	 * bit[10]:0 = 时钟源为PCLK
	 */
	UCON0 = (1<<6)|(1<<2)|(1<<0);
	/* 设置波特率(详细信息请参考手册或者学习日记)
	 * DIV_VAL = UBRDIVn + (num of 1's in UDIVSLOTn)/16
	 * DIV_VAL = (PCLK / (bps x 16)) - 1
	 */
	UBRDIV0 = 0x23;
	UDIVSLOT0 = 0x808;

	return;
}

char uart_getchar(void)
{
	char c;
	/* 查询状态寄存器,直到有有效数据 */
	while (!(UTRSTAT0 & (1<<0)));
	
	c = URXH0; /* 读取接收寄存器的值 */
		
	return c;
}

void uart_putchar(char c)
{
	/* 查询状态寄存器,直到发送缓存为空 */
	while (!(UTRSTAT0 & (1<<2)));
	
	UTXH0 = c; /* 写入发送寄存器 */
	
	return;
}


QQ:790706648  4M小水管

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习K210UART串口通信可以按照以下步骤进行: 1. 硬件准备:确保你已经正确连接了K210开发板上的UART串口。通常,UART串口有TX(发送)和RX(接收)两个引脚,分别与外部设备的对应引脚相连。 2. 学习UART串口通信基础知识:了解UART串口通信的原理、工作方式和常用的配置参数,如波特率、数据位、奇偶校验位和停止位等。 3. 掌握K210UART库或驱动:K210开发板通常会提供相应的UART库或驱动,用于在代码中实现对UART串口的控制和数据传输。学习如何初始化UART,配置相关参数以及发送和接收数据等功能。 4. 编写示例代码:尝试编写简单的示例代码,通过UART串口发送和接收数据。例如,可以编写一个程序,在K210开发板上发送一条消息,然后监听串口接收到的数据并进行处理。 5. 调试和测试:使用示例代码进行调试和测试。确保串口连接正确,并检查数据的传输是否正常。可以使用终端程序或串口调试助手等工具来验证数据的发送和接收。 6. 扩展应用:一旦掌握了基本的UART串口通信,可以尝试更复杂的应用场景,如与外部传感器、显示屏或其他设备进行数据交互。 通过以上步骤,你可以逐步学习和理解K210UART串口通信,掌握相关的开发技巧,并将其应用于实际项目中。记得查阅相关文档和参考资料,以便更好地理解和应用UART串口通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值