自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 资源 (6)
  • 收藏
  • 关注

原创 Ubuntu14.04安装2024年最新版apache-2.4.59+openssl-1.1.1w+php-8.3.6,并启用https和HTTP2,且XP系统下的IE6和IE8能正常访问https

事实证明,2024年最新版apache-2.4.59+openssl-1.1.1w+php-8.3.6是可以支持XP系统下的IE6和IE8浏览器正常访问https的,请注意文章里面标红的重点部分。经检验,XP系统下的firefox52.9esr可以正常通过HTTP/2访问https,且不影响IE6-8的http/1.1访问。建立新文件/etc/ld.so.conf.d/mynewssl.conf,内容为/opt/openssl-1.1.1w/lib。

2024-04-24 20:26:38 956

原创 关于centos8自带的apache2.4开启https后,XP系统的IE6和IE8无法显示网页的问题

在/etc/ld.so.conf.d文件夹中新建一个mynewssl.conf文件,内容为/opt/openssl-1.0.1f/lib。访问 http://xxx.com 自动跳转到 https://xxx.com ,出来的是/home/xxx/xxx下的网站。在/opt/httpd-2.2.23/conf/httpd.conf末尾加入。【配置虚拟主机:/home/xxx/xxx/config/xxx.conf】打开/opt/httpd-2.2.23/conf/httpd.conf,将。

2024-04-08 19:51:02 896

原创 Java/JSP界面实现多国语言支持,支持插入变量,还要考虑名词单复数

在Java/JSP中,通常使用.properties文件定义各语言的文本,里面可以用{0},{1},{2}表示待插入的变量值(之所以用数字,不用%s、%d等占位符,是因为不同语言的语序不同)。用java.util.ResourceBundle类的ResourceBundle.getBundle方法读取.properties文件。用java.text.MessageFormat类替换{0},{1},{2}等占位符。

2024-03-26 21:47:32 343

原创 apache2.4设置完一个VirtualHost后,所有的域名和IP地址都变成访问这个VirtualHost的解决办法

apache2.4设置完一个VirtualHost(如www.example.com)后,所有的域名(如localhost)和IP地址都变成访问这个VirtualHost。默认的DocumentRoot /var/www/html无效了。然后重启apache服务器即可。

2024-03-23 20:27:26 426

原创 git常用操作

如git clone "ssh://[email protected]/home/hahaha/xxxxx.git" my_folder。刚才的git clone是下载一份全新的代码,而git pull origin是只下载最近添加和改动的文件。git clone "ssh://用户名@域名/服务器上的项目路径.git" 要下载到哪个文件夹里面。git init是在服务器上创建新项目,git clone是从服务器上下载已有项目的代码到本地。密钥文件不能是.ppk格式!只能是id_rsa格式。

2024-03-23 12:10:31 432

原创 ubuntu10.04 apache2.2开启tls1.2的支持,使现代的edge和firefox浏览器能正常访问https

在浏览器里面下载https://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz (wget命令不好使了)在/etc/ld.so.conf.d文件夹中新建一个mynewssl.conf文件,内容为/usr/local/ssl/lib。我们自己源码编译安装的默认是/usr/local/apache2和/usr/local/ssl,两者是分开的。打开/usr/local/apache2/conf/httpd.conf,将。

2024-03-20 22:03:30 1257

原创 解决jsp request.getParameter乱码问题(兼容Tomcat 6~8三个版本)

【代码】解决jsp request.getParameter乱码问题(兼容Tomcat 6~8三个版本)

2024-03-15 00:08:25 379

原创 C语言在Visual Studio 2010环境下使用<regex.h>正则表达式函数库

在Visual Studio 2010环境下,如果C语言想要使用头文件进行正则表达式匹配,则需要pcre3.dll这个动态链接库,可以去网上下载。下载的网址是:下载的栏目是:Binaries和Developer files。下载下来后是pcre-7.0-bin.zip和pcre-7.0-lib.zip两个压缩包。

