PCF8563实时时钟程序 串口输出 怎么没人回答呢 大佬们帮帮忙啊 80C

PCF8563实时时钟程序,需要输出时间,但现在在串口输出的时候文本模式没有输出,HEX模式下不断输出00,我需要输出时间 下边代码 懂的大佬帮帮忙看看哪出问题了 怎么解决?
main.c
#include
#include
#include
/*------------------
内振11.0592M
sbit SDA=P4^6;
sbit SCL=P4^1;
串口输出时间,波特率9600
串口不移位
------------------*/

extern void uart_init(void);
extern void P8563_init();
extern void P8563_gettime();
extern void uart_test(unsigned char length);

unsigned char TX_buf[10];
unsigned char jj,Rx_Byte,Length;
bit CmdValid;
unsigned char RX_buf[10];
extern void Delay();
void P8563_Read();
void main(void)
{
unsigned int delayl;
uart_init();

    P8563_init();

// WDT_CONTR = 0x30;
while(1)
{
//WDT_CONTR = 0x3c;
// WDT_CONTR = 0x30;
for(delayl=0;delayl<60000;delayl++){
Delay();
}

            P8563_gettime();
            P8563_Read();
        /*  TX_buf[0] = 0x01;
            TX_buf[1] = 0x02;
            TX_buf[2] = 0x02;
            TX_buf[3] = 0x03;   
            uart_test(4);   */   
    }

}
/*void ser() interrupt 4
{

if(RI)
{
RI=0;
RX_buf[Rx_Byte]=SBUF;
if(RX_buf[0]=='\n')
Rx_Byte=0;
if(RX_buf[0]==' ')
Rx_Byte=0;
if( RX_buf[0] == 0xff)
Rx_Byte = 0;

else
{

Length = RX_buf[0];
if(Rx_Byte ==Length)
{
jj=0;
CmdValid = 1;
}
Rx_Byte++;

}

}

else if(!RI && TI)
{
TI=0;
if(jj<4)
SBUF=TX_buf[jj++];//将接受的数据发出去
else
{
Rx_Byte=0;
jj = 0;
}
}
}*/

PCF8563.c
#include <reg52.h>
#include <absacc.h>
#include <intrins.h>

#define uchar unsigned char
extern uchar TX_buf[10];
extern void uart_test(unsigned char length);
sfr  P4         =   0xe8; 
sbit P40        =   0xe8; 
sbit P41        =   0xe9; 
sbit P42        =   0xea; 
sbit P43        =   0xeb; 
sbit P44        =   0xec; 
sbit P45        =   0xed; 
sbit P46        =   0xee;
sbit SDA=P4^6;
sbit SCL=P4^1;

uchar g8563_Store[6]; /*时间交换区,全局变量声明*/
uchar code c8563_Store[6]={0x17,0x08,0x09,0x18,0x00,0x00}; /*写入时间初值:星期一 07:59:00*/

