概述
- #define BOARD_ADDR (uint16_t)(('0')|('1')<<8)
- 宏定义只能定义常量不可定义变量:
- #define BOARD_ADDR (BOARD_ID/10+'0')|(BOARD_ID%10+'0')<<8)
- BOARD_ID为变量,所以不成功
- #define BOARD_ADDR (BOARD_ID/10+'0')|(BOARD_ID%10+'0')<<8)
- 宏定义只能定义常量不可定义变量:
- Receive_Flag = 1;
- 定义标志位,if()语句常用标志位为1来判断是否进入执行内部函数。
- 中断定时器中,采用标志位来判断执行时间到了吗?到了就进入if()执行内部函数,节约单片机资源。
- 单片机调试要领:
- 设置执行断点
- 先全速运行到要调试部分再单步运行查看运行过程。
- 判断是否运行至设置断点的语句处,判断执行中间过程可能出现的原因。
- 监听数组,变量等的数据变化
- 进入watch1,出现如图所示内容,监听内部数据变化
- 设置执行断点
- 中断定时器
- #include "stm32f10x_it.h" 中设置函数,使用单片机中断定时器资源
- 在给定STM32函数中嵌套需要函数是使用内部资源最方便合理的做法。
- 采用了中断标志
- #include "stm32f10x_it.h" 中设置函数,使用单片机中断定时器资源
- 启用中断定时器必须启用如图所示时钟函数。
- 结构体:简化编程
- 图片中为连续结构体
- __attribute__((__packed__)) //配置连续存贮空间
- 图片中为连续结构体
- 结构体与指针的结合能极大的简化编程
- REV_DAT *TP;定义结构体指针,并启用函数,方便后续调用。
- 按键:按键扫描,把结果存入变量中,采用二进制位来判断是否按下。
最后
以上就是从容大门为你收集整理的嵌入式项目的开发经验的全部内容,希望文章能够帮你解决嵌入式项目的开发经验所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复