Nucleo-L496开发板的板载虚拟串口与以往的Nucleo板子所用串口不一样,以往的板子都是用串口3,而Nucleo-L496却是用LPUART1,即低功耗串口1,反正这波我确实被官方套路到了,都是看过电路图才知道。板子的虚拟串口-低功耗串口1对应引脚为PG7和PG8,但是CubeMX所对应的LPUART1却是PC0和PC1,此处要留意,要将串口引脚改为PG7和PG8。 另外,社区里之前发过串口评测的人们都是通过CubeMX直接生成的代码,但是CubeMX生成的代码有一个非常不友好的风格,就是会将外设的初始化函数与外设的时钟使能函数分开。由于我并不是直接使用CubeMX生成的代码(是间接使用,即先生成,再移植到自己的例程上),在MX_GPIO_Init()处的一行HAL_PWREx_EnableVddIO2()把我坑的不轻,这句话是低功耗串口才需要的,因此在以往的Nucleo-L476例程中并不会出现,如果没有这句话,L496的低功耗串口1就无法正常工作,相信刚使用HAL库的新手都会深有体会,而这点,在之前发布了L496虚拟串口打印或者Coremark评测的帖子中竟然完全没有提及!我相信有人看过我的帖子之后,能够少走弯路,更快完成开发。 其次要重定义fputc()函数,里面的HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF);函数是每个基于ARM Cortex M内核单片机的串口输出单个字符的函数, 此方法适用于Keil支持的所有ARM Cortex M单片机,包括LPC、GD32、K64等等。这里顺便放上LPC824使用fputc()函数的方法: CoreMark跑分是评测MCU或者MPU性能指标的重要方法,已经在STM32F7和LPC546XX系列中广泛使用,CoreMark软件由一组头文件和源文件组成,其本质是使用算法检测处理器的响应时间来评测处理器性能,类似于桌面CPU的Fritz Chess Benchmark评测。参考@斜阳__的帖子,完成CoreMark跑分。 分数结果出来后,我的内心毫无波动甚至还想笑。 上传附件,让你们也玩玩CoreMark。 |
早上好!签到来了。 |
支持一下 |
支持,签到签到。 |
谢谢分享 |