/********************************************
内部函数,延时1
********************************************/
void Delay()
{
        _nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();/*根据晶振频率制定延时时间*/
}
/********************************************
内部函数,I2C开始
********************************************/
void Start()
{ 
        SDA=1;
        SCL=1;
        Delay();
        SDA=0;
        Delay();
        SCL=0;
}
/********************************************
内部函数,I2C结束
********************************************/
void Stop()
{
        SDA=0;
        SCL=0;
        Delay();
        SCL=1;
        Delay();
        SDA=1;
        Delay();
}
/********************************************
内部函数,输出ACK ,每个字节传输完成,输出ack=0,结束读书据,ack=1;
********************************************/
void WriteACK(uchar ack)
{
        SDA=ack;
        Delay();
        SCL=1;
        Delay();
        SCL=0;
}
/********************************************
内部函数,等待ACK
********************************************/
void WaitACK()
{  
        uchar errtime=20;
        SDA=1;
        Delay(); /*读ACK*/
        SCL=1;
        Delay();
        while(SDA)
        {  
                errtime--;
                if(!errtime) 
                        Stop();
        }
        SCL=0;
        Delay();
}
/********************************************
内部函数.输出数据字节
入口:B=数据
********************************************/
void writebyte(uchar wdata)
{
        uchar i;
        for(i=0;i<8;i++)
        {
                if(wdata&0x80) 
                        SDA=1;
                else 
                        SDA=0;
                wdata<<=1;
                SCL=1;
                Delay();
                SCL=0;
        }
        WaitACK();     //I2C器件或通讯出错,将会退出I2C通讯
}
/********************************************
内部函数.输入数据
出口:B
********************************************/
uchar Readbyte()
{
        uchar i,bytedata;
        SDA=1;
        for(i=0;i<8;i++)
        {
                SCL=1; 
                bytedata<<=1;
                bytedata|=SDA;
                SCL=0;
                Delay();
        }
        return(bytedata);
}
/********************************************
输出数据->pcf8563
********************************************/
void writeData(uchar address,uchar mdata)
{
        Start();
        writebyte(0xa2); /*写命令*/
        writebyte(address); /*写地址*/
        writebyte(mdata); /*写数据*/
        Stop();
}
/********************************************
输入数据<-pcf8563
********************************************/
/*uchar ReadData(uchar address) //单字节
{  
        uchar rdata;
        Start();
        writebyte(0xa2); //写命令
        writebyte(address); //写地址
        Start();
        writebyte(0xa3); //读命令
        rdata=Readbyte();
        WriteACK(1);
        Stop();
        return(rdata);
}*/ 
void ReadData1(uchar address,uchar count,uchar * buff) /*多字节*/
{  
        uchar i;
        Start();
        writebyte(0xa2); /*写命令*/
        writebyte(address); /*写地址*/
        Start();
        writebyte(0xa3); /*读命令*/
        for(i=0;i<count;i++)
        {
                buff[i]=Readbyte();
                if(i<count-1) 
                        WriteACK(0);
        }
        WriteACK(1);
        Stop();
}  
/********************************************
内部函数,读入时间到内部缓冲区
********************************************/
void P8563_Read()
{   
        uchar time[7];
        ReadData1(0x02,0x07,time);
        g8563_Store[0]=time[0]&0x7f; /*秒 */
        g8563_Store[1]=time[1]&0x7f; /*分 */
        g8563_Store[2]=time[2]&0x3f; /*小时 */
        g8563_Store[3]=time[3]&0x3f; /*日 */
        g8563_Store[4]=time[5]&0x1f; /*月 */
        g8563_Store[5]=time[6]; /*年  */

        TX_buf[0] = g8563_Store[5];
        TX_buf[1] = g8563_Store[4];
        TX_buf[2] = g8563_Store[3];
        TX_buf[3] = g8563_Store[2]; 
        TX_buf[4] = g8563_Store[1]; 
        TX_buf[5] = g8563_Store[0]; 
        uart_test(6);   
}
/********************************************
读入时间到内部缓冲区----外部调用 
********************************************/
void P8563_gettime()
{
        P8563_Read();
        if(g8563_Store[0]==0)
                P8563_Read(); /*如果为秒=0,为防止时间变化,再读一次*/
}   
/********************************************
写时间修改值
********************************************/
void P8563_settime()
{
        //uchar i;
        writeData(8,g8563_Store[0]); //年 
        writeData(7,g8563_Store[1]); //月 
        writeData(5,g8563_Store[2]); //日 
        writeData(4,g8563_Store[3]); //时 
        writeData(3,g8563_Store[4]); //分  
        writeData(2,g8563_Store[5]); //秒 
}
/********************************************
P8563的初始化-----外部调用
********************************************/
void P8563_init()
{
    uchar i;
      // P8563_settime();
for(i=0;i<=5;i++) g8563_Store[i]=c8563_Store[i]; /*初始化时间*/
        P8563_settime();  
   // if((ReadData(0x0a)&0x3f)!=0x08) /*检查是否第一次启动,是则初始化时间*/
   // {
//      P3_4 = 0;
 //       for(i=0;i<=3;i++) g8563_Store[i]=c8563_Store[i]; /*初始化时间*/
 //       P8563_settime();
 //       writeData(0x0,0x00);
 //       writeData(0xa,0x8); /*8:00报警*/
 //       writeData(0x1,0x12); /*报警有效*/
  //      writeData(0xd,0xf0);  //编程输出32.768K的频率
  //  }
}


uart.c

#include
//sfr AUXR = 0x8e; //Auxiliary register
extern unsigned char TX_buf[10];
void uart_init(void)
{
SCON = 0x50; //8???,?????
// AUXR |= 0x40; //???1???Fosc,?1T
// AUXR &= 0xFE; //??1?????1???????
TMOD &= 0x02; //?????1?16???????
TL1 = 0xfd; //??????
TH1 = 0xfd; //??????
ET1 = 0; //?????1??
TR1 = 1; //?????1

// TMOD=0x20;//设置定时器1为工作方式2
// TH1=0xfd;//装初值
// TL1=0xfd;
// TR1=1; //启动定时器
// TI=1;
// //REN=1; //允许接收
// SM0=0; //设置工作方式 1
// SM1=1;
// EA=1; //开串口中断
// ES=1;

//IP = 0x10; //设置串口为高优先级
}
void uart_test(unsigned char length)
{

    unsigned char i;
    for(i=0;i<length;i++)
    {
            ES=0;
            SBUF = TX_buf[i];//将接受的数据发出去
            while(!TI); 
            TI=0;               
    }   
    ES=1;     

}

