单片机与STM32问题及解决

  • Post author:
  • Post category:其他


1.单片机中汇编指令主要是通过地址找寻数据,对数据进行操作,因此汇编中数据与地址是分不开的。

2.multisim软件中没有找到常见三级管如9014.可以找到对应模型修改参数替代。

3.keil安装stm32 pack的时候出现报错:keil安装stm32显示no uvision systemviewer file created的解决方案是,在安装stm32packe,选择下载好的pack安装是要关闭keil的。在keil中pack图标中导入则不用关闭软件.

4.注意数组格式:DB与字节数之间没有逗号。

5 DB 的意思是声明字节

Num_Tab:
      DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,0AH,0DH

(Declare Byte)

6.堆栈作用:保护数据恢复现场,一般配合中断向量使用:

 PUSH ACC
	  JB   RI,Is_Receive
	  clr  TI
	  RETI
Is_Receive:
      CLR  RI
      MOV  A,SBUF
      LCALL SendOneByte
      pop   ACC
      RETI  ;中断地址返回。

指令RLC:带进位左移,寄存器C存放数字最高位。左移后会补最低位 RLC:不进位左移即不补零。

7.堆栈理解:

MOV SP,#5FH ;SP指针指向5FH
MOV A,#100  
MOV B,#60   
PUSH ACC    ;入栈SP+1=60H
PUSH B      ;入栈SP+1+1=61H
POP B       ;出栈SP-1=60H
POP ACC     ;出栈SP-1=5FH
;必须遵顼堆栈后进先出原则。如果变成:
POP ACC
POP B ;则A与B的数值交换

8.ACC与A的区别

9.在进行调试时要先点击生成hex文件。否则会报错;*** error 56: can’t open file

STM32:

1.安装STM32F3x系列存在的问题是安装没有成功。找不到头文件路径。

2打开keil的stm32项目时出现如下警告:

解决方法:在对应的报错文件找到对应的行删除相关信息。

3.pack的安装在对应的pack下载安装即可。

4.出现错误:main222314.c(58): error:  #268: declaration may not appear after executable statement in block

即声明变量应该在可执行主函数前声明。

5.安装是stm32pack出现SVDC报错时可能是由于keil版本与pack不匹配。



版权声明:本文为m0_45900512原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。