笔者最近在找工作,因此对应聘C/C++嵌入式开发工程师容易被问到,或者经常搞不清楚的问题做一个汇总,也希望能对找工作的小伙伴起到帮助参考的作用。本篇集中于嵌入式开发中,自己的项目中容易碰到的问题。
因为是自己总结的,可能会存在错误,还烦请各位读者批评指正。
1. 定时器属于外设。
2. 看门狗定时器:被监视的程序事先将设定的值写入WDT后启动,WDT每隔一段时间便减掉写入的值。当程序正常运行时,处理结束前会对WDT清零再结束。
3. 轮询:在等待GPIO(通用I/O端口)的输入从0变成1时,程序可以一定时间间隔来检查GPIO的状态,这种处理被称作“轮询”。
4. 中断:产生于单片机内部和外部的各种设备中。
- 开关、感应器的中断信号由“IRQ”的引脚接收,被称作外部引脚中断
- 来自单片机内部的定时器和GPIO、串行通信设备UART等外设机器的中断被称为外部设备中断。此时,中断信号直接从各外部设备通知中断控制器。
EXTI和NVIC的区别:
EXTI是外部中断的配置,NVIC是中断优先级、开启的配置。
即:
- NVIC是ARM核心,EXTI属于外设
- 配置NVIC来使能相应的EXTI中断。平时配置时,既要配置EXTI,也要配置NVIC。
- NVIC是中断控制,可以控制很多,包括ADC中断、EXTI外部中断、串口中断、定时器中断。即:不同的外设中断对应着不同的中断源。
5. 把某一个变量的第三位置0:
int a;
a&=~(1<<2);//把a的第三位置0
原理:把1左移两位,就只有第三位是1,其它位是0;
然后再取反,就只有第三位是0,其它位是1;
然后和a按位相与,就完成了。
6. TIM5_CH4,输出4路PWM,输入捕获
7. 协议:标记位 版本位 消息类型 消息长度 受控设备类型 受控设备功能类型 命令位
8. WS2812b(稍后搞到单独一篇文章里面去)
WS2812b 遵循单线归零码的数据协议。每经过一个像素点的传输,信号减少24Bit.
9. STM32定时器的PWM输出功能,是通过CNT与CCR寄存器的数值比,直接控制对应引脚输出高低电平的。
我们要不断地改变定时器CCR的数值,来控制对应的I/O发送信号0还是信号1,
10 . 如果一个任务正在等待某个事件,则称这个任务处于“阻塞态”
本文总结了嵌入式开发中常见的问题,包括定时器、看门狗定时器、轮询与中断机制、EXTI和NVIC的区别、位操作、PWM输出以及STM32定时器的应用。内容涵盖了单片机工作原理和实际应用,适合C/C++嵌入式开发工程师参考学习。
&spm=1001.2101.3001.5002&articleId=107170152&d=1&t=3&u=3e95126c40084d2dbe3a734ee2626e2b)
1518

被折叠的 条评论
为什么被折叠?



