打印
[经验分享]

学习单片机开发注意事项要求

[复制链接]
6189|58
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vivilyly|  楼主 | 2024-6-23 22:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.系统时钟问题:
系统默认使用DCO,使用外部高速晶振XT2时必须自己开启XT2,并延时50us等待XT2起振,然后手工清除IFG1中的OFIFG位
!!!!一定要注意操作顺序:打开XT2->等待XT2稳定->切换系统时钟为XT2
若后面两步操作反了,在通常情况下不会出现问题,但是在电压不稳MCU频繁复位的情况下,非常容易造成MCU死掉,只能掉电后重新上电才能可靠复位。




2.早期版本的IAR开发环境
必须在Project->Option->C-Spy中选择对应器件的DDF文件,否则调试时无SFR窗口。


3.在写Flash期间,一定要关闭中断,此时CPU无法执行程序


4.调试的时候,不要选中"Release JTAG on Go"


5.在调试时,需要关闭看门狗,否则在打开看门狗的情况下,每当执行到断点,程序将会跳转到入口点从头执行。或者,暂停运行或停止到断点处时,当需要继续运行时,程序不再执行,而是需要使用“同步JTAG”才能继续运行(从头运行?)


6. IAR EWB标识符是区分大小写的


7. 结构变量内部存在对齐要求,通常按照2个字节的位置对齐,在"C/EC++ Compiler Reference Guide"的P93又如下例子:
struct {
short s; /* stored in byte 0 and 1 */
char c; /* stored in byte 2 */
long l; /* stored in byte 4, 5, 6, and 7 */
char c2; /* stored in byte 8 */
} s;
sizeof(s) 为10,而不是8


可以使用#pragma pack来改变这种对齐方式,但是会导致,这个结构只能按字节方式存取


8. MSP430 IAR C/EC++ Compiler支持两个运行库
1. IAR CLIB : 主要用于8或16为处理器,不完全兼容ISO/ANSI C,也不完全支持IEEE     754浮点数,不支持Embedded C++.
2. IAR CLIB : 支持ISO/ANSI C和Embedded C++.


9. cstartup的定制
(1). 在__low_level_init()中添加代码。该函数可以用来初始化I/O寄存器,并决定数据段是否在cstartup被初始化。文件430\src\lib\lowinit.c给出了框架,copy到项目目录中使用,文件中有一定的使用说明。
(2) 若__low_level_init()中添加代码不能满足要求,则把430\src\lib\cstartup.s43拷贝到自己的工作目录,修改所需代码;然后在将该文件添加到项目,在项目选型的XLINK的include页下选择Ignore CSTARTUP in library即可。


10. 使用#include "io430x14x.h"和#include "in430.h"来替代#include
可以使用定义的位变量


可以使用以下方式定义位变量,但是编译器最终还是转换为字节操作:
struct
{
unsigned char WDTIE : 1;
unsigned char OFIE : 1;
unsigned char : 2;
unsigned char NMIIE : 1;
unsigned char ACCVIE : 1;
unsigned char URXIE0 : 1;
unsigned char UTXIE0 : 1;
} IE1_bit;


不推荐使用bitfields,效率很低


11. 数组的索引值用int型效率最高,char型也好略低
数组类型:char型数组效率最高,

使用特权

评论回复
沙发
burgessmaggie| | 2024-7-4 19:49 | 只看该作者
单片机开发需要遵循一定的标准规范,如电气标准、通信协议、代码规范等。这有助于提高开发的效率和可维护性,以及确保开发的产品符合相关的法规和要求。

使用特权

评论回复
板凳
yorkbarney| | 2024-7-4 21:43 | 只看该作者
了解单片机的供电电压、工作电流、IO电平和电流等电气特性,确保设计电路时满足这些要求。

使用特权

评论回复
地板
chenjun89| | 2024-7-9 19:47 | 只看该作者
楼主可以总结成经验文档

使用特权

评论回复
5
mikewalpole| | 2024-7-9 23:12 | 只看该作者
学习单片机的指令集和汇编语言,理解机器代码和高级语言之间的关系。

使用特权

评论回复
6
mikewalpole| | 2024-7-10 03:11 | 只看该作者
通过实际的项目来学习和应用单片机开发知识,实践中遇到的问题和挑战会促进深入学习。

使用特权

评论回复
7
fengm| | 2024-7-10 03:25 | 只看该作者
了解计算机的基本组成和工作原理,有助于理解单片机的内部结构和工作机制。

使用特权

评论回复
8
claretttt| | 2024-7-10 03:38 | 只看该作者
从51单片机开始学起,学习资料较多,底层相对较简单

使用特权

评论回复
9
adolphcocker| | 2024-7-10 03:52 | 只看该作者
注意代码风格、注释、命名等规范,提高代码的可读性和可维护性。同时,考虑到代码的效率和可靠性。

使用特权

评论回复
10
everyrobin| | 2024-7-10 04:06 | 只看该作者
注意复位信号的稳定性和可靠性。复位电平的宽度和幅度应满足芯片的要求,并在系统程序开始时延时一段时间,以确保系统中所有器件到达正常工作状态。

使用特权

评论回复
11
mnynt121| | 2024-7-10 04:19 | 只看该作者
根据具体的应用需求来选择单片机型号,考虑其性能、资源、外设接口、价格及可靠性等因素。

使用特权

评论回复
12
plsbackup| | 2024-7-10 04:32 | 只看该作者
了解单片机的引脚功能、内部结构、时钟系统等硬件知识。这将有助于在开发过程中更好地进行硬件编程和调试。

使用特权

评论回复
13
mattlincoln| | 2024-7-10 04:46 | 只看该作者
系统程序开始时应延时一段时间,让系统中所有器件到达正常工作状态

使用特权

评论回复
14
ingramward| | 2024-7-10 04:59 | 只看该作者
学会阅读和理解单片机的数据手册和应用笔记,这是获取硬件特性和编程接口信息的重要途径。

使用特权

评论回复
15
timfordlare| | 2024-7-10 05:12 | 只看该作者
合理配置单片机的引脚,避免引脚冲突和资源浪费。在设计时,应明确每个引脚的功能和用途。

使用特权

评论回复
16
chenci2013| | 2024-7-12 12:39 | 只看该作者
单片机技术不断发展,要紧跟技术发展趋势,不断学习新知识、新技能。

使用特权

评论回复
17
maudlu| | 2024-7-12 15:13 | 只看该作者
理解基本的电子元件(如电阻、电容、晶体管等)和电路原理,掌握电路图的阅读和分析能力。

使用特权

评论回复
18
yorkbarney| | 2024-7-13 11:47 | 只看该作者
充分利用网络资源,如技术论坛、教程、视频等,与其他开发者交流心得,学习最新的技术动态。

使用特权

评论回复
19
beacherblack| | 2024-7-13 20:53 | 只看该作者
单片机开发是一个涉及软硬件结合的复杂过程,需要耐心和毅力去解决遇到的问题。

使用特权

评论回复
20
uiint| | 2024-7-15 10:54 | 只看该作者
设计电路时考虑抗干扰措施,如去耦电容、滤波器和屏蔽。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

1697

帖子

1

粉丝