1.同时控制同个端口的多个LED,在初始化的时候,使用或运算符"|",就不用再cv一份代码进行初始化了。
2.LED,发光二极管
二极管:压降,经过自己的时侯电压会自动降低额定的伏数,0.3V或0.7v,
电流不能大于10mA,
限流电阻最小值=( 3300-300)/10 = 300欧姆。
3.引脚悬空
答:那么电阻约等于无限大,且静电积累会造成影响,导致引脚损坏。
4.按键设计的时候,为什么要加一个上拉电阻呢?而且电阻阻值设置为10K?
答:给单片机输入一个确定的电平,不加上拉电阻,单片机的输入电压没有一个参考对象,无法准确地判断为高电平还是低电平。接地,地为参考对象,则为低电平,接VCC,有个上拉电阻,上拉电阻为参考对象,为高电平。同时,也增加了抗干扰能力。
5.推挽输出作用
答:提高驱动电流。
6.上拉电阻设置为多大合适呢?
答:其实330/470/510/1K/2K /3K3/4KT/10K都是没有问题的。
但是电阻值越小,其功耗会增加,例如330欧,通过的电流则是10mA,如果是电池进行供电,那么其损耗就太大了,影响续航能力。但是电阻也不是越大越好,否则识别不了电流,所以选择一个折衷的方案,也可以说是一个经验值。
设置为10K,3.3V/10K=0.33mA。
弱上拉用10K,强一些用4.7K的。
5V一般用10K,3.3用4.7多一点。
总结:上拉电阻的选择,上拉电阻选择越大,功耗越低,但是要保证通过的电流能驱动外设和IO口,上拉电阻选择越小,功耗越大,但是要保证当为低电平时,io口端的电压要在低电平的电压值的范围之内, 经验值为4.7k到10k之间。
7.TTL识别电平如下图所示
8.芯片外部晶振大小
32.768KHz:看时钟树的框图可知,是提供给芯片内部RTC时钟的,32768刚好被256和128分频,得到1HZ,2的15次幂,即1S的定时。
8MHz:连接到芯片内部的锁相环回路,进行倍频,提供给CPU。
需要注意使得是:挂载在不同总线的最高频率是不一样的,例如STM32F407,CPU最高168MHz。
APB1,高性能外围设备总线1,最高42Mhz;
APB2,高性能外围设备总线2,最高84Mhz;
中间有个分频器,用来降低频率,具体数值从时钟树进行查看。
9.如何查看外设挂载在哪条总线上面
答:具体从stm32f4xx_rcc.h头文件进行查看外设是哪条总线的。
10.MCO1和MCO2是什么?
答:控制时钟输出,即也可以提供给外部输出时钟。
11.main函数之前,还有其他函数需要先运行吗?
答:系统初始化函数,在启动文件中可以看到,SystemInit。
里面主要是配置PLL,有个SetSysClock()函数。
12.关于配置PLL
答:在数据手册的RCC——PLL内容,有计算公式,使用外部时钟的时候,如果使用外部晶振,那么要注意好参数因子M/N/P/Q的取值,例如在STM32F407的头文件stm32f4xx.h中,所设置的HSE为25M,而开发板提供的一般是8M,此时就要进行修改了,ctrl+f查找到25000000的,修改为8000000,想要输出想要的数值具体得看参数因子的设置 是否正确,只要涉及到倍频,就会有计算公式。
分割线
继续
13.volatile关键字
volatile关键字分析,往往应用在三种场合
1)多线程编程共享全局变量的时候,该全局变量要加上volatile进行修饰,让编译器不要优化该变量
2)裸机编程的时候,某函数与中断服务函数共享全局变量的时候,该全局变量要加上volatile进行修饰,让编译器不要优化该变量。
3)ARM定义寄存器的时候,寄存器是指向一个地址,要加上volatile进行修饰,让编译器不要优化该变量。
编译器不要优化该变量也就是不对该资源进行保护,让任何程序随时都可以对它修改。
例如,我们在全局变量定义了一个变量a,在main函数中赋值为10,a=10;
又在一个中断服务函数中,设置a=11;那么当执行完中断服务后,a的值还是没有改变,
因为默认对a进行了资源保护,要想在中断服务函数修改a变量的值,必须在声明a变量的时候在前面加上关键字volatile,让变量a可读可写,可以被修改。
14.STM32任何一个GPIO引脚都能够实现外部中断,但是例如如下图所示,PA0~PI0只能选择一个,STM32总共有16条GPIO外部中断线,即可以设置16个GPIO外部中断。所以在初始化GPIO外部中断的时候,还需要配置外部中断线,
EXTI_InitTypeDef EXTI_InitStructure。
部分图示如下,其中中断优先级分组只设置一次,防止出现混乱的现象。
只要修改中断优先级分组,发现硬件的抢占优先级和响应优先级都是发生变化,导致中断管理紊乱。
中断服务函数一般写在stm32f4xx_it.c中,中断向量名称在启动文件中可以找到
最容易忘记的就是在去驱动开头开启系统时钟!!!
16.抢占优先级与响应优先级区别
1)高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
2)抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。
3)抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
4)无论是抢占优先级还是响应优先级,优先级数值越小,就代表优先级越高。
17.调整堆栈的大小
答:在启动文件里面设置,如果栈大小不足,会导致栈溢出,堆比较少使用。
0x4000 也就是16384字节,16384÷1024=16,即16KB, STM32的数据RAM通常是满足需求的。
18.值得一提是的,国外在写底层相关函数的时候,例如sFLASH_LowLevel_Init(void),采用lowlevel来描述。
19.程序下载没有反应,如何排除问题?
答:一看是不是程序关了sw和jtag,二看有没有识别到芯片,三看boot引脚,四看晶振。
上一篇:STM32设置内核定时器延时us
下一篇:STM32HAL库使用DAC输出任意指定电压
推荐阅读最新更新时间:2024-11-10 10:38
推荐帖子
- 51单片机程序设计代码
- 有用的东西大家一起分享51单片机程序设计代码好东西顶顶顶顶好东西啊收藏了~!好东西必须要顶啊
- abc19900301 51单片机
- dsp模拟fft出现问题
- fft.asm,ERROR!atEOF:Thefollowingsymbolsareundefined:sine1cosine1该怎么处理,本人新手望高人指点!dsp模拟fft出现问题sine1和cosine1未定义...
- bobyviczb DSP 与 ARM 处理器
- LCD屏驱动电路
- LCD屏驱动电路附件中以第二个为准 LCD屏驱动电路很好顶顶顶顶顶谢谢先谢了,顶顶顶顶顶。哈哈谢谢很好好资料啊,学习学习感觉呱呱做了好多东西啊,肯定是高手一个,希望能多多交流谢谢呱呱
- songbo 单片机
- 【 正点原子瑞芯微RV1126测评】10 串口4和 串口5配置
- 【正点原子瑞芯微RV1126测评】10串口4和串口5配置【正点原子瑞芯微RV1126测评】1硬件篇【正点原子瑞芯微RV1126测评】2应用环境搭建一些问题解决【正点原子瑞芯微RV1126测评】3编译环境搭建【正点原子瑞芯微RV1126测评】4GPIO篇之led【正点原子瑞芯微RV1126测评】5input子系统【正点原子瑞芯微RV1126测评】6socket服务器和客户端编程【正点原
- damiaa 国产芯片交流
- Qorvo02 画着玩儿的 也有点实际用途
- PA详细介绍 PA链路的简单分配及单元工作内容 整体原理图如图所示: 图1:整体原理图 整体PCB布局如图所示: 图2:整体PCB图布局3D显示Signal走向 整个布局介绍:
- btty038 RF/无线
- TI秀+拥有了ti处理器产品线的热门demo板
- 活动很以外,很多申请或购买的芯片,自己设计的开发工具都放在单位里,只能传些在家中的板子了!或者直接在EEWORLD中搜索使用TI芯片有关DIY活动或制作。这些开发工具,有些是自己购买的,有些是论坛里活动团购,或论坛赠送的!c2000系列的有TMS320F28335,TMS320F28027M3有LM3S811,LM3S8962,LM3S9B96M4有LM4F232,LM4F120armA8:AM335xStarterKiteZ430-ChronosCC430F61
- 蓝雨夜 微控制器 MCU
设计资源 培训 开发板 精华推荐
- LT1172HVCQ、-5.2/1.25A 负降压转换器的典型应用
- 使用 ROHM Semiconductor 的 BU4919 的参考设计
- AD8604ARQZ 高端运算放大器电流监控器的典型应用
- LTM8042EV 演示板、32V、1A 模块升压 LED 驱动器
- LT3692AHUH、3.3V 和 1.2V 2 级双路降压多频转换器的典型应用电路
- EV-AD74412RSDZ,用于评估 AD74412R 四通道、软件可配置输入/输出的评估套件
- 适用于STM32F413ZH MCU的STM32 Nucleo-144开发板,支持Arduino,ST Zio和morpho连接
- ADA4858-3ACPZ 两个视频负载的视频驱动电路典型应用电路
- 【ART-Pi】 ART-PI 扩展板 Sense HAT
- 具有 2.5 uA 静态电流的 LT8614 42V、4A 同步降压型静音开关的典型应用
- EEWORLD大学堂3月精彩视频&课程快报
- 泰克 4200A-SCS 带您走进半导体材料测试世界 下载赢好礼!
- 下载Intel白皮书们,赢礼品获新知
- Maxim 利用nanoPower创新技术,致力于降低系统的静态功耗 看视频答题赢好礼! 还有免费开发板等你拿
- 有奖活动|NI 助您设计更靠谱的数据采集系统
- #每日好读书#说一说你看过的那些好书
- 论坛有5只冰墩墩等你来赢:一起 DIY 冰墩墩!
- 【泰有聊】系列技术文章连载1:示波器“芯”升级,聊一聊TEK061/041 ASIC创新平台
- 答题赢好礼:ADI MEMS工业监测助力机器大健康发展
- 2022 Digi-Key KOL 视频系列:你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