2个回答

芯片是STC90C58rd+

感谢平台的帮助,本人问题已解决

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
NS2.35 中实现MAC/802.11 的PCF接入方式
-
求大神给一份PCF8591的基于FPGA的verilog的IIc控制程序
-
PCF视频文件破解和转码
-
刚买的pca9685写的代码一直驱动不了舵机,小白求解
-
STC89C52利用PCF8591如何采集pulse sensor模拟信号
-
DA14580与PCF2123TS通讯例程
-
IBM MQ MQJE001: 完成代码为 '2',原因为 '3013'
-
Linux文件操作高频使用命令
文章目录0.新建操作:1.查看操作2.删除操作3.复制操作4.移动操作:5.重命名操作:6.解压压缩操作 0.新建操作: mkdir abc #新建一个文件夹 touch abc.sh #新建一个文件 1.查看操作 查看目录: ll #显示目录文件详细信息 查看文件内容: cat|head|tail命令 cat abc.txt #查看abc的内容 head -5 abc.txt #...
程序员实用工具网站
目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、算法 11、在线工具宝典大全 程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收...
史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依旧在使用eclipse或者Myeclipse开发,我想对这些朋友说IDEA 的编译速度很快,人生苦短,来不及解释了,直接上手idea吧。这篇文章每一步搭建过程都测试过了,应该不会有什么差错。本文章还有个比较优秀的特点,就是idea的使用,基本上关于idea的操作都算是比较详细的,所以不用太担心不会撸idea!最后,本文
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点
目录 1、BMP格式图像 2、GIF格式图像 3、TIFF格式图像 4、PNG格式图像 5、JPG格式图像 6、SVG格式图像 7、总结 7.1、有损vs无损 7.2、索引色vs直接色 7.3、点阵图vs矢量图 7.4、总结 一张图片可以储存为多种格式,为什么有的几十KB,有的几百MB,有的静止不动,有的是好几个画面循环播放?在项目开发的过程中经常会读取或保存图像...
高级软件工程师教会我的那些事儿
【CSDN编者按】以人为鉴,可明得失。对于新手程序员来说,面对复杂的开发需求很容易因为经验不足或技术不够娴熟等原因而踩坑。本文的作者表示:坐在高级软件工程师旁边工作或许可以事半功倍!长达一年的观察学习,他收获了包括编写代码、测试、设计、部署以及监控的一系列的长足进步。 声明:本文已获作者翻译授权,原文(https://neilkakkar.com/things-I-learnt-from-...
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
文章目录前言一、nginx简介1. 什么是 nginx 和可以做什么事情2.Nginx 作为 web 服务器3. 正向代理4. 反向代理5. 动静分离6.动静分离二、Nginx 的安装三、 Nginx 的常用命令和配置文件四、 Nginx 配置实例 1 反向代理五、 Nginx 配置实例 2 负载均衡六、 Nginx 配置实例 3 动静分离七、 Nginx 的高可用集群 前言 一、nginx简介...
MySQL数据库—SQL汇总
一、准备 下文整理常见SQL语句的用法,使用MySQL5.7测试,参考了尚硅谷MySQL教程及用例。用例sql: 链接: https://pan.baidu.com/s/1tb3-12MRNFjV8drFlN6wzg&amp;shfl=sharepset 密码: fc2h 为了方便查阅可从右侧目录快速索引 二、DQL(Data Query Language)数据查询语言 1、语句顺序 书写顺序...
黑客入门,从HTB开始
Hack the box 是国外的一个靶机平台,里面的靶机包含多种系统类型,并且里面可以利用的漏洞类型多种多样,有很多靶机其实非常贴近实战情景。因此 HTB 是一个很好的学习渗透测试靶场。 之前在 HTB 也玩过一些机器。里面的机器难度有好几个档次,insane 难度的一般都是极其困难的,这种机器一般让我对着大神的 Writeup 我可能都没有办法复现出来。之前也有在公众号上分享过几篇 H...
动画:用动画给女朋友讲解 TCP 四次分手过程
作者 | 小鹿 来源 | 公众号:小鹿动画学编程 写在前边 大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣、有货、有内容,也受到了很多读者的关注。很多读者留言说什么时候用动画讲一讲 TCP 四次挥手的过程,为了应大家的要求,今天我们就生动有趣的用动画给大家分享 TCP 四次挥手(分手)过程。 动画:用动画给...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
SQL基本语法入门 看这里就够了
SQL执行顺序 第一步:执行FROM 第二步:WHERE条件过滤 第三步:GROUP BY 分组 第四步:执行SELECT 投影列 第五步:HAVING条件过滤 第六步:执行ORDER BY排序 一、创建、删除库 -- 创建新数据库 CREATE DATABASE 数据库名; -- 删除数据库 DROP DATABASE 数据库名; 二、增加 1、添加列名、设置主键、设...
如何优化MySQL千万级大表,我写了6000字的解读
这是学习笔记的第2138篇文章 千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议。 从一开始脑海里开始也是火光四现,到不断的自我批评,后来也参考了一些团队的经验,我整理了下面的大纲内容。 既然要吃透这个问题,我们势必要回到本源,我把这个...
面试最后一问:你有什么问题想问我吗?
尽管,我们之前分享了这么多关于面试的主题: 高薪必备的一些Spring Boot高级面试题 面试必问:设计模式遵循的面向对象设计原则! 面试必问:怎么保证缓存与数据库的双写一致性? 27道高频Spring面试题,你能答对几个? 唠唠面试常问的:面向对象六大原则 一文高效图解二叉树面试题 Java面试中最高频的那20%知识点是什么? 百度面试题:求数组最大值 ... 然而,最后这个90%可见...
python 程序员进阶之路:从新手到高手的100个模块
在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python 学到什么程度可以面试工作?》,真实反映了 python 程序员在成长过程中的一些困惑。
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
Linux/C/C++ 不可错过的好书
来源:公众号【编程珠玑】 作者:守望先生 ID:shouwangxiansheng 前言 经常有读者让我推荐书籍,这次我就把我私藏的计算机书单分享给你们!不过由于时间匆忙,不会进行更加详细的介绍。 声明 由于每个人的情况不一样,推荐的书并不一定适合你,也不一定适合当前阶段的你,有的书籍可能存在内容重复,所以根据自己的阶段情况进行选择即可。虽说如此,以下书单中提单的书均为优质书籍。...
计算机处理器基础原理笔记
一、CPU指令电路 1. 计算机每执行一条指令的过程,可以分解成这样几个步骤。 (1)Fetch(取得指令),也就是从PC寄存器里找到对应的指令地址,根据指令地址从内存里把具体的指令,加载到指令寄存器中,然后把PC寄存器自增,在未来执行下一条指令。 (2)Decode(指令译码),也就是根据指令寄存器里面的指令,解析成要进行什么样的操作,是MIPS指令集的R、I、J中哪一种指令,具体要操作哪...
单点登录(SSO)
一、SSO(单点登录)介绍 SSO英文全称Single SignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 实现机制 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证...
漫话:什么是 https ?这应该是全网把 https 讲的最好的一篇文章了
今天这篇文章,讲通过对话的形式,让你由浅入深着知道,为什么 Https 是安全的。 一、对称加密 一禅:在每次发送真实数据之前,服务器先生成一把密钥,然后先把密钥传输给客户端。之后服务器给客户端发送真实数据的时候,会用这把密钥对数据进行加密,客户端收到加密数据之后,用刚才收到的密钥进行解密。如图: 当然,如果客户端要给服务器发送数据,也是采用这把密钥来加密,这里为了方便,我采用单方向...
HTML CSS整理笔记
常见字体单位: 1.em 移动端常用的字体尺寸单位,说白em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5。 但当div进行嵌套时,em始终按当前div继承的字体大小来缩放。 2.rem r是root的意思,即相对于根节点html的font-size进行缩放,当有嵌套关系时,嵌套关系的元素的字体大小始终按照根节点的字体大小...
史上最全的mysql基础教程
启动与停止 启动mysql服务 sudo /usr/local/mysql/support-files/mysql.server start 停止mysql服务 sudo /usr/local/mysql/support-files/mysql.server stop 重启mysql服务 sudo /usr/local/mysql/support-files/mysql.server resta...
为什么你学不会递归?告别递归,谈谈我的经验
可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! 可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用,有时候还容易被递归给搞晕。也有好几个人来问我有没有快速掌握递归的捷径啊。说实话,哪来那么多捷径啊,不过,我还是想写一篇文章,谈谈我的一些经验,或许,能够给你带来一些帮助...
大学四年,分享看过的优质书籍
数据结构与算法是我在大学里第一次接触到的,当时学了很多其他安卓、网页之类的,一开始就感觉纳闷,数据结构和算法学这个有啥用,再加上上的是一所野鸡大学,老师讲的也是模模糊糊,平时做项目、练习也几乎不用数据结构,所以考试应付应付就过了,也没太在意。 到了大三的时候,面临考研和就业了,突然看到学长考研的数据结构题和面试网站的要求,突然意识到数据结构和算法的重要性,真的很重要,重要的话说三遍,真的很重要,...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
史上最全正则表达式语法,文末附常用表达式!
废话少说,直接开始学习! 一、元字符 元字符是构造正则表达式的一种基本元素。 . :匹配除换行符以外的任意字符 w:匹配字母或数字或下划线或汉字 s:匹配任意的空白符 d:匹配数字 b:匹配单词的开始或结束 ^:匹配字符串的开始 $:匹配字符串的结束 匹配有abc开头的字符串:abc或者^abc 匹配8位数字的QQ号码:^dddddddd$ 匹配1开头11位数字的手机号码...
最近程序员频繁被抓,如何避免面向监狱编程!?
最近,有关程序员因为参与某些项目开发导致被起诉,甚至被判刑的事件发生的比较多: 某程序员因为接了个外包,帮别人写了个软件,结果这个软件被用于赌博导致被抓。 某公司利用爬虫抓取用户信息,最后被发现,导致该公司的程序员被抓。 某P2P公司暴雷,老板跑路,程序员被抓。 中科大博士卖“外挂”非法牟利300多万,被警方逮捕。 那么,作为一个程序员,如何避免这些坑呢?怎样尽可能的保护自己呢? 本文就从爬虫、赌...
一文搞懂什么是TCP/IP协议
什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件,操作系统之间的通信,所有这一切都需要一种规则.而我们就将这种规则称为协议 (protocol). 也就是说,TCP/IP 是互联网相关各类协议族的总称。 TCP/IP 的分层管理 TCP/IP协...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
学习 Java 应该关注哪些网站?
经常有一些读者问我:“二哥,学习 Java 应该关注哪些网站?”,我之前的态度一直是上知乎、上搜索引擎搜一下不就知道了。但读者对我这个态度很不满意,他们说,“我在问你,又不是问知乎,问搜索引擎。”你还别说,读者说得有道理。 于是我想,那就推荐一些吧。先说我心目中的前三名,但不局限于 Java 学习者。 1)Google 啥都不说了,说多了都是泪,可气的是 Robin 李的搜索引擎实在是不争气。说句...
哪些 Java 知识不需要再学了
张无忌在学太极拳的时候,他爹的师父张三丰告诫他一定要把之前所学习的武功全部忘掉,忘得越多就会学得越快。 同样的,自学 Java 的时候一定要先知道哪些 Java 知识不需要再学了,毕竟技术的更新迭代就好像火箭一样快,Java 的一些知识点早已经过时了。如果不懂得断舍离,那学起来就不免太痛苦了。 1)AWT 和 Swing 真不知道为什么,有些书籍还在介绍 AWT 和 Swing,这就好像不知道大清...
大学四年,我把私藏的自学「学习网站/实用工具」都贡献出来了
在分享之前,先说说初学者如何学习编程,这个话题想必非常的重要,要学好编程,给你一些学习网站也好、实用工具也好,但前提是你知道如何去学习它。 见过很多初学者,以及小鹿我刚开始学习的时候,也是自己瞎摸索,找不到路子,看什么书?看什么资料?编程的方向太多了,如果确定自己的方向?尤其是上大一、大二甚至大三还没有确定自己到底是学习前端还是后天,每天这学一点,那学一块,掌握那么多,没有一门精通的,去面试的时候...
面试:史上最全多线程面试题 - (锁&内存模型&线程)
多线程经典面试题59问。 1.什么是活锁、饥饿、无锁、死锁? 死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现 了这三种情况,即线程不再活跃,不能再正常地执行下去了。 死锁 死锁是多线程中最差的一种情况,多个线程相互占用对方的资源的锁,而又相互等 对方释放锁,此时若无外力干预,这些线程则一直处理阻塞的假死状态,形成死锁。 举个例子,A 同学抢了 B 同学的钢笔,B 同学...
相关热词 c# 增加元素 c#控制台简单加法 c# 服务端框架 c# 判断事件是否注册 c#中is和has c# udp 连接超时 c#词典 c#实现排列组合 c# oss 上传 c#判断输入的是否为ip