一、串口基本知识 作用 : ①:数据传输; ②: 当作控制台 通信方式,波特率。一般采用的波特率位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模式。