2024-02-03 12:38:50 602

原创 C语言用SHBrowseForFolder弹出选择文件夹的对话框

IMalloc_Free(shell_malloc, item_list)改成shell_malloc->Free(item_list)。IMalloc_Release(shell_malloc)改成shell_malloc->Release()。(4)init_icons函数中:LoadImage前加上(HICON)强制转换。(2)去除顶部的#define COBJMACROS。(1)源文件扩展名由c改为cpp。

2024-01-29 23:24:18 323

原创 C语言通过IXMLHttpRequest以get或post方式发送http请求获取服务器文本或xml数据

现在,服务器返回的都是JSON格式的数据,XML格式已经过时了,但是AJAX这个名字已经成了一个通用名词,字面含义已经消失了。首先我们要在自己的服务器上准备好处理ajax请求的页面,本文准备了三个示例页面:str_test.php、json_test.php和xml_test.php,分别用来产生文本回应、json回应和xml回应。尽管名字里面有XML和Http,它实际上可以使用多种协议(比如file或ftp),发送任何格式的数据(包括字符串和二进制)。做过网页设计的人应该都知道ajax。

2024-01-24 21:31:36 1462 1

原创 C语言或C++通过IShellLinkA创建或解析lnk快捷方式(使用char字符数组)

请注意因为函数参数的类型不为BSTR,所以这两个接口可直接传char *或wchar_t *字符串,不需要提前转化为BSTR类型。本例程用到的COM接口有IShellLinkA和IPersistFile。

2024-01-23 22:18:24 584

原创 C语言通过MSXML6.0读写XML文件(同时支持char[]和wchar_t[]字符数组)

开发环境:Visual Studio 2010运行环境:Windows XP SP3。

2024-01-17 23:16:55 706

原创 解决C语言wprintf函数无法打印中文的问题

在Visual Studio中,wchar_t[]字符数组用来存储UTF-16编码的字符串,但C语言库函数wprintf无法打印含有汉字的wchar_t字符串。解决办法是用WriteConsoleW函数重新实现一个自己的my_wprintf函数。

2024-01-16 23:16:12 575

原创 C语言通过ODBC函数操作Access数据库(mdb和accdb格式)(char字符数组)

编译环境:Windows XP + Visual Studio 2010数据库:Access 2010,accdb格式本例程只使用char[]字符数组,不使用wchar_t[]字符数组,更适合C语言初学者。如果读取字符串时,db_bind_str提供的字符数组空间小了,db_fetch会执行失败返回-2。由于Windows系统设计原因,char[]字符数组只能存储GB2312编码的字符串,wchar_t[]字符数组只能存储UTF-16编码的字符串。

2024-01-11 22:19:25 638

原创 SHGetFileInfo函数获取48x48图标并在ListControl平铺视图中显示

【代码】SHGetFileInfo函数获取48x48图标并在ListControl平铺视图中显示。

2023-08-08 21:38:48 427

原创 Win32 EditControl多行文本框自动换行,并在添加新行时自动将光标移到末尾

在最后一行按回车键,自动向上滚动:Auto VScroll=True。显示垂直滚动条:Vertical Scroll=True。允许按回车键换行:Want Return=True。自动换行:Auto HScroll=False。设为多行文本框:Multiline=True。

2023-08-05 23:48:19 875

原创 lwip-2.1.3自带的httpd网页服务器使用教程(四)POST类型表单的解析和文件上传

HTML表单有两种提交方式:GET方式和POST方式。表单提交方式由标签的method属性决定。method="get"是GET方式,method="post"是POST方式。另外,标签的action属性指定表单要提交到哪个页面上。如果action为空字符串"",那么就是提交到当前页面上。GET方式提交表单后,所有带有name属性的表单控件的内容都会出现在URL(浏览器网址)上,也就是说GET方式其实就是以URL参数的方式提交表单,这个之前已经讲过了。

2023-07-20 22:30:25 1796 2

