STM32 L051 开发问题集合

STM32L051K8T6    

一、使用官方的HAL库作串口驱动,与之前的驱动库不一样,使用的是串口中断接收不定长数据,然后通过DMA发送出来;在调试过程中出现的问题是 串口中断接收数据,出现丢失字符现象,经过配置串口的中断优先级与DMA中断的优先级得到问题的解决。以下是程序代码例程链接

https://download.csdn.net/download/huan447882949/10938427

 

二、使用PA1入口采集ADC,使用DMA+ADC装换,再配置STM32CubMX过程中出现配置问题:

标题

 

三、RTC可以采用两个时钟模块,1个是外部的低频晶振,一般我们选择32.768KHz,这个比较精准;另一个则是内部的RC振荡器,是37KHz。

    STM32L0的预分频器被分成两个预分频器。一个7位的异步预分频器(AsynchPrediv),一个13位同步预分频器(SynchPrediv)。

    RTC频率的计算公式:RTCclk=(LSE或LSI)/[(AsynchPrediv+1)*(SynchPrediv+1)]。

    给出2组经典值:    LSE    RTCclk = 32768/(127+1)*(255+1)=1Hz    AsynchPrediv = 127    SynchPrediv = 255

                       LSI     RTCclk = 37000/(124+1)*(295+1)=1Hz    AsynchPrediv = 124    SynchPrediv = 295

 

3-1 
STM32F030用LSI作时钟源走时不准,40Khz配置,总会跳秒,要想准时,还是用外部LSE时钟,32768hz,会比较准。 
3-2 sAlarm.AlarmMask =RTC_ALARMMASK_DATEWEEKDAY|RTC_ALARMMASK_HOURS |RTC_ALARMMASK_MINUTES ;

//注意屏蔽的对象,设置的日期,星期,时分是无效的,这时RTC闹钟 的秒匹配后触发闹钟中断。如果设置RTC_AlarmMask=RTC_AlarmMask_None;则为精确匹配,即闹钟不仅要求时分秒匹配还要匹配日期和星期,都匹配后触发闹钟中断)

         起初因为没有注意到这一点,我设置10s 闹钟中断,当时只做了RTC_ALARMMASK_DATEWEEKDAY屏蔽 ,以至于耗费了好几天而不得结果。
1
3-3 测试低功耗时,最好通过任务,或者条件控制进入低功耗,否则,开机几秒就进入,那么下来,再烧写程序就麻烦了。

四、PVD 是一种检测MCU供电情况的技术。当供电电压高于或者低于一定阈值的时候,可以在寄存器上体现出来,或者直接产生硬件中断。
在实际使用MCU时,特别是电池供电的方案中,往往会遇到供电不够导致MCU或者外设工作不正常的情况。PVD在这个时候就可以派上用场了。

PWR_PVDLevelConfig(PWR_PVDLevel_0);//可选
PWR_PVDCmd(ENABLE);//使能电压检测

其中PVD output的结果可以再在存器中查看到

if(PWR_GetFlagStatus(PWR_FLAG_PVDO)!=RESET)
{
    //VDD电压低于阈值电压
}
else
{
    //VDD电压高于阈值电压
}

关于PVD的阈值的设定共有两种方式:

  • 固定阈值(1.9V 2.1V 2.3V 2.5V 2.7V 2.9V 3.1V)
  • 与引脚比较(PB7)

在实际使用的过程中,PVD可以用查询中断的方式来工作。

注意:当使用PVD功能检测低电压时,VDD电压刚刚小于阈值时并不会直接产生PVD中断,只有当VDD电压小于(阈值-50MV)时,才会产生中断。

 

 

 

 

 

 

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32L051STM32L0系列微控制器的一款型号,它采用了ARM Cortex-M0+内核,具有低功耗和高性能的特点。在开发中,可以使用各种开发板和软件,如ST-LINK、Keil uVision5等,来进行编程、调试和下载。 在STM32L051开发中,需要首先了解其硬件架构和寄存器操作方法,以便进行底层编程。同时,也可以使用各种现成的库函数和驱动程序,来简化开发难度和提高开发效率。例如,STM32CubeMX是一款强大的图形化配置工具,可帮助用户快速设置IO口、外设和时钟等参数,生成可移植的代码。 在实际开发中,可以根据项目需求,选择合适的外设和接口来扩展功能。例如,可以使用USART、SPI等接口实现与其他设备的通信;使用ADC、DAC等外设采集和输出模拟信号;使用GPIO口控制LED、蜂鸣器等设备。 在应用中,STM32L051可以广泛应用于各种低功耗和高性能的嵌入式系统,如智能家居、智能仪器、便携式设备等。它可以通过多种接口和协议与其他设备进行通信,并且具有丰富的外设和低功耗模式,以满足不同应用的需求。 ### 回答2: STM32L051是一款低功耗微控制器,配备有Cortex-M0+内核和32位Flash,适用于各种低功耗应用,例如物联网、智能家居和传感器网络等。STM32L051具有丰富的外设和丰富的通信接口,包括SPI、I2C、USART、USB等,在不同的应用中可以有不同的选择。此外,该微控制器还集成了多个低功耗模式,使得它在电量管理方面更加出色。 在STM32L051开发中,可以使用基于Keil、IAR或GNU ARM工具链的各种开发环境。开发者可以使用各种编程语言,例如C、C++和汇编语言,来进行STM32L051的编程和调试。同时,STM32L051的数据处理和控制操作都良好地支持了DSP指令和硬件单周期乘加操作,从而提高了其处理速度和准确性。 STM32L051开发过程一般分为硬件设计和软件开发两部分。硬件设计主要包括选择合适的开发板和外设,完成电路连接和布局等工作。软件开发则需要熟练掌握STM32L051的内部寄存器、外设接口和相关库函数,实现所需的功能。 总的来说,STM32L051具有出色的低功耗特性和通信接口,适用于各种低功耗应用场景。在开发过程中,需要结合硬件设计和软件开发实现所需的功能。 ### 回答3: 首先,STM32L051是一款低功耗微控制器(MCU),它具有128 KB的闪存和8 KB的SRAM,适用于一些低功耗应用,比如智能家居、传感器和医疗设备等。 其次,STM32L051具有多种通信协议,包括SPI、I2C、USART等,这些协议能够满足不同应用场景的需求。此外,STM32L051还具有多个计时器和高精度时钟,可以确保高精度的计时要求。 在开发STM32L051时,我们可以使用Keil、IAR或者其他一些ARM专业开发工具进行开发。有了这些工具,我们可以使用C语言进行编程,并利用官方提供的库文件实现各种功能。还可以使用调试器来对程序进行调试和测试,确保程序的正确性和可靠性。 总的来说,STM32L051是一款功能强大的MCU,在低功耗和多种通信协议等方面有优异表现,是物联网应用开发的理想选择之一。在开发过程中,正确选择合适的工具和利用官方库文件进行编程,能够更高效地完成开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值