STM32F103最小系统实现智能控制(寄存器实现)
一、硬件准备
1、学习前准备:整个项目使用C语言开发,所以,需要有良好的C语言基础,这里我就简单说明一下,C语言中,通用链表,函数指针,文件分类,这三点做好,在开发过程中会轻松很多。
2、硬件准备:网上购置stm32f103ze学习版,带有电阻屏的(电容屏贵,没钱),还有代码烧写器(jlink),还有语音解码模块,SD卡,DHT11,MP3播放模块,硬件连接图如下
3、软件准备:keil 4
二、实现功能
1、实现功能:时钟,贪吃蛇,音乐播放器,温湿度动态显示,记事本,LED灯控制(上述只能控制均可用语音控制实现)
关键代码剖析
1、时钟:芯片的最小单位都是寄存器,如何实现定时器,就如何实现时钟,对于时间的显示,只需要计算一个定时器,然后显示数字就好,这里使RTC时钟
void TimeCount_Install(u8 Time_nu,int Count_time,Tm_pHandle PHandle)
{
switch(Time_nu)
{
case TIM2_IRQn:
case TIM3_IRQn:
case TIM4_IRQn:
RCC->APB1ENR |= (1<<(Time_nu-28));
RCC->CFGR &= ~(7<<8); //清空
RCC->CFGR |= (4<<8); //2分频
switch(Time_nu)
{
case TIM2_IRQn:
TIM2->ARR = (Count_time-1); //确定重装载寄存器的值 72MHz=7200*10000,1s计数器产生中断
TIM2->PSC = (7200-1); //配置预分频器(TIMx_PSC)
TIM2->DIER |= (1<<0); //允许跟新中断
break;
case TIM3_IRQn:
TIM3->ARR = (Count_time-1); //确定重装载寄存器的值 72MHz=7200*10000,1s产生中断
TIM3->PSC = (<