文章目录
- 一.基础篇
-
- 一.点亮LED
- 二.驱动蜂鸣器
- 三.Systick定时器
- 四.定时器
- 五.独立按键——三行代码消抖
- 六.IIC协议
- 七.LCD显示
- 八.串口接收与发送
- 九.ADC采样
- 十.RTC时钟
- 十一.PWM输出及输入捕获
一.基础篇
一.点亮LED
为了优化外设数目,可以把一些复用功能映射到其他引脚上;比如:LSE 振荡器关闭时, LSE 振荡器引脚 OSC32_IN/OSC32_OUT 可以分别用做 GPIO 的 PC14/PC15,LSE功能始终优先于通用I/O口的功能,此为端口重映射
对于CT117E的蜂鸣器,控制他的引脚为N Buzz对应GPIO为PB4,PB4的重映射为JNTRST功能,现在只想用PB4用作一般GPIO口,不需要JNTRST功能,可以通过控制SWJ_CFG[2:0]位来改变重映射,而改变重映射不能取消SWJ功能,SWJ在下载程序和仿真时使用,只取消JNTRST,所以设置SWJ_CFG[2:0]为001,使用函数GPIO_PinRemapConfig()设置重映射来关闭JNTRST
注意写配置函数时候先打开时钟以后再配置重映射等其他东西对于蜂鸣器电路图,蜂鸣器引脚给0低电平则触发蜂鸣器,给1高电平则关闭蜂鸣器为了在调试期间可以使用更多GPIOs,通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR) 的SWJ_CFG[2:0]位,可以改变上述重映像配置。参见下表。
通过SysTick_Config(SystemCoreClock/1000);此函数配置SysTick定时器,其中参数为配置重装载计数器的值,用此函数打开计数器之后,函数参数开始减少,每当参数减小到0时即开始一次中断,执行中断然后参数又恢复到原来的值继续递减。 而SystemCoreClock为72 000 000即1s震动72 000 000次,SystemCoreClock除以1000即1ms震动72 000次,从72 000开始递减每次执行这个函数可以减1,减72 000次的时间是1ms,即每产生一次中断的时间是1ms,所以可以让中断事件为一个数值递减的函数,即每次产生中断这个数递减1,那么可以实现定时器延时。
除此之外,还要在stm32f10x_it.c中找到对应的中断函数名,在这个函数里填入中断事件
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!