![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文子杰
嵌入式开发
展开
-
C语言-将变量、宏定义、枚举符号转换为字符串
通过宏来转换:#str 的作用是将str转换为字符串1、将1个变量符号、宏定义、枚举定义转换为字符串#define STR(str) #str 2、将输入的文本转换为字符串支持C99模式才能使用,输入任何文本都可以,变量、宏定义、枚举、语句等#define STRS(args...) #args...原创 2022-04-12 20:18:05 · 2294 阅读 · 0 评论 -
C语言-多行宏定义添加注释的方法
总结:多行宏定义添加注释时,不能把整行宏定义注释掉,否则展开时,代码会不完整前提1、C语言的宏定义把代码当成文本来处理,使用时会把代码进行直接的粘贴和替换2、宏定义遇到换行符 ‘\0’ 结束 3、多行宏定义每行的最后,需要用连接符 ‘\’ 与下一行进行连接多行宏定义定义一个多行宏定义#define SetTest() do{ \ test = 0; \ test = 1; \ test = 2; \}while(0)int main(void){ int test;原创 2022-04-11 14:00:14 · 2429 阅读 · 1 评论 -
C语言枚举定义能不能从负数开始?
枚举知识枚举是C语言中的一种数据类型枚举默认从 0 开始定义一个从负数开始的例子typedef enum { OFF = -1, LEVEL1, // 0 LEVEL2, // 1 LEVEL3, // 2 MAX, // 3} Level_e;Level_e level;level = OFF; //语句1level = LEVEL1; //语句2结果分析定义时定义从负数开始的枚举,用keil编译器编译,枚举定义本身不会报错赋原创 2022-03-28 15:44:09 · 4816 阅读 · 0 评论 -
实现嵌入式的debug和release模式
关于debug和release模式debug模式通常在debug模式下开发,在代码中添加一些打印输出函数,将测试数据打印到上位机上,方便调测release模式使用release模式下的代码,生成正式版本的固件,用于实际的生产。该模式下通常会屏蔽所有用于开发阶段调测的打印函数标题实现debug和release模式的2种方法方法一:printf重定向 + 可变参数宏这个方法适用于兼容C99模式的开发环境,因为可变参数宏是在C99标准中引入的。第一步、printf重定向首先实现uart串口传输功原创 2022-03-15 18:39:47 · 1465 阅读 · 0 评论 -
嵌入式烧录相关总结
(1)ISP、IAP、ICP三种烧录方式的区别(2)嵌入式开发的JTAG、SWD、Jlink、Ulink、STlink的特点和区别(3)MCU 解锁flash读写保护原创 2022-02-08 11:42:13 · 2433 阅读 · 0 评论 -
ST-Link使用和配置总结
(1)ST-Link实物参考图(2)ST-Link 引脚介绍和接线方式ST-Link SWD引脚连接方式参考链接1:https://blog.csdn.net/xinghuanmeiying/article/details/78026561参考链接2:https://blog.csdn.net/dayou1024/article/details/81184496(3)最新固件下载,安装固件下载网址:https://www.st.com/en/development-tools/stsw-lin原创 2022-02-08 11:41:53 · 10461 阅读 · 0 评论 -
i++和++i的区别分析总结
i++1、返回一个和原值相等的临时变量,用该,变量进行计算,然后加12、因为表达式的结果是一个临时变量,所以不能获取(i++)的地址,不能作为左值3、好处是:更符合人类思维习惯++i1、变量先加1,然后用该变量计算2、因为表达式是原变量,可以获取(++i)的地址,可以作为左值3、好处是:每次都用这种形式就不用考虑i的类型两者效率对比1、作为单条语句,若i是内置的数值类型,两者完全一样;如果i是一些自定义的类,如iterator,++ i的效率 >= i++.原创 2020-09-10 11:55:28 · 294 阅读 · 0 评论 -
C语言 - 变量类型的隐式转换和类型提升
C语言 - 隐式类型转换问题在C语言的表达式运算中,如果参与运算的变量属于不同的数据类型,会出现类型的隐式转换和类型提升。#include <stdio.h>#define A 10#define B -20int main(void){ unsigned int a = 10; int b = -20; //表达式1 (a + b > 6) ? printf("a + b > 6\n") : printf("a + b <= 6\n"); //原创 2021-12-31 10:59:47 · 551 阅读 · 0 评论 -
pclint下载、安装和使用
最近发现有一款C编程语法检查工具:pclint,刚好手头上的项目需要,而且Keil编译器无法检查比较弱,所以就捣鼓了一下,用上了!环境:windows KeilC51原创 2021-09-22 11:28:39 · 4224 阅读 · 0 评论 -
CAN总线通信学习笔记
CAN总线通信学习笔记完整笔记链接:https://mubu.com/doc/67Rn6yaozhSCAN总线笔记目录定义底层原理CAN信号传输发送接收CAN总线结构、特点、分类CAN总线结构CAN总线特点多主控制非破坏性位仲裁机制系统的若软性通信优势数据传输方式错误检测、错误通知和错误恢复功能故障封闭功能CAN总线协议分类ISO11898标准ISO11519-2标准CAN总线通信网络结构内容示例:...原创 2020-07-21 21:01:51 · 163 阅读 · 0 评论