本来打算回学校在写这篇博客,但是昨天跟我媳妇打电话花了我近50块的电话费,今天一咬牙,冲了30块钱流量,我太难了
十月一回家没有网,弄了一下107开发板的基本外设,重新巩固一下知识点,所谓基础不牢地动山摇。一定要学好基础,然后在深入更多的知识的时候才会得心应手,不要不信我说的,我以前也是这样想,结果你们也都看见了,回头补习之前的知识了吧。以下代码是我自己根据单片机参考资料,以及官方手册自己编写的代码所写,资料也已经上传到我的资源,下面是链接,这是我编写的32库,学要的可以点击链接下载。https://download.csdn.net/download/qq_40831778/11829809
言归正传。基于STM32基本外设的学习
一、准备工作
单片机:STM32103单片机
二、开始学习
2.1.基础GPIO学习
GPIO_MoDe可以有以下几种模式
1.GPIO_Mode_AIN 模拟输入模式
2.GPIO_Mode_IN_FLOATING 浮空输入模式 按键的模式
3.GPIO_Mode_IPD 下拉输入模式
4.GPIO_Mode_IPU 上拉输入模式
5.GPIO_Mode_Out_OD 开漏输出模式
6.GPIO_Mode_Out_PP 推挽输出模式
7.GPIO_Mode_AF_OD 复用开漏输出模式
8.GPIO_Mode_AF_PP 复用推挽输出模式
常用函数
1.GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7); 读取指定端口管脚的输入
2.GPIO_ReadInputData(GPIOC); 读取指定的 GPIO 端口输入
3.GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);读取指定端口管脚的输出
4.GPIO_ReadOutputData(GPIOC); 读取指定的 GPIO 端口输出
5.GPIO_ResetBits(GPIOD,GPIO_Pin_2); 引脚拉低
6.GPIO_SetBits(GPIOD,GPIO_Pin_2); 引脚置高
下面是GPIO初始化函数
2.2外部中断
关于外部中断配置问题
1.首先我们需要把对应外设的,连接到内部中断线,对应管脚和中断线是对应的
2.配置中断线,对应引脚是多少,中短线就是多少,@例 GPIO_Pin0 对应中断线就是0
3.设置外部中断的触发模式, EXTI_Trigger 有3种 需要我们根据实际情况选择
3.1 EXTI_Trigger_Falling 设置输入线路下降沿为中断请求
3.2 EXTI_Trigger_Rising 设置输入线路上升沿为中断请求
3.3 EXTI_Trigger_Rising_Falling 设置输入线路上升沿和下降沿为中断请求
4.配置中断源 ,中断线是多少,中断源就是多少
5.配置优先级,然后使能就好了
6.配置中断服务函数 EXTI_GetITStatus(EXTI_Line0) != RESET 确认中断是否被触发,一定要对应上之前配置好的中断线
下面是外部中断初始化函数
2.3基本定时器学习
1.NVIC_TIMConfiguration();定时器配置函数,如果不用定时器初始化函数,应该在定时器6前面初始化
2.TIM6_IRQHandle();定时器6中断服务函数
*TIM_TimeBaseStructure.TIM_Period自动重装寄存器的值,累计TIM_Period+1个频率后产生一个更新或者中断
*TIM_TimeBaseStructure.TIM_Prescaler 时钟预分频寄存器的值
*TIM_ClearFlag 清除寄存器标志位函数
*TIM_ITConfig 开启寄存器中断函数
*NVIC_InitStructure.NVIC_IRQChannel 设置定时器中断线
*TIM_GetITStatus( TIM6, TIM_IT_Update) != RESET 确定定时器被触发函数
下面是定时器初始化函数
2.4 ADC学习
1. ADC_INIT(); ADC 初始化函数
2. ADC_GPIO_Init(); 初始化ADC引脚
3. Get_ADC_Value(); 获得ADC转换值函数
4. ADCConvertedValue ADC最终转换值
下面是ADC初始化函数
由于时间关系,回家的时候没带那么多器件,也没有下载很多资料导致我的学习不是很顺利,不过以后我会一点点的补上,希望大家不要介意。
如果喜欢我的博客,麻烦各位点赞顺便关注一下我,大家一起学习,一起分享,一起进步。
本人:QQ2992789432