STM32F103纯汇编语言工程分享

2019-07-21 00:40发布

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

以上是当前工程中有的功能,后期会陆续更新。。。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
33条回答
huxd
2019-07-22 23:24
楼主太吊了,简直让我大看眼界,我最近刚好也在学习stm32汇编,但是经常出些莫名其妙的的问题,没办法搞定,麻烦你帮忙看一下下面代码到底是什么地方出问题,编译后会出现警告:prj3.axf: Warning: L6305W: Image does not have an entry point. (Not specified or not set due to multiple choices.)


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

一周热门 更多>