坚持,这两个字非常重要!

640

今天只说简简单单平平淡淡的两个字:坚持。

当我们读小学时,老师说:“到了初中就不一样了!”,我以为老师的意思是到了初中就不要写作业了,其实,那个理想的状况并没有在初中的现实中出现过,反而作业变多了,那时,我坚持了三年;当我们读初中的时候,老师又说了,“当你考上一所重点中学后,你的一只脚已经踏进大学的校门了”,当时我也又信了,以为真的只要考上了重点中学就可以轻轻松松的度过我的三年时光了,那时,我又坚持了三年;到了高中的时候,进入了重点中学,老师更加郑重的说了:“进入了大学,爬过高考这座大山,你们就解放了,可以尽情的释放自己了”!

于是,我又选择相信老师,坚持了三年,考上了一所大学。

上了大学后,我以为真的解放了,真的可能玩出自己的性格,过上自己想要的青春期的生活,可是,理想很丰满,现实很骨感,到头来,发现老师说的话都是“错误的”,因为,你不努力,你就找不到工作!

难道老师说的真的是错的吗?其实,并不是这样的,你回过头去想想,从小到大,长大的过程中,有多少身边的同学因为没有“听老师的话”而毅然的走向了社会,你可以看看大多数的这些同学他们现在过的好吗?

我想,至少不是我想要的生活,这其中的原因是什么呢?很简单,因为他们没有“听老师的话”,不够坚持!

640

思海运营公众号有快一年的时间了,我为现在的成绩感到自豪。为什么我可以做到呢?我以我自己为例,说一下坚持的重要性。

前面提到,因为“听老师的话”我考上了大学,因为“听老师的话”,我的大学四年时光,我都在坚持一件事情,那就是写代码;在坚持学习的同时,也不忘关注行业的最新的动态,在大学的时候,我逛的最多的软件可能就是 csdn 了,当然除了社交软件,我个人认为,我正是因为这种坚持,所以我在一所很普通的大学,也学到了很多的知识,拥有了一项技能,超过了很多同年龄的学生。

大学四年的时光,我通过每天不懈的坚持和努力,把 Java 学的还不错;同时,通过我的坚持,我考上了研究生,超过了更多的同年龄的学生;通过我的坚持,在大四的时候,我开始运营公众号,一年的时间,目前拥有了 3W 粉丝;这一切都是因为坚持!

今天我想说的就是:想做好一件事情,只要你足够坚持,你一定会有所收获,只要你足够坚持,在山的那头,你一定会成功!

640?wx_fmt=jpeg

640?wx_fmt=png

你「在看」吗??

