![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言与嵌入式知识积累
裸奔的蜗牛菌
没啥好说的,安心学习吧!
展开
-
C/C++中的回调函数
http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 转载转载 2017-08-09 13:56:31 · 184 阅读 · 0 评论 -
PID算法的C语言实现-20170816
第一步:定义PID变量结构体,代码如下: struct _pid{ float SetSpeed; //定义设定值 float ActualSpeed; //定义实际值 float err; //定义偏差值 float err_last; //定义上一个偏差值转载 2017-08-16 16:58:25 · 738 阅读 · 0 评论 -
enum与typedef enum
enum与typedef enum的用法 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7转载 2017-08-18 18:33:50 · 280 阅读 · 0 评论 -
c++中箭头操作符(->)和点操作符(.)有什么不同
struct MyStruct { int member_a; }; 如果有个变量MyStruct s,那么使用其中的成员元素时可以用 s.member_a = 1; 如果采用指针方法访问,比如MyStruct * ps,那么同样的访问就必须使用如下形式: (*ps).member_a = 1; 或者 ps->member_a =转载 2017-08-18 23:31:03 · 340 阅读 · 0 评论 -
__I、 __O 、__IO volatile是什么?怎么用?(作者写的太棒了,给赞)
__I、 __O 、__IO是什么意思? 这是ST库里面的宏定义,定义如下: #define __I volatile const /*! #define __O volatile /*! #define __IO volatile /*! 显然,这三个宏定义都是用来替换成 volatile 和 const 的,所以我们先要了解 这两个关键字的作用: volatil转载 2017-08-21 15:41:30 · 339 阅读 · 0 评论 -
ARM定义特殊寄存器(*(volatile unsigned long *))的理解
以前老是对ARM程序中(*(volatile unsigned long *))不理解,今天看了两篇文章,觉得对理解这个很有用,当然这个不止在定义内部特殊寄存器有用,在用到外部总线时,根据具体情况,定义外部器件的地址也可以用。 下面是文章一 终于理解了#define SREG (*(volatile unsigned CHAR *)0x5F) 以前看到#define SREG转载 2017-11-01 21:58:07 · 507 阅读 · 0 评论