自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 STM32 FLASH error: FLASH_FLAG_PGPERR & FLASH_FLAG_PGSERR

在STM32F429 上用FLASH 模拟 EEPROM,工程是STM32CubeIDE里面创建和生成的。调试时发现第一次写FLASH时总是出错,第二次及之后再写FLASH则没问题。

2023-04-14 13:11:00 2254 3

原创 把驱动编译进内核

驱动路径通常,linux kernel的驱动文件都放在 drivers/ 里面,根据不同驱动类型放置在不同文件里, 如字符设备驱动 放置在 drivers/char/ 文件夹下。这里,自己创建一个文件夹 para_drv,用来放自己的驱动文件, 具体文件构成如: drivers/para_drv/Makefile drivers/para_drv/Kconfig drivers/para_drv/dtsled/para_dtsled.c drivers/para_drv/dtsl.

2021-12-10 15:33:30 609

原创 ssh 登陆时,报Permission denied (publickey)

网上关于ssh登陆时报Permission denied (publickey)的解决方式有很多,有文件权限问题等,但亲测都无效。以下是我遇到这个问题的解决过程:公私钥是否匹配:通过私钥打印出公钥,并于本地公钥对比#通过私钥打印出公钥ssh-keygen -y -e -f <your-private-key>2. 查看ssh server user(即需要ssh 登陆的 remote host)里的 authorized_keys是否包含上面的pub keycat /home

2021-10-12 14:06:25 4679

原创 systemd 的定时任务

@[TOC](测试脚本设置自己的service设置自己的timer验证timer)前提:想要使用 systemd 的timer 功能,你必须要有几个要件:系统的timer.target 一定要启动要有个sname.service 的服务存在(sname 是你自己指定的名称)要有个sname.timer 的时间启动服务存在测试脚本remove-log.sh#!/bin/bashdate >> /home/xx/remove-logecho "run remo

2021-07-06 12:20:15 546

原创 树莓派中安装docker,并构建自己的镜像

1. 前言最近需要在I.MX6+ubuntu18上运行.net程序,但一直不成功,所以打算在ubuntu中安装docker,在docker中运行。先拿树莓派练手。2. docker的安装这个网上比较多,主要参考菜鸟(https://www.runoob.com/docker/ubuntu-docker-install.html)和docker的官方文档(https://docs.docker.com/engine/install/ubuntu/),有一点需要注意的是,在手动安装时,执行到“***通过

2021-03-05 14:13:44 876 1

原创 C#RS485通信

C#实现485通信1. 功能心跳检测:心跳1s发一次,上电后一段时间内不检测心跳,此后,每3s检测一次是否收到心跳,若3s内一次都没有收到心跳,认为网络故障。500ms内没收到ack,或者ack包的数据域里有错误代码,重发,重发超过3次,仍没有收到ack, 认为网络故障。两帧间隔10ms:每次发送报文前,延时10ms再发送。若网络故障,则关闭串口通信。2. 设计到的C#知识点串口通信:引用类RJCP.IO.Ports定时器: 引用类System.Timers进程间通信:event

2021-02-19 14:28:12 11035 6

原创 适配器模式(C语言) -- already done

一、介绍适配器模式(Adapter Pattern)是作为多个不兼容的模块之间的桥梁。它结合了多个模块的功能。因C语言没有类和继承等特性,所以本文只讨论接口适配器,至于类适配器和对象适配器不在本文讨论范围。例如,在需要解码的程序中,一个上位机(用户)需要跟解码器通信,但是解码器需要能解码不同通信协议的数据包。二、工作原理将一个模块的接口转换成另一种接口,转换后的接口可以兼容。调用者(用户)不需要知道各模块内部的实现,方便增减模块,可以解耦,方便移植三、适配器图解四、代码示例common.

2020-11-10 09:58:02 463

原创 STM32笔记:TIM

stm32 定时器常用寄存器:1.1 自动重装载寄存器(TIMX_ARR):自动装载寄存器是预先装载的,写或读自动重装载寄存器将访问预装载寄存器。根据在TIMx_CR1寄存器中的自动装载预装载使能位(ARPE)的设置,预装载寄存器的内容被立即或在每次的更新事件UEV时传送到影子寄存器。当计数器达到溢出条件(向下计数时的下溢条件)并当TIMx_CR1寄存器中的UDIS位等于’0’时,产生更新事件。更新事件也可以由软件产生。1.2 预分频器( TIMX_PSC):这个控制寄存器带有缓冲器,它能够在工作时..

2020-10-12 15:33:58 1196

原创 C语言之面向对象

C语言之面向对象_网关概述嵌入式设备与外界通信大多是串口,若想通过以太网、WIFI、BLE等通信,则需要外接对应的模块来实现,但每种通信方式对应的网络协议却不相同,为了实现代码复用及减少模块间的耦合,借用面向对象的方式: 只关注通信的属性:接收,处理,发送; 至于具体的通信行为,则由每个通信协议内部实现。将上述分为两个模块:通信的属性–> 协议解析器; 具体通信行为–> 命令解析器模块解析2.1 协议解析器2.1.1 数据结构 struct ProtocolInte

2020-09-01 12:18:11 599

原创 STM32F429的bootloader跳转到APP时跳转失败,无法进入APP

遇到的问题:1.原有的工程,可以正常从bootloader 跳转到APP,但是在修改了APP里一个结构体后,bootloader无法正常跳转到APP。结构体修改前:typedef struct{uint32_t drugItems[1000];} TS_DRUG_ITEMS_COLLECTION;struct TS_DRUG_CATEGORY{uint32_t category_index;TE_STR_ID default_name_id;uint32_t drug_item_cou

2020-05-28 13:06:59 4752

原创 用stmCubeMx创建的stm32f429工程,重写printf

利用stm32CubeMx创建stm32f429的工程,开发环境为IAR。1.初始化串口void MX_USART6_UART_Init(void){/* USER CODE BEGIN USART6_Init 0 *//* USER CODE END USART6_Init 0 *//* USER CODE BEGIN USART6_Init 1 *//* USER CODE...

2020-04-20 09:28:52 470

原创 python爬虫实现翻译程序

主要内容:利用python的requests.post作为工具,爬取有道词典的翻译内容

2020-02-15 10:32:40 322

原创 Windows下使用pip 安装库时报 [WinError 5]

在windows 的terminal 使用 pip install xlrd 报错:(ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: ‘c:\program files\python38\Lib\site-packages\xlrd’Consider usin...

2020-01-14 10:30:51 179

空空如也

空空如也

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

TA关注的人

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