原创 lwip-2.1.3自带的httpd网页服务器使用教程(三)使用CGI获取URL参数(GET类型表单)

当LWIP_HTTPD_FILE_STATE=1时,httpd_cgi_handler函数的原型为void httpd_cgi_handler(struct fs_file *file, const char *uri, int iNumParams, char **pcParam, char **pcValue, void *connection_state),多了一个connection_state参数。新式CGI功能的开启方法是在lwipopts.h中打开LWIP_HTTPD_CGI_SSI选项。

2023-07-16 11:12:34 1835 2

原创 lwip-2.1.3自带的httpd网页服务器使用教程(二)使用SSI动态生成网页部分内容

(本节例程名称:ssi_test)电脑上用的Web服务器采用ASP、PHP或JSP动态网页技术后,可以根据HTTP模板(asp、php或jsp文件),动态替换掉网页中的或标签,生成动态网页。lwip自带的httpd也有类似的功能,动态网页的文件扩展名为.ssi,定界符为,其中TAG是不超过LWIP_HTTPD_MAX_TAG_NAME_LEN长度的自定义名称,替换后的文本长度不超过LWIP_HTTPD_MAX_TAG_INSERT_LEN个字符。

2023-07-15 14:26:16 2933 1

原创 lwip-2.1.3自带的httpd网页服务器使用教程(一)从SD卡读取网页文件并显示

本教程使用的单片机是STM32F103ZE,有线网口芯片为ENC28J60。本教程里面的网页由于需要兼容Windows XP系统的IE8浏览器,所以采用HTML 4.01编写,不使用任何前端框架。笔者使用的网页设计软件是Adobe Dreamweaver CS3。开发板PCB文件是公开的,大家可以拿去打印出来,焊好器件后,就可以直接跑本教程提供的所有示例程序。

2023-07-12 23:01:45 2598

原创 APM32F072单片机进入STOP模式,并通过RTC Wakeup Timer和USART1串口接收事件唤醒

【代码】APM32F072单片机进入STOP模式,并通过RTC Wakeup Timer和USART1串口接收事件唤醒。

2023-07-11 21:19:17 507

原创 STM32驱动88W8782/88W8801 WiFi模块,DMA用HAL库写(基于20220213版程序)

原程序的wifi_lowlevel.c里面,DMA是用LL库写的,但是有些客户想要用HAL库写,不想用LL库。那可以在项目属性中去掉USE_FULL_LL_DRIVER的宏定义,然后用如下内容替换wifi_lowlevel.c文件。

2023-07-09 23:45:39 849

原创 自己动手写C语言float浮点数转换字符串的函数

IDE里面支持float和double浮点类型,但是却没有头文件,不支持printf函数,sprintf函数。里面有字符串转浮点数的函数,却没有浮点数转字符串的函数,这个功能得自己编程实现。HT45F24A单片机不带UART串口,要想实现串口功能,只能自己用定时器操作GPIO来模拟UART发送时序。另外,IDE里面的float是3/4精度浮点数(3字节),double是单精度浮点数(4字节)。而电脑上的float是单精度浮点数(4字节),double是双精度浮点数(8字节)。

2023-06-28 22:09:35 1657

原创 STM32驱动Realtek RTL8189ES WiFi模块读取MAC地址并下载固件

先EnableCard,再DownloadFirmware。【RTL8189ES读取片内MAC地址的代码】【RTL8189ES固件下载代码】单片机:STM32F103RE。

2023-06-05 21:45:16 1764 2

原创 C语言实现字符串替换函数str_replace()和删除两端空格函数trim()

str_replace(要替换的内容, 替换后的内容, 原始字符串所在的字符数组, 字符数组的大小);新字符串 = str_replace(要替换的内容, 替换后的内容, 原始字符串, -1);用法2:另外分配空间存放新字符串。用法1:直接在字符数组里面完成。trim(字符数组);

2023-04-26 20:10:43 3215 1

