使用STM32CubeMX创建STM32F407工程
来源:互联网 发布:java微信开发教程csdn 编辑:程序博客网 时间:2024/06/09 01:23
使用STM32CubeMX创建STM32F407工程
创建项目
新建工程,选择对应的stm32f407芯片
设置相关引脚pin
MiddleWares:
因为需要使用网络,选中LWIP。
Peripherals:
配置ETH使能,在右侧的引脚配图中相关引脚
配置RCC,使用外部晶振如图所示
配置SYS,配置系统时钟中断,使用ARM内部时钟
配置USART1,模式为异步,不使用硬件流控
在右边设置相关引脚:
时钟设置
LSE:外部低频时钟
HSE:外部高频时钟
LSI:内部低频时钟
HSI:内部高频时钟
由于需要配置168MHz系统时钟,只能使用PLL如图所示,(如果Pinout->RCC没有配置外部晶振,此处无法使用 HSE)
总线配置
ETH配置
使用的 DP83848CVV phy芯片,其中COL/PHYAD0引脚悬空,phy地址为0x01
其他数据根据datasheet进行相关配置
###LWIP配置
使能Link回调,后面代码中进行相关配置
生成代码
printf函数支持
#if 1#pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f){ while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (uint8_t) ch; return ch;}#endif #include "sio.h"sio_fd_t sio_open(u8_t devnum) { return NULL; }void sio_send(u8_t c, sio_fd_t fd) {}u32_t sio_tryread(sio_fd_t fd, u8_t *data, u32_t len) { return 0;}
link反馈支持
#define PHY_MISR 0x12#define PHY_LINK_INTERRUPT 0x2000#define PHY_LINK_STATUS 0x0001void ethernetif_set_link(struct netif *netif){ uint32_t regvalue = 0; /* Read PHY_MISR*/ HAL_ETH_ReadPHYRegister(&heth, PHY_MISR, ®value); /* Check whether the link interrupt has occurred or not */ //if((regvalue & PHY_LINK_INTERRUPT) != (uint16_t)RESET) { /* Read PHY_SR*/ //HAL_ETH_ReadPHYRegister(&heth, PHY_SR, ®value); /* Check whether the link is up or down*/ if((regvalue & PHY_LINK_STATUS)!= (uint16_t)RESET) { netif_set_link_up(netif); printf("[ethernetif]:netif_set_link_up\r\n"); } else { netif_set_link_down(netif); printf("[ethernetif]:netif_set_link_down\r\n"); } }}void MX_LWIP_Process(void){ ethernetif_input(&gnetif); /* Handle timeouts */ #if LWIP_TIMERS && NO_SYS sys_check_timeouts(); #endif ethernetif_set_link(&gnetif);}
0 0
- 使用STM32CubeMX创建STM32F407工程
- #采用stm32cubeMX创建工程流程
- stm32f407之创建IAR工程
- STM32F407之创建IAR工程
- STM32CubeMX创建keil4 工程编译不过
- 基于STM32CubeMX创建STM32L496ZGTx的工程
- 使用STM32CubeMx创建U盘读写程序
- STM32CubeMX创建工程实现双DAC波形输出
- STM32CUbeMX 使用
- STM32F407学习之创建工程(KEIL-ARM)
- stm32f407建立工程模板
- STM32F072 Nucleo笔记2-利用STM32CuBeMX创建工程并用按键控制LED的亮灭
- STM32CubeMX 创建工程后提示无法用MDK-ARM V5打开的问题
- STM32CubeMX 1 创建一个新工程 利用时钟点亮LED KEIL5 Jlink配置
- STM32F0 IAP (使用stm32CubeMX)
- 开始使用STM32CubeMX
- STM32CubeMX
- STM32CubeMx
- MairaDB 函数(四)
- Filter过滤器执行的顺序
- 文章标题
- 详解JUC之原子类概述
- Python自定义豆瓣电影种类,排行,点评的爬取与存储(基础)
- 使用STM32CubeMX创建STM32F407工程
- centos shell 编程-通过端口号kill对应的进程
- 鸡仔单片机成长记----------------学会使用宏晶ISP软件
- LeetCode刷题(C++)——Maximum Subarray(Easy)
- css3选择器
- 用Redis bitmap统计活跃用户、留存
- Arduino分割字符串
- Java多线程基础解析
- Linux命令行刻录光盘、光盘转ISO文件、校验光盘