推荐阅读最新更新时间:2024-11-09 11:49
STM32的5个时钟源知识
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。 其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。 内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号. 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16
[单片机]
基于STM32的远程预付费电能监测系统设计
着电子信息技术的飞速发展,电能的远程监测也得到了迅速的发展,它的发展和应用,对电力系统的安全运行具有重要的意义。本文设计一种基于MQTT服务器的远程电能监测系统,该系统能对用户终端的电压、电流、功率、总电能及功率因数等相关参数进行监测,通过互联网和MQTT服务器将信息传送到远程监控端,远程监控端能实时显示相关参数并存储,可供后续对相关电能参数进行分析和处理。通过实验表明,本系统具有运行稳定性高、易扩展、成本低等优点。 0引言 随着电子信息技术和互联网的飞速发展,对设备的远程监控在我们生活中应用非常广泛,它使我们生活更加快捷、方便。电能是我们生活不可或缺的重要能源,电网的安全运行关系到国民生产的方方面面,然而三相交流系统中存在大
[单片机]
基于STM32设计的自动刹车灯
一、项目介绍 随着科技的发展,人们对低碳环保的认知和需求不断提高。骑自行车既能够低碳环保,又能够锻炼身体,成为了很多人出行的首选。然而,由于自行车本身没有带指示灯,比如刹车指示灯等,所以自行车的安全性并不是很好,如果人们在骑自行车时紧急刹车,后车无法及时判断前方自行车的行为,容易造成交通事故。因此,设计一款自动刹车灯系统具有十分重要的意义。 本项目实现了通过安装ADXL345陀螺仪和四枚LED灯还有STM32F103C8T6主控芯片来实现自行车自动刹车灯的功能。当自行车上安装了该设备后,ADXL345通过IIC通信协议将X,Y,Z三轴的加速度实时值发送给SMT32F103C8T6主控芯片,并结合STM32高级定时器的PWM功能
[单片机]
stm32 红外
举例 u8 ir_tick() //记录高电平时间 { u8 i = 0; while(ir_in == 1) { i++; if(i = 250) { break; } delay_us(20); //一次循环20um } return i; } void EXTI15_10_IRQHandler() { u8 i = 0; u32 ir = 0; u8 ok = 0; u8 tick; u8 data; if(EXTI_GetITStatus(EXTI_Line15) == SET) { led
[单片机]
STM32入门学习笔记之EEPROM存储实验5
(2)创建at24cxx.c文件并输入以下代码。 /********************************************************************************************************* EEPROM 驱 动 程 序 *********************************************************************************************************/ #include at24cxx.h #include delay.h /************
[单片机]
有关stm32的串口发送与接收的逻辑问题
在弄毕业设计时遇到一个问题,而且这个问题困扰了我很久,究其原因是我没有一个清晰的逻辑。 首先我想实现的功能是循环向串口2发送一个命令数组,并且每发送完这个命令后,串口2接收一串数据,这个数据是由串口2连接的模块发送的。用串口2接收到后用串口1通过串口小助手打印出来。 我的问题就来了,我居然认为串口2发送出去的命令数组居然会中断串口2的接收中断!更可怕的是,我居然在串口2的接收中断中把接受到的数据用串口1打印出来。然后我就发现怎么中断不了也打印不出!我一直以为是我的发送数组函数写得有问题,或者是中断函数写错了,结果调试了很久,代码改了又改,又重新复习一遍串口知识,还是觉得自己写的串口函数都没问题。太苦恼了。 但终于我在这
[单片机]
msp432快速入门第六节之按键扫描和GPIO中断操作
(一)按键扫描 (1)配置引脚 在按键扫描这一节,仅需要配置好引脚即可,打开TI的GPIO驱动库,可以看到GPIO设置函数H文件如下: 在这个函数上方有对函数的说明: 解释为:该函数配置MSP432的GPIO引脚为输入模式,没有指明被配置的引脚是否被上拉或者下拉,当然如果需要配置输入上拉或者输入下拉需要使用此函数配置: 在这里我们直接使用普通配置,配置引脚为输入即可。 如下进行引脚初始化:(板载两个按键,一左一右均可以使用,注意复位键是在上面的) //key pin init void Key_Init(void) { GPIO_setAsInputPinWithPullUpResistor(KEY_LEFT
[单片机]
STM32 ILI9341驱动TFTLCD(九)LCD显示ASCIIII
ASCII值在LCD上显示,同样要在一个区域中写显存,这样不同大小字号的字符也就对应不同的字模了。这里生成字模用到了字体取模软件工具PCtoLCD2002,可以方便地生成不同字号的字模。 打开软件并选择设置。 进入设置界面。 根据自己需要进行取模设置: 点阵格式:阴码表示1有效,阳码表示1有效。 取模方式和取模方向与写入显存的算法有关,这里选择顺向逐行式。 设置完成后,根据ASCII表把需要的ASCII值写入,这里写入可见的ASCII值,点击生成字模。 然后复制生成的字模,定义为一个常量存储起来。 可以根据生成的字符右边的序列选取字符所在的序列,由于我们选取的是ASCII的可视字符,在原有的字符上偏移了32
[单片机]