单片机与STM32问题及解决

本文介绍了单片机汇编指令的特点,如何在multisim中替代缺失元件,解决keil安装STM32 pack时的报错问题。还探讨了数组声明、堆栈的作用、ACC与A的区别,以及调试STM32项目时的头文件路径、报错处理和版本兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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不匹配。

6.具体开发还是要到官方芯片手册或者店铺下载相关库函数开发文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值