?点击「阅读原文」,更多精彩

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: IIC通讯是一种常用的数通信协议,用于在单片机之间或单片机与外围设备之间进行通讯。下面是一个简单的两个单片机IIC通讯程序的示例: 主控单片机代码: ```c #include <reg51.h> #define SDA P2_1 #define SCL P2_0 void delay_us(unsigned int us) { while(us--); } void IIC_Start() { SDA = 1; SCL = 1; delay_us(4); SDA = 0; delay_us(4); SCL = 0; } void IIC_Stop() { SDA = 0; SCL = 1; delay_us(4); SDA = 1; delay_us(4); } void IIC_SendByte(unsigned char dat) { unsigned char i; for(i=0; i<8; i++) { SDA = (dat & 0x80) >> 7; dat <<= 1; SCL = 1; delay_us(4); SCL = 0; delay_us(4); } SDA = 1; SCL = 1; delay_us(4); SCL = 0; delay_us(4); } unsigned char IIC_ReceiveByte() { unsigned char i, dat = 0; SDA = 1; for(i=0; i<8; i++) { SCL = 1; delay_us(4); dat = (dat << 1) | SDA; SCL = 0; delay_us(4); } return dat; } void IIC_SendAck(bit ack) { SDA = ack; SCL = 1; delay_us(4); SCL = 0; delay_us(4); } bit IIC_ReceiveAck() { bit ack; SCL = 1; delay_us(4); ack = SDA; SCL = 0; delay_us(4); return ack; } void main() { unsigned char dat; IIC_Start(); IIC_SendByte(0xA0); IIC_ReceiveAck(); IIC_SendByte(0x00); IIC_ReceiveAck(); IIC_Stop(); delay_ms(10); IIC_Start(); IIC_SendByte(0xA1); IIC_ReceiveAck(); dat = IIC_ReceiveByte(); IIC_SendAck(1); IIC_Stop(); while(1); } ``` 从控单片机代码: ```c #include <reg51.h> #define SDA P2_1 #define SCL P2_0 void delay_us(unsigned int us) { while(us--); } void IIC_Start() { SDA = 1; SCL = 1; delay_us(4); SDA = 0; delay_us(4); SCL = 0; } void IIC_Stop() { SDA = 0; SCL = 1; delay_us(4); SDA = 1; delay_us(4); } void IIC_SendByte(unsigned char dat) { unsigned char i; for(i=0; i<8; i++) { SDA = (dat & 0x80) >> 7; dat <<= 1; SCL = 1; delay_us(4); SCL = 0; delay_us(4); } SDA = 1; SCL = 1; delay_us(4); SCL = 0; delay_us(4); } unsigned char IIC_ReceiveByte() { unsigned char i, dat = 0; SDA = 1; for(i=0; i<8; i++) { SCL = 1; delay_us(4); dat = (dat << 1) | SDA; SCL = 0; delay_us(4); } return dat; } void IIC_SendAck(bit ack) { SDA = ack; SCL = 1; delay_us(4); SCL = 0; delay_us(4); } bit IIC_ReceiveAck() { bit ack; SCL = 1; delay_us(4); ack = SDA; SCL = 0; delay_us(4); return ack; } void main() { unsigned char dat = 0x55; IIC_Start(); IIC_SendByte(0xA0); IIC_ReceiveAck(); IIC_SendByte(0x00); IIC_ReceiveAck(); IIC_SendByte(dat); IIC_ReceiveAck(); IIC_Stop(); while(1); } ``` 这里的主控单片机向从控单片机发送一个节,并且从从控单片机接收一个节。程序中的函数和宏定义都是通用的,可以用于其他的IIC通讯。 ### 回答2: 学习单片机需要掌握一定的电子基础知识和编程能力。具体来说,从零学习单片机包括以下几个步骤: 1. 学习电子基础知识:了解基本的电路知识,掌握电子元器件的基本原理和使用方法。 2. 学习编程知识:单片机的程序通常使用C语言或汇编语言编写,学习这两种语言,熟悉编程基本概念和语法。 3. 选择单片机型号:根据需求选择适合的单片机型号。常见的单片机有Arduino、STM32等,选择一个适合自己的型号。 4. 学习单片机原理:了解单片机的工作原理、寄存器、时钟等重要概念。可以通过参考书籍、网络教程等途径进行学习。 5. 学习编写程序:通过各种学习资源,学习如何编写单片机程序。可以从简单的LED控制开始,逐渐扩展到更复杂的功能。 6. 实践项目:通过实践项目来巩固所学知识。可以选择一些简单的实验或小项目,逐渐增加难度和复杂度。 关于两个单片机之间的IIC通信程序,可以按照以下步骤进行: 1. 配置IIC总线:根据所选单片机的手册,配置IIC总线的参数和初始化寄存器。 2. 主从模式选择:确定通信中主从设备的角色,并相应配置各自的模式。 3. 发送数据:主设备将要发送的数据写入发送缓冲区,通过IIC总线发送给从设备。 4. 接收数据:从设备接收到主设备发送的数据,将其写入接收缓冲区,供主设备读取。 5. 完成通信:主设备通过判断从设备的应答信号,确认通信成功。 6. 错误处理:在通信过程中,根据错误码或标志位处理错误信息。 通过以上步骤并结合实际需求,可以编写两个单片机之间的IIC通信程序。刚开始可能会遇到一些困难,但通过坚持学习和实践,逐渐掌握单片机的基本原理和编程技巧。 ### 回答3: 要学习单片机,首先需要了解单片机的基本原理和基本知识。可以开始学习单片机的原理和基本知识,学习单片机的工作原理、结构、寄存器、指令等。 在学习过程中,可以选择一款具有良好支持和丰富资料的单片机产品,比如常用的STC系列单片机。可以通过阅读相关的文档和资料,了解该单片机的特性和参数,以及使用该单片机进行开发的相关知识。 学习单片机的编程语言,如C语言,可以通过学习C语言的基本语法和编程方法来理解单片机的编程。可以选择一些经典的单片机编程案例进行实践,不断积累编程经验和技巧。 了解并学习单片机的开发环境,如Keil、IAR等集成开发环境。了解如何配置开发环境、创建工程、进行编译和调试等。 选择一个具体的项目或应用来实践单片机的学习,通过实践中不断遇到的问题、解决的方法等,进一步加深对单片机的理解和掌握。 在学习的过程中,可以参考相关的教材、网络教程和视频教程,结合实践和理论相结合,加深对单片机的认识和应用。 总之,从零开始学习单片机,需要了解单片机的基本原理和知识,并通过实践和学习不断加深对单片机的理解和掌握。通过不断学习和实践,逐步提高自己的单片机应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello-java-maker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值