STM32
weixin_41719055
这个作者很懒,什么都没留下…
展开
-
STM32项目更换芯片类型
STM32CubeMX创建的工程项目芯片更改:1.打开STM32CubeMX软件。2.选择需要使用的芯片类型。3.导入以前项目的工程。4.按需求更改管脚和时钟等。5.点击生成工程代码(工程名称和路径要一样)。6.把生成的xx.ioc复制出来替换原来项目的.ioc文件。7.双击打开xx.ioc,芯片更改完成。注意:1.管脚命名最好与原项目一致,更改效率更高。2.步骤3不需求导入,也可以按新原理图定义功能和管脚...原创 2021-01-13 17:02:50 · 6437 阅读 · 2 评论 -
RT-Thread学习1-tcp_modbus
RT-Thread Studio实现以太网modbus功能:1.创建芯片对应工程,STM32F407VGT6,这个网络很多。2.添加文件stm32f4xx_hal_msp.c原创 2020-11-20 10:14:56 · 1627 阅读 · 0 评论 -
protobuf安装与生成.c和.h文件
protobuf的安装protoc的源码和各个系统的预编译包:https://github.com/protocolbuffers/protobuf/releases1、选择对应的安装文件下载2、添加到环境变量中安装完成!protobuf的使用方法1、基本用法protoc --version #查看protoc的版本2.新建文件test2.protosyntax = "proto2";message testinfo { required .原创 2020-10-12 16:04:27 · 1780 阅读 · 0 评论 -
STM32 FATFS写中文到.csv文件中
工具:KEIL5芯片:STM32F407 使用fatfs在SD卡创建.csv文件,程序中定义一个中文字符串,把字符串写到文件中出现一堆乱码。keil5编码选择GB2312或UTF-8\ANSI模式都不行,仿真看到一个中文占用3个字节。 后来把定义字符串的.c文件用Notepad++软件打开,在编码菜单选择ANSI编码,把中文字符串改好,再在KEIL5中编译,仿真发现一个中文占用2个字节,写到.csv文件正常...原创 2020-08-27 12:02:10 · 2265 阅读 · 0 评论 -
LWIP tcp服务器,网线不断插拔,服务器不断重连,最后连不上甚至死机
STM32芯片,tcp服务器,网线连接时候,客户端不断重连可以正常稳定连接。但是在客户端不断重连时候,网线不断断开重连,最后客户端连不上,甚至程序直接死机。通过仿真发现err_t tcp_server_accept(void *arg, struct tcp_pcb *pcb, err_t err),客户端申请连接pcb = NULL,也就是说没有空余的pcb给重连客户端使用,直接仿真tcp_active_pcbs信息发现,pcb->state =FIN_WAIT_1 ||FI...原创 2020-06-15 09:57:48 · 4808 阅读 · 2 评论 -
STM32 复位(非重加电)数据不丢失
1.STM32启动过程硬件复位后,第一步是执行复位处理程序,这个程序的入口在启动代码里(默认),摘录一段cortex-m3的复位处理入口代码::1: Reset_Handler PROC ;PROC等同于FUNCTION,表示一个函数的开始,与ENDP相对? 2:EXPORT Reset_Handler [WEAK] 3:4: IMPORT SystemInit5: IMPORT __main6: LDR R0, =SystemInit7: BLX R08: LDR...原创 2020-06-13 15:44:22 · 2576 阅读 · 0 评论 -
STM32 IAP升级跳转后死机,APP程序无法运行
最近做TFTP远程升级,能正常下载文件,但是跳转后死机,无法启动,需要重加电才行,不知道原因。后来一步步排查发现,每次升级需要写芯片FLASH,然后直接跳转到APP。解决方法:在写FLASH后,软件复位HAL_NVIC_SystemReset(); 然后再跳转到APP。...原创 2020-04-29 18:04:46 · 5543 阅读 · 1 评论 -
LWIP接收发送数据时间间隔设置
用硬石开发板例程改个TCP通信程序,发现接收数据很慢,间隔达到250ms,很大上位机下发的命令都无法快速响应:#define TCP_TMR_INTERVAL 1//250 /* The TCP timer interval in milliseconds. */原来是250,改成1,这样1ms接收回调一次...原创 2019-10-25 11:49:37 · 5769 阅读 · 12 评论 -
STM32指针使用
CALCBILL_DATA_ST是个结构体占地址10个uint8 txbuf1[10]={1,2,3,4,5,6,7,8,9,10};uint8 txbuf2[10]={11,12,13,14,15,16,17,18,19,20};uint8 *pbuf1 = txbuf1;CALCBILL_DATA_ST*pbuf2 = txbuf2;如此pbuf1和pbuf2分别...原创 2019-03-01 09:42:41 · 6459 阅读 · 0 评论 -
使用STM32芯片ID作为MAC地址
STM32每个系列都会有唯一的一个芯片序列号(96位bit): STM32F10X 的地址是 0x1FFFF7E8 STM32F20X 的地址是 0x1FFF7A10 STM32F30X 的地址是 0x1FFFF7AC STM32F40X 的地址是 0x1FF...原创 2018-12-29 09:48:49 · 6360 阅读 · 0 评论