基于S5PV210的串口通信的实战

基于S5PV210的串口通信的实战

      ---参考朱有鹏ARM裸机课程

1、串口的程序的流程的分析过程

整个串口通信相关的程序包括2个部分:uart_init负责初始化串口

uart_putc负责发送一个字节的数据。

整个过程中我们需要编写的函数有三个函数:

(1)串口的初始化函数

uart_init();      //为什么我们需要编写这样的一个函数,因为每一个IO口基本都有引脚的复用的功能

(2)串口的发送程序,发送一个字节;

uart_putc(char x);

(3)串口的接收函数,轮询方式,接收一个字节。

char  uart_getc();


2、串口控制器初始化关键步奏:

(1)初始化串口的Tx和Rx引脚对应的GPIO(引脚是复用的引脚)

查原理图可知:

GPA0_0     Rx

GPA0_1     Tx


GPA0CON()         0xE0200000     位的0-3  = 0010, 同理可得:bit4-7为0010

 


2、初始化关键寄存器

UCON0   / ULCON0

UMCON0   UFCON0

UBRDIV0

UDIVSLOT0


ULCON0 = 0x03      //无校验位,8位数据位

UCON0   = 0x05      //发送和接收都是polling mode


UMCON0  =  0x0     //禁止modem、afc

UFCON0   =  0x0     //禁止FIFO模式


(2)UBRDIV0和UDIVSLOT0和波特率有关,要根据公式去计算。

我们运用了PCLK_MSYS的时钟信号,在上面的时钟系统已经配置过了。

主要是66.7MHZ


DIV_VAL = (PCLK/(bps * 16)) - 1

= 66700000/115200 /16 -1 = 35.18  ==35


UDIVSLOT  =  16 * 0.18 = 2.88 = 3

0x0888   


3、如何编写发送函数

我们的CPU的速度要远远的比我们串口的速度要快。

所以可能CPU已经发送了10个数据,串口还没有反应过来。

所以我们需要的是:

我们需要判断,在我们前一帧已经发送完成之后,CPU才发送数据过来。

所以这里就需要使用到我们发送是否为空的标志符,

如果发送缓冲区有数据的情况下面,我们就不再发送数据过去。


以下是uart的驱动程序:

void uart_init(void)
{
	//初始化Tx和Rx对应的IO口为串口的发送的方式,根据原理图来理解
	rGPA0CON &= ~(0xff << 0);      //把寄存器的bit0~7全部清零
	rGPA0CON |= 0x00000022;        //把Rx和T恤设置为UART的串口方式
	
	//设置几个关键寄存器的设置
	rULCON0 = 0x03;
	rUCON0  = 0x5;
	rUMCON0 = 0x0;             //模式控制的
	rUFCON0 = 0x0;             //设置为FIFO的模式
	
	
    //波特率的设置:
	//DIV_VAL = (PCLK / (bps * 16) - 1)
	//PCLK_PSYS用66MHZ算。    余数0.8
	rUBRDIV0 = 35;
	rUDIVSLOT0 = 0x0888;       //3个1,这是查到官方推荐表得到的这个数字。
		
}


//串口发送程序,发送一个字节:
void uart_putc(char c)
{
	//因为串口发送一个字节,其实就是把一个字节丢到发送缓冲区中去
	//因为串口控制器发送一个字节的速度远远的低于CPU的速度
	//所以CPU发送一个字节前必须确认串口控制器当前的缓冲区是不是空的
	//如果缓冲区非空则位为0,此时应该循环,直到位为1
	
	while(!(rUTRSTAT0 & (0x02)));
	rUTXH0 = c;
}


