最后
小编综合了阿里的面试题做了一份前端面试题PDF文档,里面有面试题的详细解析
虽只说了一个公司的面试,但我们可以知道大厂关注的东西并举一反三,通过一个知识点延伸到另一个知识点,这是我们要掌握的学习方法,小伙伴们在这篇有学到的请评论点赞转发告诉小编哦,谢谢大家的支持! 开源分享:docs.qq.com/doc/DSmRnRG…
CubeMX新建工程,选择芯片,配置时钟树,外部晶振以及调试接口。具体设置可参考使用cubemx配置stm32(二)__核心配置
然后按照下表配置A0 - A3 ,芯片74HC595的 DS RCK (STCP)SCK(SHCP),
配置完成后生成代码
定义全局变量,和函数,在main函数的while中循环调用,时间控制函数和数码管函数通过一个全局变量 index联系起来
CubeMX生成的代码有“/* USER CODE BEGIN WHILE / ” “ / USER CODE END WHILE */”在BEGIN,END之间加入的代码不会在重新配置时被覆盖掉
找到 USER CODE BEGIN 0 ,在后面写上三个函数的具体定义
代码如下:
uint8_t index=0;
const uint8_t numTab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9阴码
static void SMG_Task(void);
static void HC595_WriteData(uint8_t data);
static void TIMER_Task(void);
void SMG_Task(void)
{
static uint32_t count=0;
static uint8_t step=0;
switch(step)
{
case 0:
{
HAL_GPIO_WritePin(A1_GPIO_Port,A1_Pin,GPIO_PIN_SET);//打开位选A1
HC595_WriteData(numTab[index]);//写入段选数据
step=1;
}
break;
case 1:
{
count++;
if(count>=10000)
{
count=0;
step=0;
}
}
break;
}
}
void HC595_WriteData(uint8_t data)
{
HAL_GPIO_WritePin(RCK_GPIO_Port,RCK_Pin,GPIO_PIN_RESET);
for(uint8_t i=0;i<8;i++)
{
HAL_GPIO_WritePin(SCK_GPIO_Port,SCK_Pin,GPIO_PIN_RESET);
if(data&0x80) //1000 0000 取最高位的值
{
HAL_GPIO_WritePin(DS_GPIO_Port,DS_Pin,GPIO_PIN_SET);
}
else
{
HAL_GPIO_WritePin(DS_GPIO_Port,DS_Pin,GPIO_PIN_RESET);
}
HAL_GPIO_WritePin(SCK_GPIO_Port,SCK_Pin,GPIO_PIN_SET);
data=data<<1;
}
HAL_GPIO_WritePin(RCK_GPIO_Port,RCK_Pin,GPIO_PIN_SET);
}
总结一下
面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。
还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。
为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。
前端面试题汇总
JavaScript
性能
linux
前端资料汇总
前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。