![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
个人理解和感悟
EquationOcean
这个作者很懒,什么都没留下…
展开
-
C语言rand()函数解析
C语言的rand()函数位于<stdlib.h>。该函数可以生成一个取值为0~32767的伪随机数。先看一下函数的实现。unsigned long int next = 1;int rand(void){ next = next * 1103515245 + 12345; return ((unsigned int)(next/65536) % 32768);}/* srand函数:为rand()函数设置种子数 */void srand(unsigned int原创 2021-05-16 17:32:09 · 725 阅读 · 0 评论 -
单片机的Bank分区机制
在前段时间做了一个项目,使用的为中颖8位单片机,型号为SH79F166A。碰到了一个有趣的机制,即分区机制。该单片机的特殊功能寄存器分为Bank0和Bank1两个扇区,每个扇区的地址均是80H到FFH,每个地址与GPIO,定时器,PWM等相关。相同的地址在不同的扇区内可能代表不同的功能,比如P0CR(控制端口P0的输入输出模式)和P5CR的地址都是E1H,但是P0CR位于Bank0,而P5CR位于Bank1。如果在操作P5CR之前没有进行切换扇区的操作,那么对P5CR的操作就只是对P0CR的操作。而不会原创 2021-01-12 21:44:38 · 4059 阅读 · 0 评论 -
单片机对底层寄存器的操作
最近项目用到了国产的一款单片机,没有例程的支持,需要自己从头开始写底层。又感受到了自己本科刚学习51的时候的浮躁,不懂得如何操作底层的寄存器,只是一味的抄写别人的例程,然后进行简单改动。后来参加比赛,使用的恩智浦的K60单片机也是这样,直接使用别人写好的代码库,调用一下函数,再后来学习STM32也是这样,完全不懂得软件和硬件的接轨,也就没有对底层了如指掌的从容,写出来的代码也不够优雅。铺垫了这么多,也该进入正文了。单片机编程和直接的计算机编程的一个突出区别就是对底层的操作,计算机编程时不需要关心计算机的原创 2021-01-03 21:58:35 · 2311 阅读 · 6 评论