//串口接收程序,轮询方式,接收一个字节
char uart_getc(void)
{
	while(!(rUTRSTAT0 & (0x01)));
	return (rURXH0 & 0x0f);
}







































  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于S5PV210和QT的仓库管理系统,是一种利用S5PV210嵌入式处理器和QT开发框架实现的仓库管理软件。 仓库管理系统是为了提高仓库内存储和管理效率而开发的,可以对仓库内的物品进行入库、出库、库存管理等操作。基于S5PV210和QT的仓库管理系统具有以下特点: 首先,S5PV210嵌入式处理器具有较高的性能和稳定性,可以满足仓库管理系统的运行需求。它具有强大的计算能力和处理速度,可以快速响应用户的操作并实时更新仓库数据。 其次,QT是一种跨平台的GUI开发工具,可以在不同的操作系统上运行。它提供了丰富的UI组件和界面设计功能,使得仓库管理系统可以具有友好的用户界面和良好的用户体验,方便用户进行操作。 基于S5PV210和QT的仓库管理系统可以实现仓库内物品的全面管理。通过系统,管理员可以对仓库内的物品进行分类、标识和管理,并实时监控物品的流动情况和库存数量。同时,系统还可以生成各种报表和统计数据,帮助管理员进行仓库的优化和调整。 此外,基于S5PV210和QT的仓库管理系统还具有可扩展性和适应性。由于S5PV210嵌入式处理器具有较高的兼容性和可扩展性,可以与其他硬件设备和传感器进行连接,实现更多功能的拓展。同时,QT开发框架也提供了丰富的开发工具和接口,可以方便地进行二次开发和定制,满足不同仓库管理需求的个性化要求。 综上所述,基于S5PV210和QT的仓库管理系统是一种高性能、稳定可靠、具有良好用户体验和可拓展性的仓库管理软件。通过系统的使用,可以提高仓库管理的效率和准确性,满足不同规模和行业的仓库管理需求。 ### 回答2: 基于S5PV210和Qt的仓库管理系统是一种应用于仓库管理领域的软件系统。S5PV210是一款高性能的嵌入式处理器芯片,适用于移动设备和嵌入式应用。Qt是一种跨平台的应用程序开发框架,提供了丰富的图形界面组件和功能库。 基于S5PV210和Qt的仓库管理系统可以实现以下功能: 1. 库存管理:通过系统记录每个仓库中的货物数量和位置,实时更新库存情况。可以对货物进行分类、管理和查询,便于快速找到需要的货物。 2. 入库和出库管理:系统可以记录每次货物的入库和出库操作,并生成相应的入库和出库单据。可以通过扫描二维码或条形码快速进行入库和出库操作,提高操作效率。 3. 订单管理:可以管理和追踪来自客户的订单,包括订单的发货、签收和退货。系统可以生成订单的状态报告和相关统计数据,帮助仓库管理人员提升工作效率。 4. 智能报警系统:系统可以设定库存的最低和最高阈值,当库存数量超过或低于设定值时,系统会自动发送报警信息,提醒仓库管理人员做出相应的调整和采购。 5. 数据统计和分析:系统可以根据仓库的各项数据进行统计和分析,生成相关报表和图表,帮助仓库管理人员做出科学决策,提高仓库管理水平。 基于S5PV210和Qt的仓库管理系统具有高性能、跨平台和用户友好的特点,可以方便地实现仓库管理的自动化和信息化,提高仓库管理的效能和准确性。 ### 回答3: 基于s5pv210处理器和Qt开发的仓库管理系统是一种用于管理仓库物品、轨迹、库存等信息的软件系统。该系统可以通过s5pv210处理器提供的强大计算和处理能力,实现对大量数据的高效处理和存储。 Qt是一种跨平台的GUI开发框架,结合s5pv210处理器可实现界面友好的仓库管理系统。通过Qt的图形界面功能,可以方便地搭建直观、易用的仓库管理界面,用户可以通过图形界面进行仓库物品的录入、出库、查询等操作。 基于s5pv210和Qt开发的仓库管理系统可以提供以下功能: 1. 仓库物品管理:系统可以记录仓库中的物品信息,包括物品名称、编号、规格、数量等。用户可以通过系统对物品进行分类、添加、修改和删除。 2. 入库出库管理:系统可以记录物品的入库和出库信息,包括时间、数量、入库人员等。用户可以通过系统追踪和管理物品的入库和出库情况。 3. 库存管理:系统可以实时统计仓库中各类物品的库存情况,包括剩余数量、当前状态等。用户可以通过系统查询和监控仓库中物品的库存情况,以便及时补货和管理库存。 4. 报表统计:系统可以生成各类报表,如入库报表、出库报表、库存报表等。用户可以通过系统生成的报表了解仓库的物品流动情况和库存情况,以辅助决策。 5. 用户管理:系统可以实现不同用户角色的管理,包括管理员、操作员等。管理员可以对系统进行设置和维护,操作员则可以进行仓库管理操作。 基于s5pv210和Qt的仓库管理系统可以帮助提高仓库物品的管理效率和准确性,降低仓库管理成本,提供了一个方便、高效、安全的仓库管理解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值