fly015 发表于 2019-10-2 17:15:20

【NUCLEO-L496ZG评测】+STM32CubeMX验证工程搭建

之前参加了活动,买的板子。L496ZG-NUCLEO ,用起来还不错

先简单介绍下板上的资源:

[*]STM32 microcontroller in LQFP144 package
[*]3 user LEDs
[*]2 user and reset push-buttons
[*]32.768 kHz crystal oscillator


这个FLASH 有1MKB多,RAM有128KB足够用了。
RT-THREAD还算比较友好,虽然周围外设那么多,实际上跑起来,也就需要很少的。
STM32L496单片机,最高频率可达80MHz
提供USB(支持OTG 2.0全速和无需外接晶振USB OTG、LPM和BCD)
可以模拟一个1M的U盘,厉害了

好,接下来,可以进入今天的正餐了,
STM32CubeMX这个,大家用过吧。这个工具还可以,蛮好用的,有好处也有坏处。
好处是,可以很快验证硬件,和点亮小灯程序。坏处是,偷懒,那可能初学者上手比较快,知道其中原理可能会慢一些。
我目前拿到一块stm32的板子,先把灯点起来,这个是惯例。
STM32CubeMX这个工具就简单了:

选中手中的板子

就用default mode就可以了


看到没,已经帮你配好了。
NUCLEO板子就是有这个好处:
1. 板载调试器,
2. 不仅一根usb线直接连到调试器,而且这个usb还连了一个串口
就是这个

3. GPIO LD小灯也帮你标好了。



PB7 PB14 对应LD2 LD3
那其他的就不需要管了。
STM32CubeMX这个要跑起来一块板子,最复杂的也就是根据板载晶振配置CPU频率了。

看下原理图:

那PH0就是连到晶振的,X3就是晶振的位置,看了下板子上没贴,经费原因吧,可能,不过也不需要,这边STM32用调试器的MCO,直接输出PWM波。(里面的细节就不深究了),总之,一句话,你就当这个晶振在的,频率是多少呢?(通常MCO,就是8M左右)



HSE高速晶振选择BYPASS就好了,实际验证过,跟选择Crystal一样的,没有差别。
其他的再关注下 uart口用的哪个就好了。
这边用的LPUART1

下面选择对应的时钟配置:

咋一看很乱对不对,这边没帮你配。
主要关注两点:

输入时钟8M, 输出时钟80Mhz,最高频跑吧,没啥事情
只要把途中改成80,按回车就可以了,这个软件会自动帮你配好(RCC这边我也不想去深究,没啥意义,每家芯片商都会不同,属于hardware需要关心的事情)

下面就选一下常用的keil就可以用了

点general code

生成code。
好,生成之后,我们需要找到main函数:
int main(void)
这边给了客户BEGIN和end,只要在这个里面写代码,tool就不会改这段代码
提供个最简单的亮灯程序,和print程序
char ch ='A';
                HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);//LED1 OFF
                HAL_UART_Transmit(&hlpuart1, (uint8_t *)&ch, 1, 0xFFFF);
                HAL_Delay(2000);

这个时候编译一下
.....
(是不是觉得编译很慢, 毕竟stm32的HAL库都包含进去了)
把下面的选项去掉



把这些选项都去掉,快很多,
还想再快的话,可以把优化-O3改成-O0
选择写入器:

这边有个要注意点:

这个reset和run通常默认不会点,那现象就是,烧入之后,没反应,程序不跑(经常有时候有些人可能会觉得自己程序没正常跑起来。勾上就好了)

烧入,看到running这个就是选项勾上了,可以看到板子上的灯亮了,2s两一次。
打开串口,会发现收到的数据不是‘A’ ,检查了一下是波特率及配置不一样,改成默认的就好了。

改完之后

在点一下生成code,之前代码不会被删掉,只要你写在code BEGAIN和code end之间


那这回看到了吧。2s一次打出来

页: [1]
查看完整版本: 【NUCLEO-L496ZG评测】+STM32CubeMX验证工程搭建