如何当好硬软件助理工程师——实习周报

如何当好硬软件助理工程师——实习周报(一)


文章目录

  • 如何当好硬软件助理工程师——实习周报
  • 前言
  • 一、问题积累
    • 1.git 指令
    • 2.Coding的使用
    • 3.代码中的知识点(HAL库、Flash读写)
      • a.gpio配置
      • b.flash配置
    • 4.贴片焊接
    • 5.封装尺寸标号与不同的电阻读取方法
      • a.封装尺寸标号
      • b.电阻读取方法
  • 总结

前言

对于没有实习经历的同学来说,第一次实习有两种方式,一:摆烂,只是上班学一下,半天做不出什么东西出来,被领导嫌弃,但是还能凑合用,算了,再培养几天吧。二、记的快,学的快,做的快,把教过的东西迅速记录,并且不重复提问(这样才不会被嫌弃),小公司领导老板看重,想留你下来,大公司或许可以给个转正机会,哪怕不给,知识是你自己学的,以后正式工作还能用。

一、问题积累

1.git 指令

这个指令主要用于版本管理,上传代码,给代码加分支的之后需要用到,我自己在电脑上下载了一个git,常见的git指令如下:

在下载安装完成后按照如下步骤:

//写入标签
a.git config --global user.name 你的用户名(可以随意起)
b.git config --global user.email 你的邮箱名(可以随意起)
//检验是否写入成功。
c.cat ~/.gitconfig
//然后在github或者Coding上建立自己的代码仓库,这个看个人公司需求选择。
//在当前代码工程目录处打开终端,并进行初始化
d.git init  //初始化git仓库
//将当前代码保存到本地代码仓库
e.git add .   //注意这个点与add之间有空格,点的意思是指当前文件夹所有文件
//将项目从暂存区保存到本地仓库
f.git commit -m "这是个没用的工程文件"  //引号包含的是一些备注信息
//再配置远程仓库的地址,这个时候需要复制github或者Coding的仓库地址
g.git remote add origin 远程仓库地址
//将本地仓库项目传到远程仓库
h.git push -u origin master     //第一次写-u,后面就可以用git push 代替git push origin master//如果需要确保该项目每次的改动都会更新,那么每次都需要pull一下
i.git pull
//当其他人要协助你改动该项目代码的时候,切换到想要保存项目的文件夹,然后下载
j.cd 想要保存的文件夹地址
k.git clone 仓库链接//一些操作指令
git pull origin master  //把主分支拉下来
git push <远程主机名> <本地分支名>:<远程分支名>  //创建远程分支git checkout -b (branchName) //创建本地分支并切换
//创建本地分支并切换(第二种方式)
git branch dev       //创建分支
git checkout dev     //切换到分支git branch          //如果不添加任何参数,则代表显示本地所有分支,分支名前面有*号的代表当前正处于哪个分支
git branch -v       //查看本地分支+上次提交的信息
git branch -vv -a   //查看本地分支+上次提交的信息+本地和远程分支的关系+远程分支
git branch -r       //查看远程分支
git branch -d (branchName)  //删除本地分支
//删除远程分支
git push <主机名> -d <分支名>
git checkout (branchName)   //切换本地分支
git branch (branchName) //创建本地分支

对应操作截图:
a.安装

b.安装好了之后右键可以看到Git GUI和Git Bash,前者是可视化工具,后者是命令工具(一般用这个)。


c.创建一个工程测试一下,创建好之后右键Git bash

然后就是上面的指令操作了

2.Coding的使用

