自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 GOWIN软件使用

JTAG设置成普通管脚,下载程序时候JTAGEN管脚需要上拉高电平(可以在下载器线上上拉个电阻,下载后把下载线拔走,否则JTAG管脚无法使用,管脚充裕最好不使用JTAG)下载Access Mode选择默认是SRAM,这下载是程序立即被启用,设备重启这程序会失效,主要测试时候使用。有重启操作程序下载到Flash中。根据自己需求把复用管脚勾选上,管脚当普通管脚使用。

2024-03-07 14:15:13 371

原创 赖迪思软件 lattice Diamond

工程编译好后,git上传,变更分支又切换回来,再次编译有时候失败,所以配置好的管脚变成默认的,生成的IP核变成名变粗(顶部文件,管脚配置显示IP核输入输出信号配置)。双击IP核重新生成下,有时编译又正常,但有时始终编译不过去。解决:直接把顶部文件设置好,再编译。

2024-03-02 17:33:09 459

原创 紫光同创初使用

4、有些复用管脚被使用,但是出现异常(输出指示灯显示错误) ,需要查询手册看信号是否使用专用管脚,可以在上图找到对应专用功能,设置为General IO通用管脚。5、与其他芯片连接时候,如果有异常(与交换机芯片GMII管脚连接),可以试试把芯片管脚上下拉配置与连接芯片需求(或默认)上下拉一致。3、程序中有些信号被软件认为是时钟信号,会报错(时钟输入I0约束在非专用时钟管脚上),编译不过去,右击报错会出现解决方案,右击3位置,选择下载(一定要在flash字体右击,否则下载后重启无效)

2024-02-23 17:56:58 722

原创 VHLD开发遇到问题

原因:RAM_RX_RADD在fsmc_NWE上升沿与fsmc_NOE下降沿都赋值,编译会报错。fsmc接口,读地址累计失败。

2024-01-31 10:22:31 309

原创 STM32与FPGA实现以太网功能--web、UDP、tcp测试

原因:发现有一个设备正常,另一个设备通过TFTP下发web网页偶尔正常。打印排查下,发现读网页大小不对(估计用W25Q16弄的文件系统哪里bug,记录下,等以后处理)原因:浏览器下发命令,STM32上传web数据帧,网页数据比较大,有10K以上,需要发送10帧以上数据,STM32与FPGA数据传输效率不行,浏览器输入192.168.1.30,能出现登入界面,但是输入密码点击没反应,果然没有一帆风顺的。web网管实现,udp、tcp通讯应该没问题,这监控数据通信,频率很低,数据很少。

2024-01-30 18:54:29 644

原创 STM32与FPGA实现以太网功能--ping

