s5p6818裸机-uart串口

前言

写文章的目的是想通过记录自己的学习过程,以便以后使用到相关的知识点可以回顾和参考。

实现流程

1、复用IO引脚:通过板子原理图找到对应的UART引脚,然后通过GPIOXALTFN0或者GPIOXALTFN1把引脚复用为UART功能,引脚的电气特性暂时用不上,设置默认。
2、设置uart时钟:通过UARTCLKGEN0L寄存器选择任意一个PLLx作为时钟源,然后设置分频得到最终的Uart_Clk串口时钟,最后通过UARTCLKENB使能串口时钟
3、初始化uart:通过ULCON设置数据模式为:8数据位,1停止位,无校验位,正常模式,然后通过UBRDIV和UFRACVAL设置串口波特率,前者是整数部分,后者是小数部分,最后通过UCON使能接收和发送,同时设置为接收发送轮询模式。
4、实现接收函数getc,发送函数putc,puts。

具体实现过程及部分代码

1、复用IO引脚

void uart_io_init()
{
    /*GPIOD的19引脚复用为TXD1,ALT1的[7:6]bit=01,GPIOD的引脚15复用为RXD1,ALT0的[31:30]bit=01*/
    GPIOD->GPIO_ALTFN1 &= (~(0x3<<6));
    GPIOD->GPIO_ALTFN1 |= (0x1<<6);

    GPIOD->GPIO_ALTFN0 &= (~(0x3<<30));
    GPIOD->GPIO_ALTFN0 |= (0x1<<30);
}

2、设置uart时钟

void uartclk_init(UartClk_Type *Base)
{
    Base->UARTCLKENB &= ~(1<<2); /*关闭uartclk*/ 
    Base->UARTCLKGEN0L &= (~(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值