原创 【程序】在STM32单片机上用1700行代码实现基于LwIP 2.1.2协议栈raw API和FatFs文件系统的FTP服务器(20230315版)

请注意:磁盘中存储的时间,STM32单片机的RTC时间,以及MDTM命令输出的时间全都是UTC时间,但LIST命令显示的时间是带时区的时间。有了MDTM命令,FileZilla能按当前电脑系统设置的时区显示时间,而Windows的文件管理器则是按单片机里设置的时区(也就是LIST命令输出的时间)显示时间。在STM32单片机上使用时,因为没有gmtime_r函数,所以必须要在lwip-2.1.2/include/arch/cc.h里面加入:#define gmtime_r localtime_r。

2023-03-13 23:10:46 2626 9

原创 51内核单片机实现Bootloader跳转到用户程序,要求两个程序都要支持中断

本文使用的单片机为笙科的A9129F6,Flash大小为64KB,SRAM大小为8KB。Flash空间规划如下。Bootloader程序用户程序(APP程序)0xf0000xffff配置信息程序间跳转实现起来很简单,只需要使用函数指针就行了。但是难点在于51单片机的中断向量表不支持重定向,中断发生时只能固定从处开始执行。bootloader和app都有自己的中断向量表,而中断发生时进入的始终是bootloader的向量表。程序需要有一个标志变量(定义到xdata的。

2023-02-21 22:51:11 3385 4

原创 IMX6ULL实现linux系统下用hrtimer扫描8位数码管

例如,串口命令行空闲时,数码管扫描速度非常慢,几秒钟才扫描一位。linux系统后台有很多任务,如果我们想要在嵌入式linux环境下实现扫描数码管,并且要求任何情况下,无论linux系统在干什么事情,数码管都不能闪烁,只要肉眼看到一次闪烁就不合格,那就必须采用定时器中断的方式扫描。正点原子的教程上讲了linux下的struct timer_list定时器,这个定时器是基于系统tick值的,最小时间单位是10ms,而且实际还有更大的误差,这显然不能满足要求,用这个频率扫描数码管太慢了,数码管闪烁严重!

2022-09-21 23:55:53 717

原创 of_find_compatible_node查找出所有的节点

要点:(1)第一次调用of_find_compatible_node的时候,第一个参数为NULL(2)后续第n次调用of_find_compatible_node,第一个参数为第n-1次调用of_find_compatible_node的返回值(3)of_find_compatible_node的返回值node,使用完毕后必须调用of_find_compatible_node或of_node_put释放掉程序运行结果:...

2022-06-05 18:50:39 2122 1

原创 在struct file_operations结构体中获取struct cdev,struct device以及自定义数据结构

在正点原子的linux驱动教程中,dev_t设备号、struct cdev、struct class、struct device等结构体都是存放在一个自定义结构体中的,并不是定义成全局变量。这个自定义结构体所占用的内存则是在probe函数中由kzalloc函数分配,例如:struct test_data{ struct gpio_desc *gpios[4]; dev_t devid; u8 devid_valid; struct cdev cdev; struct class *clas

2022-05-21 16:18:08 1045 1

原创 关于设备树里面pinctrl的属性不能生效的问题

Linux下gpio(旧API)和gpiod(新API)子系统主要负责配置GPIO的输入/输出方向,读取输入的电平,和设置输出的电平。pinctrl子系统主要负责设置gpio其他方面的东西,比如配置复用功能(alternate function),配置上下拉电阻,推挽输出或开漏输出,配置输出速度等等。本人阅读了正点原子imx6ull开发板手册“【正点原子】阿尔法Linux开发板(A盘)-基础资料/09、文档教程(非常重要)/【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf”里面的“

2022-04-24 22:29:41 2276

原创 正点原子阿尔法Linux开发板移植Ubuntu18.04根文件系统问题解决

本文参考资料:https://blog.csdn.net/weixin_41608556/article/details/118253137笔者的板子处于出厂状态,uboot和linux内核都是放在emmc上的,板子开机从emmc启动uboot。但ubuntu根文件系统是放在SD卡的一个ext4分区上的,不是以镜像的方式存在。插上SD卡,板子从emmc启动uboot后马上按下回车键进入uboot命令模式,执行:setenv mmcroot /dev/mmcblk0p4 rootwait rwbo

2022-03-05 17:04:16 2766

原创 【程序】Marvell 88W8782/88W8801 WiFi模块创建或连接热点,并使用lwip2.1.3建立http服务器(20220213版)

本程序所用的单片机型号为:STM32F103RE、STM32F407ZG或STM32H743ZI。复位引脚(PDN)应连接到STM32F1/F4的PA15引脚或STM32H7的PE6引脚。不连接PDN引脚将导致固件无法下载!如果模块上有PDN和RESET两个引脚,只需要连接PDN引脚。因为模块上的RESET引脚是悬空的,根本就没有连到芯片上。STM32F1和F4用的晶振是8MHz,请注意检查自己的开发板,看看晶振是不是8MHz。如果是12MHz,在标准库程序中请修改system_stm32f10x.c或

2022-02-13 22:44:30 5063 5

原创 让Win7 IE11浏览器右上角拥有小搜索框

如图所示,刚安装好的IE11浏览器,右上角是没有小搜索框的。如何让IE11浏览器拥有右上角的小搜索框呢?答案是用火狐浏览器在Windows Update Catalog中下载KB4052978这个补丁包并安装。文件名为ie11-windows6.1-kb4052978-x86_92c867719463186f23e992ebf1ad6442df3dd949.msu。...

2022-02-05 11:21:52 794

原创 ROS actionlib库里面取消目标操作(cancelGoal)的方法

client里面,在30%进度的时候,调用cancelGoal()取消操作:#include <actionlib/client/simple_action_client.h>#include <hello_world/DoDishesAction.h>typedef actionlib::SimpleActionClient<hello_world::DoDishesAction> Client;static Client *client_ptr;s

2022-01-24 19:42:52 2299 1

原创 【程序】在STM32单片机上实现基于LwIP 2.1.3协议栈raw API的DHCP服务器,为其他设备分配IPv4地址(20220122版)

使用方法:IP4_ADDR(&ip4addr, 192, 168, 20, 1); // 板子IP地址IP4_ADDR(&netmask, 255, 255, 255, 0); // 子网掩码ip4_addr_set_zero(&gw); // 默认网关netif_add(&wifi_88w8801_uap, &ip4addr, &netmask, &gw, NULL, ethernetif_init, netif_input);neti

2022-01-21 00:07:58 2177 5

原创 WiFi固件bin文件转C数组的程序

编译环境:Visual Studio 2012#include <stdio.h>#include <Windows.h>#define FOLDER_88W8686 "E:\\Users\\Octopus\\Downloads\\SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL\\SD-8686-FEDORA26FC6-SYSKT-GPL-9.70.3.p24-26409.P45\\FwImage"#define FOLDE

2022-01-16 13:20:41 476

原创 在Visual Studio 2012下编译lwip-2.1.3 httpd的makefsdata

步骤一 建立空白工程新建一个工程,项目名称起名为makefsdata。因为mkfsdata是一个控制台程序,所以我们要选择Win32 Console Application。这里很重要,必须要勾选“Empty Project”选项,建立空项目:建好的解决方案目录是C:\Users\Octopus\Desktop\makefsdata,工程目录是C:\Users\Octopus\Desktop\makefsdata\makefsdata。步骤二 解压lwip-2.1.3的部分头文件和

2022-01-14 11:57:04 1702

原创 Quartus II 13.0sp1 NIOS添加include头文件包含路径的方法

如图所示, 源文件目录中haha文件夹下有一个hoho.h头文件。本来要包含这个头文件应该写成#include "haha/hoho.h"的,但是如果写成#include <hoho.h>的话,就需要把haha文件夹添加到include头文件包含路径中,否则编译不通过。在项目上点击右键,选择Properties命令。找到Nios II Application Properties --> Nios II Application Paths,在右边的Application i

2022-01-08 11:59:50 2863

原创 Xilinx Vitis 2020.1添加include头文件包含路径的方法

如图所示, 源文件目录中haha文件夹下有一个hoho.h头文件。本来要包含这个头文件应该写成#include "haha/hoho.h"的,但是如果写成#include <hoho.h>的话,就需要把haha文件夹添加到include头文件包含路径中,否则编译不通过。在左栏“项目名_system”的下一级“项目名”上点击右键,选择Properties命令。请注意是在下图红框处点击右键,而不是绿框处。找到C/C++ General --> Paths and Symbo

2022-01-08 11:28:57 7074 1

C语言在Visual Studio 2010环境下使用regex.h正则表达式函数库

C语言在Visual Studio 2010环境下使用regex.h正则表达式函数库

2024-02-03

C语言用SHBrowseForFolder弹出选择文件夹的对话框

C语言用SHBrowseForFolder弹出选择文件夹的对话框

2024-01-29

C语言通过ITaskbarList3控制Windows7任务栏图标上的进度条

C语言通过ITaskbarList3控制Windows7任务栏图标上的进度条

2024-01-26

C语言通过IXMLHttpRequest以get或post方式发送http请求获取服务器文本或xml数据

C语言通过IXMLHttpRequest以get或post方式发送http请求获取服务器文本或xml数据

2024-01-24

C语言或C++通过IShellLinkA创建或解析lnk快捷方式(使用char字符数组)

C语言或C++通过IShellLinkA创建或解析lnk快捷方式(使用char字符数组)

2024-01-23

C语言通过MSXML6.0读写XML文件(同时支持char和wchar-t字符数组)

C语言通过MSXML6.0读写XML文件(同时支持char[]和wchar_t[]字符数组)

2024-01-17

C语言通过ODBC函数操作Access数据库(mdb和accdb格式)(char字符数组)

C语言通过ODBC函数操作Access数据库(mdb和accdb格式)(char字符数组)

2024-01-11

Win32 EditControl多行文本框自动换行,并在添加新行时自动将光标移到末尾

Win32 EditControl多行文本框自动换行,并在添加新行时自动将光标移到末尾

2023-08-05

自己动手写C语言float浮点数转换字符串的函数

自己动手写C语言float浮点数转换字符串的函数

2023-06-28

88W8782_88W8801 WiFi模块创建或连接热点,并使用lwip2.1.3建立http服务器(20220213版)

本程序所用的单片机型号为:STM32F103RE、STM32F407ZG或STM32H743ZI。

2022-02-13

STM32F103RE_ftp_20200703.zip

在STM32F103RE裸机环境下用lwip 2.1.2驱动88W8801 WiFi模块并运行FTP服务器读写W25Q128上存储的文件(20200703版)

2021-12-29

Marvell 88W8801 WiFi模块创建或连接热点,并使用lwip2.1.2建立http服务器(20200208版)

STM32F103RE或STM32F407VE单片机通过SDIO或SPI接口驱动88W8801 WiFi模块

2021-12-29

STM32H743ZI用SDMMC2驱动88W8801_20220112.zip

本程序所用的单片机型号为:STM32H743ZI 本程序基于:Marvell 88W8801 WiFi模块创建或连接热点,并使用lwip2.1.2建立http服务器(20200208版) 晶振:25MHz HSE 接口:SDMMC2

2021-12-29

RZ-51 6合1扩展板原理图.pdf

RZ-51 6合1扩展板原理图

2021-10-07

【VC6助手】DLL自动复制机

在VC6中开发DLL,每次编译都要把DLL复制到工程目录下,很麻烦很麻烦。用了这个工具,你只需要点击“执行”按钮就完毕了。很方便。 【运行前必须导入vcpcfg.reg注册表文件(都怪我不会编写安装程序)】

2012-04-15

空空如也

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

TA关注的人

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