设备启动时候会发送2-3次ARP数据,后来就不发送数据了,但是仿真发现low_level_input有数据接收,搞了几天一直不知道哪里出问题,后来只接收发送给192.168.1.30(设备IP地址)的ARP包,其他过滤掉,low_level_output正常应答发送了(具体原因没找到?修改方案:FPGA接收网络数据,把业务数据过滤出来,其他网络帧保存在RAM中,通过中断通知STM32获取数据,实现网络ARP、 ICMP、tcp、udp等功能(FPAG模拟DM9000功能,很没把握,但目前只想到这种方案)

2024-01-29 15:34:12 714

原创 KEIL5编辑STC单片机程序

3、 下载C51的芯片包(直接安装能编译stc芯片的keil软件,安装后直接把安装目录中的C51拷贝过来),放在keil_v5目录下面。5、打开老已有工程需要确保C51路径正确,否则编译报错。1、keil5软件正常安装完成。2、打开STC-ISP软件。

2024-01-17 09:53:02 576

原创 STM32传输FPGA业务

方法:FIFO_TX无数据,输出默认未知值,那么在程序启动时候先往FIFO_TX写入足够TTL_TX发送1~2ms的数据,STM32读写FPGA任务优先级调高,接收到FIFO_RX快满中断读写时间误差在1~2ms以内,那么TTL_TX发送的数据一定是TTL_RX接收的数据。原因:STM32读FPGA过程中,FIFO_RX中数据剩余1023个,快满标志清零了,但FIFO_RX刚好这时候又采集到TTL_RX数据,恢复到1024个,再次触发快满标志,造成STM32读2*1000数据。④FIFO_RX出现满标志。

2023-12-29 14:45:21 1481

原创 protobuf序列化与反序列化

区分 Protobuf 中缺失值和默认值 - 知乎做个项目,参数保存使用protobuf协议序列化后写到flash,读出后反序列化赋值。// <! 参数1message Param1_t{ int32 age = 1; // <! 日龄 int32 weight = 2 [default = 100]; // <! 体重}message Param2_t{ int32 age = 1; //

2022-03-29 16:16:16 897

原创 STM32项目更换芯片类型

STM32CubeMX创建的工程项目芯片更改:1.打开STM32CubeMX软件。2.选择需要使用的芯片类型。3.导入以前项目的工程。4.按需求更改管脚和时钟等。5.点击生成工程代码(工程名称和路径要一样)。6.把生成的xx.ioc复制出来替换原来项目的.ioc文件。7.双击打开xx.ioc,芯片更改完成。注意:1.管脚命名最好与原项目一致,更改效率更高。2.步骤3不需求导入,也可以按新原理图定义功能和管脚...

2021-01-13 17:02:50 5672

原创 RT-Thread学习1-tcp_modbus

RT-Thread Studio实现以太网modbus功能:1.创建芯片对应工程,STM32F407VGT6,这个网络很多。2.添加文件stm32f4xx_hal_msp.c

2020-11-20 10:14:56 1531

原创 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 1730

原创 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 2113

原创 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 4311 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 2388

原创 STM32 IAP升级跳转后死机,APP程序无法运行

最近做TFTP远程升级,能正常下载文件,但是跳转后死机,无法启动,需要重加电才行,不知道原因。后来一步步排查发现,每次升级需要写芯片FLASH,然后直接跳转到APP。解决方法:在写FLASH后,软件复位HAL_NVIC_SystemReset(); 然后再跳转到APP。...

2020-04-29 18:04:46 4989 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 5129 12

原创 keil模拟仿真有符号整数比较

signed short ls;void fun(signed short rs){ short a; if(ls<0){ a =1; } else{ a =2; }}void main(){ fun(ls);}一次开模拟仿真,类似函数过程,进入函数fun中后把rs设置成-30,结果a=2,搞不明白?...

2019-07-02 08:35:15 527

原创 strlen sizeof strcpy函数使用

int strlen(const char *str){  assert(str != NULL);  int len = 0;  while((*str++) != '/0')  len++;  return len;}strlen求字符串长度不包含结束符char * strcpy(char *dst,const char *src) { ...

2019-05-15 17:05:49 153

原创 MD5使用C语言实现

MD5.H文件#ifndef MD5_H#define MD5_H typedef struct{ unsigned int count[2]; unsigned int state[4]; unsigned char buffer[64]; }MD5_CTX; #define F(x,y,z)...

2019-05-15 16:23:30 1202 1

转载 C当中关于sizeof(struct)和sizeof(union)

一般32位机子上各个数据类型所占的存储空间如下:char:8位short:16位int:32位long:32位float:32位double:64位一、接下来先来看struct,结构体请牢记以下3条原则:(在没有#pragma pack宏的情况下)1、数据成员对齐规则:结构体(struct)的数据成员,第一个数据成员放在offset为0的地方,之后的每个数据成员...

2019-03-20 13:55:28 166

原创 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 6360

原创 使用STM32芯片ID作为MAC地址

 STM32每个系列都会有唯一的一个芯片序列号(96位bit):                STM32F10X 的地址是 0x1FFFF7E8                 STM32F20X 的地址是 0x1FFF7A10                STM32F30X 的地址是 0x1FFFF7AC                STM32F40X 的地址是 0x1FF...

2018-12-29 09:48:49 6161

原创 Keil函数指针调用带参数的函数

void Init_WifiModule(ETH_PARAM_T *Para){    RAK415_ParaConfig(BACK_COM,Para);}void Init_NetInterFunc(NET_DATA_INTER *pNet,uint8 Type){                pNet-&gt;Init = Init_WifiModule; }typedef...

2018-08-01 14:22:49 2433

原创 共用体与结构体空间规则

typedef union{    uint16 word;    uint8  byte[2];    struct {        uint16 res0: 1; //0        uint16 res1: 1; //1        uint16 res2: 1; //2        uint16 res3: 1; //3        uint16 res4[4]...

2018-07-23 10:21:03 716

原创 CAN过滤器

CAN ID值0x1800f001用二进制表示为:0b 0001 1000 0000 0000 1111 0000 0000 0001,用括号分别区别为:0b 000[1 1000 0000 00][00 1111 0000 0000 0001],红色部分为扩展ID,蓝色部分为基本ID。注意ID右移3位对齐...

2018-06-23 17:29:35 318

转载 VB2010客服端程序

Imports System.NetImports System.Net.SocketsImports System.TextImports System.ThreadingPublic Class frmClient    '客户端Socket    Dim cliSocket As Socket    '连接状态    Dim IsConnected As Boolean = False   ...

2018-05-09 16:45:55 204

转载 VB2010网络通信服务器

Imports System.NetImports System.Net.SocketsImports System.ThreadingImports System.TextImports System.DiagnosticsPublic Class frmServer    '服务端的Socket    Dim listener As Socket    '与客户端会话的Socket    Di...

2018-05-09 16:44:41 441

原创 VB2010的线程与跨线程调用控件

1.调用系统线程库 Imports System.Threading2.Dim myThread As Thread                   '定义线程     Public Delegate Sub VoidDelegate()     '定义委托类型3.初始化线程并运行     myThread = New Thread(AddressOf Listen)      myThrea...

2018-05-08 17:42:11 1630

原创 变量的地址空间

int a=0x12345678;char b[4]={0,1,2,3};memcpy(b,&a,4);//由a低地址的数据给b的低地址数据b[0]=0x78 b[1]=0x56 b[2]=0x34 b[3]=0x12可以看出,int变量低位数据存在4个字节地址空间的低地址位memcpy(&a,b,4);a=0x12340100数......

2018-05-05 17:39:33 415

原创 VB2010的串口能正常接收数据,但无法发送数值大于127的数据

发送大于127的数据,接收回来却是00或0x3f,直接通过STM32发送0XFF这些大于127的数据,接收正常,确定是发送不了大于127的数据,在网上查了很久终于有结果,SerialPort1.Write(sendDATA, 0, k),sendDATA是只能发送ASCII值0-127,超出范围就会被0或3F代替(不知道对不对,我串口接收是这样的)我用的是VB2010,在串口初始化时候加上:Me....

2018-04-11 10:03:32 1206

原创 STM32时钟初始化

void RCC_Configuration(void){  RCC_DeInit();  /* Enable HSE */  RCC_HSEConfig(RCC_HSE_ON);  /* Wait till HSE is ready */  HSEStartUpStatus = RCC_WaitForHSEStartUp();  if(HSEStartUpStatus == SUCCESS)  ...

2018-04-03 10:53:24 1059

原创 STM32的CAN总线初始化

void CAN_Configuration(void){  GPIO_InitTypeDef GPIO_InitStructure;     CAN_InitTypeDef        CAN_InitStructure;  CAN_FilterInitTypeDef  CAN_FilterInitStructure;  /* CAN register init */ // CAN_DeIn...

2018-04-03 09:22:07 4738

Modbus调试软件,服务器与客服端

Modbus调试软件,包含服务器与客服端,解压后按需求安装,第一次启动需要填写key才能使用,在压缩包中有

2020-10-10

STM32CubeMX实现以太网驱动

通过STM32CubeMX实现stm32f407以太网接口驱动,可以ping通,工程文件,解压可直接使用

2020-10-10

STM32实现SD卡的fatfs文件系统,写数据生成.csv文件

STM32实现SD卡的fatfs文件系统,写数据生成.csv文件,可以通过网络工具通过以太网下发数据通信。

2020-10-10

Segger.zip

打开工程,硬件管理显示Jlink已经连接,但是工程下载成功显示没找到jl2cm3.dll,被win系统删除灯原因; 仿真一会打个断点,没个几秒钟仿真断开,是应为下载器不是正版的; 直接使用压缩包Segger覆盖,还不行使用JLinkARM_V4.74b重新安装;

2019-09-29

Synwit.SWM32_DFP.1.0.0.pack

Synwit.SWM32_DFP.1.0.0.pack,SWM32芯片在keil5开发环境安装包

2019-08-01

HDSC.HC32F005.1.0.1.pack

HDSC.HC32F005.1.0.1,HC32F005芯片在keil5开发环境中的安装包

2019-08-01

绝缘检测实现方法与程序

绝缘检测的通讯协议与文档说明,完整程序代码与绝缘检测仪Modbus通讯规约

2019-04-24

VB2010 HEX编译

VB2010程序 打开HEX文件并显示修改, 保存文件 修改后文件

2018-05-16

VB2010的网络通信

VB2010的网络通信,有客服端和服务器两个工程,内部有注释

2018-05-10

STM32的CAN多机传输

STM32F107的CAN初始化程序,实现一主多从的应答通信,内部有一个主机3个从机的源代码

2018-04-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除