之前参加了活动,买的板子。L496ZG-NUCLEO ,用起来还不错 先简单介绍下板上的资源:
这个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一次打出来 |
【Nucleo STM32F767ZI】 STM32CubeMX + USB读取U盘文件例程
【NUCLEO-L476RG开发】芯片内部温度传感器使用(ADC+DMA+USART)
【stm32F429开发日志】使用STM32CubeMX配置STM32F429_USB_HID
【NUCLEO-L496ZG评测】STM32CubeMX+内部RAM模拟U盘 USB DEVICE MSC的实现
【Nucleo STM32F767ZI】 STM32CubeMX + SDIO读取TF卡例程
STM32CubeMX v.5.0怎么不能下载了
STM32F769I-DISCO评测之(六)使用STM32CubeMX快速开发应用 ...
STM32CubeMX加载库文件速度太慢
STM32CubeMX 5.6.0 TIM OC 模式列表不全问题
【NUCLEO-L496ZG评测】STM32CubeMX+实现ESP8266连接到云端API获取天气