STM32串口的最高速度为4.5Mbps。
STM32L电路的设计目的是以低电压实现高性能,有效延长电池供电设备的充电间隔。
片上模拟功能的最低工作电源电压为1.8V。数字功能的最低工作电源电压为1.65V,在电池电压降低时,可以延长电池供电设备的工作时间。
扩展资料:
电压调节:
调压器有3种运行模式:主(MR),低功耗(LPR)和掉电。MR用在传统意义上的调节模式(运行模式),LPR用在停止模式。
掉电用在待机模式:
调压器输出为高阻,核心电路掉电,包括零消耗(寄存器和SRAM的内容不会丢失)。
STM32L系列新增低功耗运行和低功耗睡眠两个低功耗模式,通过利用超低功耗的稳压器和振荡器,微控制器可大幅度降低在低频下的工作功耗。
稳压器不依赖电源电压即可满足电流要求。STM32L还提供动态电压升降功能,这是一项成功应用多年的节能技术,可进一步降低芯片在中低频下运行时的内部工作电压。
在正常运行模式下,闪存的电流消耗最低230μA/MHz,STM32L的功耗/性能比最低185μA/DMIPS。
参考资料:
百度百科-stm32
stm32扩展4路串口,可以用串口扩展芯片,这类芯片非常多,可选一两款外围元件少,电路简单的芯片。
推荐一,国产的,双串口芯片CH432。
CH432 是双UART 芯片,包含两个兼容16C550 的异步串口,支持半双工收发自动切换和IrDA 红外编解码,支持最高4Mbps 的通讯波特率,可以用于单片机/嵌入式系统的RS232 串口扩展、带自动硬件速率控制的高速串口、RS485 通讯、IrDA 通讯等。
第二款,TL16C554。
这两个芯片在使用时外围件最少,电路相对简单些。
实验室项目需要使用STM32开发,Hal库的资料相对较少,关于UART中断与之前使用飞思卡尔芯片的中断不同。
首先在CubeMX中配置好UART中断;重点是:需要在主循环之前手动开启接收中断:
只有手动开启之后才能进入中断。
此外,HAL库中,无论何种类型的UART中断,都会进入:
在此函数中判断具体是何种中断,再调用相应的中断服务函数,接收中断是:
而此函数会调用:
最需要注意的一点是:
在回调函数最后需要再次开启中断!!否则只能执行一次!!
个人理解 这里将中断服务设置为等待模式 等待接收字符。
在Keil中进行断点调试 发现接受字符后会首先进入。
HAL_UART_IRQHandler 。
函数,而不是直接进入 UART_Receive_IT 函数进行处理。
相当于UART中断服务程序有一个统一入口。
HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1) 语句相当于打开这个入口,经测试如果去掉这句的话,再发送字符是不会进入HAL_UART_IRQHandler语句的。
刚开始接触STM32与HAL库函数,理解肯定不是很到位。
参考自:
http://www.eeworld.com.cn/mcu/article_2017092734800.html 。
http://www.stm32cube.com/article/74。
关于STM32的USART配置,需要完成以下几个步骤。
1,打开USART时钟
2,配置PA9及PA10
由于USART属于可选功能项
所以TX要设置成GPIO_Mode_AF_PP;,即复用推挽输出。
RX用于数据输入,被设置成浮空输入。
这是由于STM32的IO口引脚总共只有以下几种模式。
GPIO_Mode_AIN = 0x0,。
GPIO_Mode_IN_FLOATING = 0x04,。
GPIO_Mode_IPD = 0x28,。
GPIO_Mode_IPU = 0x48,。
GPIO_Mode_Out_OD = 0x14,。
GPIO_Mode_Out_PP = 0x10,。
GPIO_Mode_AF_OD = 0x1C,。
GPIO_Mode_AF_PP = 0x18。
对于特殊功能模式,只有一个复用开漏及复用推挽。
这两种都是用于输出的情况。
所以RX只能被设置成浮空输入
这不仅是USART,对于其他的如SPI也是如此。
硬流控的RTS、CTS:
(现在做串口使用RTS/CTS必看内容,因为MTK/)
RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。