【原创】ARM串口控制台

一、串口基本知识
作用 : ①:数据传输;
②: 当作控制台
通信方式,波特率。一般采用的波特率位115200.
通信参数:一般由起始位,八位数据,奇偶校验位还有停止位构成。
RS232位9帧串口 ,其中2,3,5引脚最为重要。2引脚为 RXD接受引脚;3引脚为TXD发送引脚,5引脚为GND引脚。

二、ARM串口编辑
初始化
由于一般RX/TX引脚功能都在GPIO引脚上面,所以查看原理图,找到引脚配置引脚功能。
配置完引脚功能之后,设置数据格式,(8位数据格式)
设置串口工作方式。{在这里要说明,操作系统上一般采用中断方式,而对于btlooder这种小的系统来说,用轮询方式即可}

三、发送和接收字符

很简单,无非就是产看标志位寄存器的标志,所以在这里就不再过多的说明。

四、控制台

printf函数和scanf函数的操作。均在Linux下查看man 3 printf或者man 3 scanf函数的功能参数,在写出函数,分别用了va_list,va_end,va_start等函数,这些函数均在配置文件中给出。

重点:Makefile的书写

记住以下几个Makefile
一级Makefile:

OBJS := start.o main.o dev/dev.o lib/lib.o

CFLAGS := -nostdinc -fno-builtin -I$(shell pwd)/include
export CFLAGS

gboot.bin : gboot.elf
    arm-linux-objcopy -O binary gboot.elf gboot.bin

gboot.elf : $(OBJS)
    arm-linux-ld -Tgboot.lds -o gboot.elf $^

%.o : %.S
    arm-linux-gcc -g -c $^

%.o : %.c
    arm-linux-gcc $(CFLAGS) -c $^

lib/lib.o :
    make -C lib all

dev/dev.o :
    make -C dev all

.PHONY: clean
clean:
    rm *.o *.elf *.bin
    make -C lib clean
    make -C dev clean

其下文件夹的Makefile为

objs := interrupt.o led.o mmu.o uart.o nandflash.o button.o

all : $(objs)
    arm-linux-ld -r -o dev.o $^

%.o : %.c
    arm-linux-gcc ${CFLAGS} -c $^

%.o : %.S
    arm-linux-gcc ${CFLAGS} -c $^

clean:
    rm -f *.o       

观察不同,并理解。

DMA模式时注意调试串口的UCON寄存器模式从中断模式该位DMA模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值