小小路边草
码龄12年
关注
提问 私信
  • 博客:218,499
    社区:1,355
    问答:2,027
    221,881
    总访问量
  • 79
    原创
  • 510,716
    排名
  • 58
    粉丝
  • 0
    铁粉

个人简介:喜欢尝试各种编程语言,喜欢研究各种技术

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2012-12-21
博客简介:

wenshifang的专栏

查看详细资料
个人成就
  • 获得99次点赞
  • 内容获得59次评论
  • 获得303次收藏
  • 代码片获得159次分享
创作历程
  • 2篇
    2023年
  • 2篇
    2022年
  • 6篇
    2021年
  • 9篇
    2020年
  • 6篇
    2019年
  • 9篇
    2018年
  • 11篇
    2017年
  • 7篇
    2016年
  • 25篇
    2015年
  • 4篇
    2014年
成就勋章
TA的专栏
  • windows开发
    1篇
  • 版本控制系统
    1篇
  • 常用算法
    1篇
  • TI低功耗蓝牙
    4篇
  • TCP/IP协议
    11篇
  • 嵌入式开发
    17篇
  • 数电模电基础
    1篇
  • C-C++
    4篇
  • 成长路途
    4篇
  • Linux脚本
    8篇
  • linux服务
    5篇
  • MFC开发
    2篇
  • IA32-X86
    3篇
  • 数据库
    1篇
  • python
    7篇
  • Linux常用操作
    2篇
  • GIT版本管理
    1篇
  • 操作系统内核实现
    6篇
  • Nordic BLE
    2篇
兴趣领域 设置
  • 人工智能
    语音识别机器学习深度学习神经网络自然语言处理图像处理nlp
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

我的旅途-嵌入式软件工程师成长之路(三)

所以,这种局面必须要改变,作为一个穷人,有了改变的机会就必须牢牢的抓住,这也是我这两年来思考得最多的问题,靠什么都靠不住,这两年还勉强有精力加班加点、再过几年,中国程序员35岁的坎,我怕是有也跨不过去。这结局不是我想要的、一个农村娃,祖辈受够了贫穷,或许他们觉得生活就是如此,改变不了什么,或许就没有想过去改变什么,每天为了材米油盐奔波,可是我、好不容易才跑到大城市,有了翻身机会、有了改变命运的机会,自己都还没有全力以赴、放手一搏,怎么轻易放弃呢?第三,凡事都要做到极致,努力只是及格,只有拼命才能优秀。
原创
发布博客 2023.06.16 ·
535 阅读 ·
2 点赞 ·
2 评论 ·
0 收藏

记一次SM32F407ZG死机原因分析

4. 根据第3步得到的版本信息,查找对应版本的upgrader文件,与芯片dump出来的upgrader完全匹配得到上述信息后,查看该upgrader的MSP地址(0-3)和程序入口地址(4-7)分别为: 0x2000EA, 0x808029d,使用setPC指令重置MCU PC指针,然后执行go指令,成功跳过bootloader直接开机运行upgrader代码,成功进入upgrader后,通过串口可以登录系统,查看文件系统和关键文件,可以佐证前面步骤的信息。执行halt停机指令,成功停机。
原创
发布博客 2023.06.16 ·
2896 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

利用installshiled打包.inf和.sys驱动文件到setup.exe的方法

近期收到一个需求,简单来说就是把某驱动程序打包为一个单独的setup.exe,方便使用。由于之前并没有打包过驱动安装文件的经验,只是简单做过纯应用软件的打包,但是想来应该方法和步骤也差不多,于是研究了一下客户提供的驱动文件结构,也学习了一下windows驱动安装方面的知识,经过几天的尝试,终于找到了一个比较简便的方法。这套驱动程序文件包含了.inf、.sys以及其他一些文件:其中.inf和.sys是标准的windows驱动相关文件,这类驱动需要手动安装,首先插入设备,然后在系统的设备管理里面找到对应
原创
发布博客 2022.01.10 ·
4736 阅读 ·
6 点赞 ·
3 评论 ·
26 收藏

我的旅途-嵌入式软件工程师成长之路(二)

打算写下这篇文章时,距离初入职场已过了6年,生活的折磨,工作的蹂躏,我早已褪去当初稚嫩的面孔。心里有很多话要说,又好像什么都不想说。简单介绍一下这几年的历程吧,继上次说的,2014年底我在深圳一家培训机构完成了4个月的学习,2015年3月份,经过几次面试后以试用期4500块,转正6000的工资待遇入职一家做智能穿戴的公司,正式开始了我的职业生涯。当时公司正处于创立初期,没有什么具体业务也没有能拿得出手的业绩,主要是做一些蓝牙产品,开发属于典型的嵌入式开发,比较符合我的专长。在我入职两两个月左右,我的主管意
原创
发布博客 2022.01.10 ·
3305 阅读 ·
5 点赞 ·
1 评论 ·
1 收藏

