蓝桥杯-嵌入式 简单笔记和常见问题

蓝桥杯-嵌入式 简单笔记和常见问题


前言

如今大四,作为一个双非二本的学生,有一些曾经的笔记想要梳理一下,寄存在网上,以免遗失,亦或者作为一个微不足道的分享。


一、蓝桥杯-嵌入式部分

关于CT117E(即新版的蓝桥杯嵌入式开发平台)的新手须知:

  1. CT1117E-4有两个USB接口,右边的没有DAP调试器,无法正常下载程序。
  2. Serial wire串口设置。
  3. CT117E的晶振是24MHz。
低速low:5MHz
中速Medium:25MHz
高速High:50MHz
超高速VeryHigh:120MHz
  1. 常见的GPIO的API(API即预设好的函数或方法):
GPIO_PIN_all 所有引脚(all要小写,非大写)

void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin,GPIO_PinState PInState); //设置引脚为高低电平

Void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin);//电平进行一个翻转
  1. VDD = 3.3V电源
  2. 锁存器的作用是怕在运行LCD的同时扰乱LED
    在这里插入图片描述
  3. CT117E的独立按键是有外部上拉电阻的
  4. Pullup是上拉;Pulldown是下拉
  5. 中断函数里面不要出现延时函数,容易卡死。而且中断本就是快进快出的功能。
  6. 弱定义(weak)的函数名一定要写正确。
  7. 常用的格式化输出表示
%d:用于输出十进制有符号整数。
%f:用于输出十进制浮点数字。
%x或%X:用于输出十六进制。
%c:用于输出单个字符。
%%格式控制符:用来输出百分号%,在输出时需要使用两个百分号连在一起。
  1. 在STM32中,EXTI指的是外部中断(External Interrupt)控制器。
  2. 中断频率 = 输入频率 / (psc+1) /( counte+1) 中断频率就等于PWM产生的频率
 __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__)
在运行时设置TIM Autoreload Register值,而不需要再调用任何Init函数。

__HAL_TIM_SetCompare
HAL_TIM_Aliased_Macros为遗留目的维护的别名宏
  1. STM32G431的定时器是4进6出。
  2. 假设时钟脉冲是1MHz,就是时钟脉冲每1ms增加一次,以此可以知道时间。
  3. uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel) //从Capture Compare单元读取捕获值,用于PWM的调制。

二、常见问题

1.编译器报错.o文件

原因:多余的外部引用。
代码如下(示例):
解决方法:查找Error提示中的文件,检查其中的参数是否有多余的extern。

2.按键无法长按,无法重复按

在这里插入图片描述
解决方法:
1.在cubemax把四个按键对应的引脚都定义。
2.把未引用的引脚注释掉,避免电平混乱。

3.为什么ADC模块取值需要乘3再除4096?

答:ADC是模拟量转数字量,模拟电压这里最高是3.3V,所以乘3.3,然后数字量是12位,所以除4096(2^12)。可以这样理解,就是我把模拟电压转换成12位的数字量(它内部有个12位的寄存器),除以满量程4096,然后乘以3.3(最大量程是3.3V),乘除先后关系调一下。

4.the format string ends before this argument(格式在此参数前结束)

在这里插入图片描述
解决方法:检查参数中是否少了%。

5.三行消抖的具体解释

在这里插入图片描述

6.重定向的具体解释

在这里插入图片描述

总结

一般遇到问题:60%的配置和初始化问题,30%逻辑问题,10%的不理解。

所以,细心耐心的态度比精巧的算法更为重要。希望同学能够读有所获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值