新人首贴,请多关照,谢谢!
买了原子哥的板子学习STM32,受益匪浅!
和朋友一起又画了一个主要为了自己用,增加了一些外设,此贴主要用的是自己的板子,但是更多的主要还是关于Cortex-M3的内部功能实现,和板子关系不大。
因为自己之前是搞ARM7的,所以拿到CM3之后还是想把体系结构搞清楚再做应用,所以在研究过原子哥的代码和工程后决定从汇编语言入手学习,所以便有了今天这份代码。自己在学习的过程中也有很多体会,因为在这里我也获得了很多帮助所以希望我得帖子也能为大家提供给帮助。在此感谢那些无私奉献的大神们
。
好了闲话不说了,进入正题。我这个工程主要是从STM32的那个startup.s文件开始入手的实现了如下功能:
1.芯片初始化
主堆栈初始化
线程堆栈初始化
异常向量表初始化
外部中断向量表初始化
2.系统延时
基于SysTick实现的毫秒级延时子程序
3.GPIO操作
实现RGBLED灯操作
五向按键操作
4.NVIC相关操作
中断分组
异常向量表定位
中断配置等子程序
5.usart串口操作
轮询方式发送数据
中断方式接收数据
数据接收循环队列
6.ILI9486液晶屏驱动(部分功能)
液晶屏初始化
清屏操作
绘制16*8点阵ASCII码字符
绘制水平方向字符串等子程序
以上是当前工程中有的功能,后期会陆续更新。。。
STACK_TOP EQU 0x20002000
;AREA |Header Code|, CODE
AREA RESET,CODE,READONLY
DCD STACK_TOP
DCD Start
AREA |.text|, CODE, READONLY
ENTRY ;
Start
MOV r0, #10
MOV r1, #0
loop
ADD r1, r0
SUBS r0, #1
BNE loop
deadloop
B deadloop
END
一周热门 更多>