Java程序打包为exe可执行文件

这里要用到的是exe4j这个工具,可以在浏览器上直接搜索这个文件名即可找到下载地址,下载安装后,确保jdk环境配置好。以netbeans的java应用打包为例,我们先编写得到一个简单地控制台程序,然后用exe4j打包为.exe可执行文件。一:先使用netbeans编译好工程,并确保程序能正常运行。在netbeans项目的属性页面,依次找到 【构建】-> 【打包】,勾选【编译后侯建】JAR(B)、复制相关库(L)确定,重新构建整个工程,确定dist目录下有生成jar包:二:
原创
发布博客 2021.07.20 ·
546 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Python入坑之os.system()空格或中文乱码处理

今天发现os.system()方法在传递参数时目标程序无法从参数中获取到正确的值。此问题产生的原因大致有两个:一是字符编码不一致导致,这个可以通过修改.py文件的编码来解决,在PyCharm的File->Settings->Editor->File Encodings设置页面可以修改响应的字符编码格式。二是传递的参数或者路径中包含空格,导致解析的时候,包含空格的参数被分割为多个参数,导致目标程序解析错误。如:src_file_name = "..\icon\心率\app_1.bm
原创
发布博客 2021.04.12 ·
6594 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

Python入坑之正则表达式

由于工作需要,最近再一次学习python,很多人看来,我一个写嵌入式C的码农来鼓捣python,估计不是很理解,可能还会有鄙视的。不管怎么说,一切还是工作需要。目前用已经用C和Java分别开发了几个PC端的命令行程序,作为基础工具,通过它们之间的相互调用来协调完成一些自动化工作,这其中还涉及到很多字符处理,逻辑判断和参数传递问题,这就得再设计一套上层逻辑控制程序来实现业务需求,虽然windows的批处理应该也可以实现,但是被称为“胶水语言”的python风头正火,何不蹭点流量呢?进入正题, 有字符串如下
原创
发布博客 2021.04.11 ·
194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

24位bmp位图转为16位bmp位图方法,不失真

在嵌入式产品中,优化存储空间的限制,一般图片都需要压缩处理(MCU资源限,jpg等压缩算法均不能实现),可以将bmp或者jpg转换为16位bmp位图的方式,大多数情况下,失真度还是比较小的,肉眼基本分辨不出来。转换不能采用简单地抛弃低位数据的方法,那样会导致图片严重的失真,这里找了一个java的实现方法: public static void image2RGB565Bmp(String filePath, String saveFileName) throws IOException
原创
发布博客 2021.04.08 ·
2287 阅读 ·
0 点赞 ·
3 评论 ·
2 收藏

函数指针调用与Thumb代码的问题