进入Coding官网(https://weallknow.coding.net/),问老板要个企业邮箱注册。让管理员/老板把你拉进入项目组,利用git指令进行操作。
个人使用方法:
a.个人邮箱注册,创建一个项目,随便创建一个代码仓库,并初始化(readme.md文件就是markdown文件,比如我现在用的csdn写博客就是用的markdown——一种标记语言)。


b.点击仓库右上角的克隆即可得到链接地址

c.push的时候需要登录验证(不然谁都能向仓库传垃圾了)

d.遇到了一个错误,push失败

e.看了一下其他文章,说是"我们在创建仓库的时候,都会勾选“使用Reamdme文件初始化这个仓库”这个操作初识了一个README文件并配置添加了忽略文件。当点击创建仓库时,它会帮我们做一次初始提交。于是我们的仓库就有了README.m和.gitignore文件,然后我们把本地项目关联到这个仓库,并把项目推送到仓库时,我们在关联本地与远程时,两端都是有内容的,但是这两份内容并没有联系,当我们推送到远程或者从远程拉取内容时,都会有没有被跟踪的内容,于是你看git报的详细错误中总是会让你先拉取再推送,但是拉取总是失败。"

f.先使用

git pull --rebase origin master

再push

git push -u origin master

push成功

3.代码中的知识点(HAL库、Flash读写)

HAL固件库是Hardware Abstraction Layer的缩写,硬件抽象层

a.gpio配置

//与大多数32位机定义相同,利用结构体赋值,选择引脚,输入模式,上拉下拉选择,引脚端口选择。GPIO_InitTypeDef  gpioinitstruct1={0};gpioinitstruct1.Pin    = GPIO_PIN_4;gpioinitstruct1.Mode = GPIO_MODE_INPUT;gpioinitstruct1.OpenDrain = GPIO_PUSHPULL;    gpioinitstruct1.Debounce.Enable = GPIO_DEBOUNCE_DISABLE;gpioinitstruct1.SlewRate = GPIO_SLEW_RATE_HIGH;gpioinitstruct1.DrvStrength = GPIO_DRV_STRENGTH_HIGH;gpioinitstruct1.Pull = GPIO_PULLUP;HAL_GPIO_Init(GPIOD, &gpioinitstruct1);//利用HAL库读取GPIO对应引脚此时的电压值HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_4);

b.flash配置

在写入或者读取Flash内部数据的时候我们需要设定数据的起始以及结束地址,这一块对于代码的数据类型要求比较严格,一定要注意uint8_t和uint16_t还有uint32_t等细节。

//定义好程序起始结束地址
#define FLASH_PROGRAM_ADDRESS_START             0xA000
#define FLASH_PROGRAM_ADDRESS_END               0xA200

a.Flash写入

//以写入5个8位数据为例
uint8_t ADDR_cnt = 0;
while (FLASH_PROGRAM_ADDRESS_START < FLASH_PROGRAM_ADDRESS_START+5+1)//一直读到起始后的第六个空间
{//HAL_FLASH_Program函数的第一个输入可以选择是BYTE、HALFWORD、WORD类型的数据HAL_FLASH_Program(FLASH_TYPEPROGRAM_BYTE, FLASH_PROGRAM_ADDRESS_START, Record[ADDR_cnt]);FLASH_PROGRAM_ADDRESS_START  = FLASH_PROGRAM_ADDRESS_START  + 1 ;//由于数据是8位的,故地址每次仅+1个字节ADDR_cnt ++;
}

b.Flash读取

//以读取5个8位数据为例
uint8_t ADDR_cnt = 0;
while (FLASH_PROGRAM_ADDRESS_START < FLASH_PROGRAM_ADDRESS_START+5+1)//一直读到起始后的第六个空间
{Record[ADDR_cnt] = FLASH_PROGRAM_ADDRESS_START ;  //将对应地址的数据存入Record数组FLASH_PROGRAM_ADDRESS_START  = FLASH_PROGRAM_ADDRESS_START  + 1 ;//由于数据是8位的,故地址每次仅+1个字节ADDR_cnt ++;
}

c.Flash擦除
要想写入数据,我们必须要先擦除
官方代码是在定义结构体之后选择擦除类型、擦除地址。

#define FLASH_EraseInitTypeDef   sFlashErase;
#define FLASH_PROGRAM_ADDRESS_START             0xA000
#define FLASH_PROGRAM_ADDRESS_END               0xA200sFlashEraseInit.TypeErase = FLASH_TYPEERASE_PAGES;
sFlashEraseInit.PageAddress = FLASH_PROGRAM_ADDRESS_START;
sFlashEraseInit.NbPages = (FLASH_PROGRAM_ADDRESS_END -FLASH_PROGRAM_ADDRESS_START)/FLASH_PAGE_SIZE + 1;
//并非完整例程,请自行查阅资料

对Flash的操作除了上述三种之外还有一些确认擦除、读、写操作。

4.贴片焊接

平时基本都是焊排针这些直插的元件,只是焊过几次贴片,没想到在公司焊接的时候完全和小白一样。我这边搜到了一些贴片焊接知识放在下面了。
用到铜丝松香酒精的焊法:别人的博客
公司教我的:
1.在板子上涂一些焊锡膏(用镊子,能铺满就行,看情况而定)
2.此时镊子比较粘,可以粘起小元件,然后放到焊锡膏上面
3.用热风枪加热,切记靠近时要慢慢移动,而且一定要垂直,不然把其他元件吹走了。
4.板子和镊子都比较粘,用那个酸性液体洗干净(不好意思我忘了那个叫啥)。

5.封装尺寸标号与不同的电阻读取方法

进了公司物料房我第一反应是,焊接的东西在哪,找了半天电阻之后,发现怎么和板子上的不一样大,好家伙,原来还有不同的封装大小标号。我把能找的都找一下放下面。

a.封装尺寸标号

按照尺寸大小分为:
0201是目前最小的尺寸(0603) 0.6*0.3 长:10.6 宽:0.3(单位:mm 下同)。

0402是1005 1.0*0.5。

0603是1608 1.6*0.8。

0805是2012 2.0*1.2。

1206是3216 3.2*1.6。
所以其实看标号就知道哪个大哪个小了。

b.电阻读取方法

我们常见的基本都是三数码法,前两个有效位,最后一个是10的几次方。但是我在公司焊接的时候前面没问题,突然找不到10K的电阻了,绝,原来它突然换名字了。
电阻器阻值的5种标示方法:

第一种,直标法:用数字和单位符号在电阻器表面标出阻值,其允许误差直接用百分数表示,若电阻上未注偏差,则均为±20%。

第二种,文字符号法:用阿拉伯数字和文字符号两者有规律的组合来表示标称阻值,其允许偏差也用文字符号表示。符号前面的数字表示整数阻值,后面的数字依次表示第一位小数阻值和第二位小数阻值。表示允许误差的文字符号文字符号:DFGJKM允许偏差分别为:±0.5%±1%±2%±5%±10%±20%

第三种,数码法:在电阻器上用三位数码表示标称值的标志方法。数码从左到右,第一、二位为有效值,第三位为指数,即零的个数,单位为欧。偏差通常采用文字符号表示。

第四种,色标法:用不同颜色的带或点在电阻器表面标出标称阻值和允许偏差。国外电阻大部分采用色标法。

黑-0、棕-1、红-2、橙-3、黄-4、绿-5、蓝-6、紫-7、灰-8、白-9、金-±5%、银-±10%、无色-±20%

当电阻为四环时,最后一环必为金色或银色,前两位为有效数字,第三位为乘方数,第四位为偏差。

当电阻为五环时,最後一环与前面四环距离较大。前三位为有效数字,第四位为乘方数,第五位为偏差。

第五种,没错我就是不认识这种标法。
E-96标准计数法
E-96计数法最后的字母代表乘数,如A表示10的0次方,B表示10的1次方,等,具体对应关系见下表。前面的数字并不是代表阻值,而是阻值代号(注意:这个字母只有A-H和XYZ这几个,没有JKLM乱七八糟的字母)。
A到H分别对应10的0到7次方,XYZ则对应-1,-2,-3次方。

这里还有电阻命名型号给大家(我)看,防止大家(我)被领导嫌弃。

总结

第一周实习,我是相当相当的喜欢,至于其他人应该就是相当相当的不喜欢哈哈哈,毕竟太菜了。但是好在学的够快,只要我学的速度比老板kick我的速度快,就还能留在公司混一混。

如何当好硬软件助理工程师——实习周报(一)相关推荐

  1. 2021年4月27日 华为Cloud AI 通用软件开发实习面试(一面)

    title: 2021年4月27日 华为Cloud AI 通用软件开发实习面试(一面) tags: 面经 2021年4月27日 华为Cloud AI 通用软件开发实习面试(一面) 自我介绍(这个地方由 ...

  2. 软件开发实训需要用到的算法和结构_软件开发实习个人总结

    软件开发实习个人总结 软件开发实习不仅可以让我们掌握技术知识,更重 要的是学习到很多新的东西.以下是软件开发实习个人 总结,欢迎阅览 ! 软件开发实习个人总结 1 这次实训使我们明白我们所欠缺的不仅仅 ...

  3. bucket sort sample sort 并行_IBM布局AI硬件大杀器:硬软件并行开发、开源模拟AI工具包...

    原标题:IBM布局AI硬件大杀器:硬软件并行开发.开源模拟AI工具包 智东西(公众号:zhidxcom) 编 | 子佩 智东西11月4日消息,为了解决AI对数据.能源和内存资源的巨大需求,IBM一直致 ...

  4. 软件技术实习_当您还在学校时,如何获得一流的技术实习机会和技术工作

    软件技术实习 by Michael Deng 邓小平 当您还在学校时,如何获得一流的技术实习机会和技术工作 (How to land a top-notch tech internship - and ...

  5. F5/LVS/Nginx/HAProxy硬软件级网络负载均衡介绍

    F5/LVS/Nginx/HAProxy硬软件级网络负载均衡介绍 1 硬件级的负载均衡 常见的商用硬件负载均衡器:NetScaler.F5.Radware.Array 优点: 1)专业团队维护,能够直 ...

  6. java实习第一周周报,大学生实习周报

    无论学习什么专业,从事什么职业,我们都需要提前实习啦,把理论知识结合起来运用到实践当中去.下面是由出国留学网小编为大家整理的"大学生幼儿园实习周报十周",仅供参考,欢迎大家阅读. ...

  7. 华为无线通用软件开发 实习一面二面

    2022年秋招/春招/提前批/大厂面经整理(持续更新中~) 华为无线通用软件开发 实习一面二面 一面 50min 1.自我介绍(自己介绍了一下专业.院校.成绩.做过的项目.参加的竞赛) 2.面试官:你 ...

  8. app营销实训报告_实习报告:软件销售实习报告

    实习报告:软件销售实习报告 本文是关于实习报告范文:软件销售实习报告范文的文 章! 实习报告范文:软件销售实习报告范文 一.实习单位简介 xxx 市 xxx 科技有限公司于 20xx 年在 xxx 正 ...

  9. 计算机硬件软件资料,计算机硬软件资料

    <计算机硬软件资料>由会员分享,可在线阅读,更多相关<计算机硬软件资料(16页珍藏版)>请在人人文库网上搜索. 1.第二课 认识计算机硬件和软件,计算机系统的组成 认识计算机的 ...

最新文章

  1. mysql5.6配置semi_sync
  2. 如何准备启动敏捷-迭代0如何做?
  3. python语言的语法_Python语言 中的一些特殊语法
  4. iphone 抹除设备是什么意思_SMT设备有哪些,SMT是什么意思?
  5. mybatis源码学习
  6. 世界上最美的40个小镇,你见过多少个?
  7. make时候说找不到makefile_优秀自律的句子:找不到理由继续的时候,就找个理由重头来过吧...
  8. 使用 golang-plugins 时要避免的事情
  9. 默认大小_如何更改 Linux 控制台字体类型和大小 | Linux 中国
  10. 278.第一个错误版本(力扣leetcode) 博主可答疑该问题
  11. stdafx.h到底有什么用
  12. 【MATLAB】进阶绘图 ( imagesc 缩放颜色显示图像 | imagesc 函数 | Colormaps 颜色图 )
  13. 【javaEE】——计算机基础知识(进程的理解和通信)01
  14. 你珍藏多年,不舍得分享的网站有哪些?
  15. 服务器销售周总结怎么写,网管周工作总结范文的内容
  16. 如何查看有关计算机系统类型,电脑系统类型在哪查看
  17. js判断background颜色明暗色调,以设置白/黑字体颜色
  18. php中单选框可以默认选中吗,php selectradio和checkbox默认选择的简单示例
  19. 加息+四巫日铁矿石大跌,棕榈油认沽最高30倍,豆一09-01继续反套2022.6.15
  20. android安装并启用新输入法

热门文章

  1. vue 动态设置 echarts 画布大小 更新图表数据
  2. You have enabled checking of packages via GPG keys. This is a good thing.  However, you do not have
  3. 猴子选大王 java_猴子选大王(java求解) | 学步园
  4. OWASP TOP 10-2021年十大Web应用安全风险榜单
  5. linux 日历,计算器,nano编辑器,开关机、重启,
  6. 最终,还是没能成为吹牛逼的资本!(二)
  7. 配置ST_Geometry查询
  8. 机器学习—多元线性回归案例
  9. linux三剑客有什么区别,学习Linux三剑客
  10. 量子计算 1 三个命题