在验证一个RAM中执行函数时,遇到了MCU进入Hardfault错误的问题。代码载入内存地址0x20003000之后,使用函数指针的方式跳转:typedef int (*func_call)(int, char **);void call_ram_func(void){ uint32_t *fun_base; func_call func; int argc = 2; char *argv[] = {""}; fun_base = (uint32_
原创
发布博客 2021.03.06 ·
594 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

keil创建无启动文件及自定义.sct文件的工程

需求背景:主程序常驻ROM,子程序动态加载到RAM中运行。子程序由主程序动态加载到指定RAM位置执行,子程序可以调用主程序的公共接口(函数),子程序执行完成后返回主程序。
原创
发布博客 2021.03.06 ·
3022 阅读 ·
4 点赞 ·
0 评论 ·
12 收藏

TI BLE开发(二)修改蓝牙连接参数

这里修改蓝牙连接参数,主要是为了降低连接频率,达到低功耗目的。设计的参数包括:连接间隔最小值(Interval Min),连接间隔最大值(Interval Max),从机潜伏次数(Slave Latency),连接超时时间(connSupervisionTimeout)。BLE蓝牙的通讯值通过连接事件来完成的,其中连接事件一直伴随着整个蓝牙连接的周期,不管这其中有没有数据要传输,连接事件一直在周期的
原创
发布博客 2015.07.22 ·
5056 阅读 ·
1 点赞 ·
5 评论 ·
5 收藏

加速度传感器(STK8321)的初始化

阅读STK8321的数据手册,我们知道STK8321是一颗具有 ±2g/±4g/±8g的3轴线性加速度传感器,它支持i²c和spi接口通信,具有极低的电流消耗(微安级),同时具有32级深度的FIFO,因此广泛应用与各类电子设备。我这里将其应用在智能手环上,主控MCU采用NRF52832,通过SPI读取3轴加速度数据,进行常规的步行统计、方向识别等。根据使用场景要求,需要把STK8321设置在低功耗模式,采用等时采样的FIFO方式,并通过中断信号,通知主芯片NRF52832读取FIFO缓存。软件流程如下:
原创
发布博客 2020.11.26 ·
5983 阅读 ·
4 点赞 ·
12 评论 ·
18 收藏

华大HC32F005 Systick问题

在项目中使用了HC32F005这颗IC,遇到一个新版本DDL库的问题,现象是使能了BGR模块后,系统systick中断停止了。int Adc_init(void){ if (Ok != Sysctrl_SetPeripheralGate(SysctrlPeripheralAdcBgr, TRUE)) // 内建电压模块时钟使能 { return Error; } Sysctrl_SetPeripheralGate(SysctrlPeriphe
原创
发布博客 2020.11.22 ·
3051 阅读 ·
4 点赞 ·
0 评论 ·
13 收藏

win32 api读写磁盘物理扇区

最近打算开发一个工具,将我自制的os内核安装到物理磁盘中运行,毕竟在虚拟机上运行与在真实的物理机上运行还是有差别的。因此前期需要验证一下可行性。本来尝试用C语言的fopen,fread,fwrite,fclose这一套函数来编写的,但是fwrite老是不成功,最后换成了win32的文件操作api: CreateFill, WriteFile,ReadFile竟然成功了。本次实验分为3部分,先读取磁盘的第一个扇区并打印内容,然后从磁盘第一个扇区开始,写入制作好包含系统内核镜像的img文件,最后再读取磁盘的第
原创
发布博客 2020.11.05 ·
3195 阅读 ·
4 点赞 ·
1 评论 ·
32 收藏

基于X86架构的OS内核设计之杂记(五)

解决前一篇博文所述问题,execve在释放与父进程的页表共享关系时导致内核重启问题(顺便纠正一下前一篇博文的描述,是我的内核出现了重启,并不是bochs重启了)。先说明一下,内核在启动分页之前,把内核虚拟地址0xC0000000-0xC0800000映射到0x00000000-0x0080000(物理内存前8M),此后内核想要访问内存最前端的8M地址,必须通过页表转换机制。而我们的进程在execve时,将0-3GB的进程空间全部解除映射,即进程页目录表的前768项清零,如果execve此时访问0-3GB
原创
发布博客 2020.11.03 ·
204 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

基于X86架构的OS内核设计之杂记(四)

创建子进程fork与执行新程序execve时页表复制的问题在os内核中,我通过fork系统调用创建新进程,在fork调用中,创建了新进程的tcb结构和内核态堆栈,通过mm_copy为新进程创建了独立的页目录和页表,这些页目录和页表映射到父进程相同的物理页上。/** * the one just the return address for sys_call0_for() * int do_fork(int nr,unsigned long stack_start) */int do_fork(u
原创
发布博客 2020.11.01 ·
199 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

716空心杯正反转怎么看,让正转的电机反转会有什么影响吗?

答:

最近也在研究,猜测可能是由于电刷与换向器之间的接触方式有关系,正转的电机如果反接,可能会导致电刷磨损的比较厉害。

回答问题 2020.10.20

提高BLE传输速度的方法

BLE(Bluetooh Low Energy)蓝牙低能耗本身是为了尽可能的节省电池电量,因此采样间歇式的收发机制,每次传输的数据量非常小,对于ATT来说,典型的是20字节,虽然后续版本的数据量有所增加,但设备厂商有不同的实现方式,设备具体支持多长的数据发送,还是需要应用层做兼容适配,这无疑增加了开发的工作量。本文主要探讨的是如何提高BLE 4.0版本下的数据传输率。通常情况下,BLE传输数据量非常小, 有时候几百毫秒、甚至几秒十几秒才会发送一次用户数据,例如实时温度监控,智能穿戴设备的心率,计步上传等,
原创
发布博客 2020.10.15 ·
4910 阅读 ·
4 点赞 ·
7 评论 ·
18 收藏

8763BF HCI命令交互流程简析

SDK版本: Bee2_SDK_WRISTBAND_V3.0.0(19619)HCI命令通过UART接口传输,任务中发送,中断接收->任务中解析处理,关键流程和函数定义:1,串口初始化DataTrans_Driver_UART_Init()注册中断处理函数DataTrans_UARTIntrHandler2,任务体创建bbpro_hci_receive_task和void bbpro_hci_send_task(1) os_task_create(&bbpro_hci_send
原创
发布博客 2020.09.19 ·
504 阅读 ·
1 点赞 ·
2 评论 ·
2 收藏

关于加速度传感器的一些特性记录

以上是一些关于加速度量程与分辨率的说明及记录,差不多搞明白了,为什么量程增加而分别率可以不变
原创
发布博客 2020.09.18 ·
339 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏
加载更多