- 博客(31)
- 收藏
- 关注
原创 【踩坑记录】inet_ntoa多次调用返回同一个值
调试中打印服务端和客户端的ip地址,代码如下,最终都是一个值。函数返回一个静态分配的缓冲区,多次调用,会覆盖上一次的结果。
2024-03-22 11:09:24 237
原创 按键防抖记录
自复位按键,在按下与弹起的时候,会有机械震荡产生,一般是毫秒级,所以高频的CPU采集数据时,会出现一次按键操作,识别为多次,造成按键多次触发的情况。所以需要进行按键防抖操作。按键防抖分和。
2024-01-18 17:04:43 659 1
原创 STM32 HAL库开发(五)- CAN通信
首先开启HSE时钟,外接的8M的晶振。打开时钟树,将PCLK1的频率设置为36MHz。开启CAN通信,并设置波特率,我这里设置的是250K。CAN波特率 = APB1_PCLK1/分频/(tq1 + tq2 + ss)其他频率可以参考其他大佬的设置波特率配置表开启接收中断,这里根据需求选择RX0,我们只用FIFO0这里测试,我们选择回环模式。
2023-12-26 18:34:23 1102
原创 STM32 HAL库开发(四)- SPI通信(si4463芯片)
这里我们选择spi2,可以手动点引脚选择或者直接左侧菜单启用spi2,右侧的引脚会自动配好。从供应商那边拿到了一个si4463的demo,先建立一个si4463的目录,然后看下结构。这里配置SPI的参数,跟标准库的结构体一样,配好可以自动生成配置程序,很方便。RX和TX可以mcu控制,也可以si4463自己控制,这里根据实际来。这里spi刚开始读到是0xFFFF,问题肯定是SPI没有正常。IRQ是中断输入,这里配上拉输入,这个是低电平有效。SEL是片选信号,SDN是芯片使能,都配推挽输出。
2023-12-20 17:49:55 1080 1
原创 STM32 HAL库开发(三)- ADC采集模拟信号
1个ADC实现2个通道的同步读取。可以使用间隔模式轮询或者扫描模式DMA转运。由于配置2个通道,这里会自动选择扫描模式。也不用开启自动,我们手动按次触发。重写HAL_ADC_ConvCpltCallback函数,方便读出数据。在循环里按次开启adc采集,dma会自动转运数据到指定的地址。3个启动函数,分别是启动、中断启动、DMA启动。首先配置两个adc引脚,adc1的2个通道。配置高了这里会报错。这里我们选择扫描模式DMA转运。ADC获取双轴摇杆的值。配置DMA自动转运。
2023-12-13 15:17:10 1462
原创 STM32 HAL库开发(三)- USART串口
也可以使用中断模式, 使用HAL_UART_Receive_IT开启,重写HAL_UART_RxCpltCallback回调处理函数。仔细一看,xxx_MspInit中配置的是与硬件相关的,而xxx_Init与硬件无关的配置。重写HAL_UART_RxCpltCallback函数,在收到中断后,会自动调用回调函数。这里设置串口的参数,异步,波特率115200,数据位8位,无校验,停止位1位,全双工。可以使用main的while循环里,使用HAL_UART_Receive轮询接收,,打开串口的全局中断。
2023-12-13 10:29:13 504
原创 STM32 HAL库开发(一)- STM32CubeIDE安装与项目创建
由于本人刚开始搞嵌入式,决定直接使用新版的STM32CubeIDE软件,搭配界面化配置及HAL库,直接放弃keil。PS:keil很强,依然主流。
2023-12-04 15:57:42 738
原创 github访问解决方案
github访问解决方案一、修改host文件打开网站 IPAddress.com搜索 github.global.ssl.Fastly.net搜索 github.comhttp://github.global.ssl.Fastly.net 199.232.69.194http://github.com 140.82.113.4http://gist.github.com 140.82.113.3http://help.github.com 185.199.108.154http://n
2021-12-01 20:19:24 63
原创 Java简单排序算法
冒泡排序每次比较,都交换值。 //冒泡排序 public static int[] bubbleSort(int[] arr){ if(arr == null || arr.length == 0){ System.out.println( "排序失败" ); return arr; } for(int j = arr.length-1;j > 0 ; j--){ for(int i=0;i<j;i++){ if (arr[i]>arr[i
2021-05-26 17:43:10 93
原创 国际化实现-Springboot
1、首先需要建立静态资源这个是不同语言之间的对应关系。2、html中获取国际化静态资源这里使用Thymeleaf来获取 #{}然后定义两个超链接来传递参数格式:zh_CNen_US语言_国家<!doctype html><!--增加th头--><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="utf-8">
2021-04-14 12:06:41 119
原创 SMM整合配置模板
这段时间,ssm框架整合简直就是配置地狱,经过大量练习,发现还是记不住。索性写个博客,mark下,方便后期写配置直接来取。Maven篇资源导出配置这个是我自己用的版本,大家随意,我就是放个样式方便后期cv,如果大家配置问题的话,回复交流。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3
2021-04-09 12:09:10 258
原创 静态代理和动态代理
代理就是 A找B做事,C看到的是B在做事,看不到A;我个人认为,就是加了一层,意义在于,B可以对A做的事情,进行拦截和加强,同时也可以记录日志等信息。静态代理:对比现实生活的中介、婚介等等。为什么叫静态代理:因为这个代理类是通过固定的代码定义的,不是由代码动态生成的类。首先定义一个接口IA和B都去实现这个接口I其中B是代理类,定义一个成员变量是A的对象B执行方法的同时,代用A对象来执行方法。动态代理:与静态代理相比,就是能动态生成。首先定义一个接口...
2021-04-09 11:33:18 76
原创 smbms
SMBMS 超市订单管理系统一、项目架构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jPexhHy2-1617433609007)(smbms.assets/image-20210403150356103.png)]1、数据库结构user private Integer id; //id private String userCode; //用户编码 private String userName; //用户名称 private String use
2021-04-03 15:08:20 216 1
原创 JavaWeb
JavaWeb一、Tomcat问题:启动tomcat,一闪而过解决方式。使用命令行cmd启动startup.bat,发现是没有配置JAVA_HOME\JRE_HOME环境变量。因为tomcat使用java写的。D:\Java\environment\apache-tomcat-10.0.4\bin>startup.batNeither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of t
2021-04-03 15:06:35 140
原创 MySQL
my数据库一、MySQL1、介绍DBMS(数据库管理系统)MySQL是一个关系型数据库管理系统。瑞典MySQL AB 公司 ,Oracle公司最好的RDBMS(Relation Database Management System)应用软件之一。开源的数据库软件~体积小、速度快、总体拥有成本低官网:https://www.mysql.com/版本5.7 , 8.02、安装不要使用exe版本,尽可能使用压缩包安装;解压到Java环境目录(习惯)配置环境变量Path加
2021-04-03 15:06:07 160
原创 JVM探究 随笔
JVM探究谈谈对JVM理解? java8虚拟机和之前的变化?什么是OOV ? 什么事栈溢出? 怎么分析?JVM的常用调优?内存快照如何抓取, 怎么分析Dump文件?谈谈JVM中, 类加载器你的认识?JVM的位置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Obh4E7Y-1617090571431)(JVM.assets/image-20210330083801211.png)]JVM的体系结构[外链图片转存失败,源站可能有防盗链机
2021-03-30 15:50:00 170
原创 注解与反射
一. 注解1.元注解/** * Author:ckvsok * Date:2021/3/25 **/package annotation;import java.lang.annotation.*;@MyAnnotationpublic class test01 {}//自定义一个注解@Target(value = {ElementType.TYPE , ElementType.FIELD , ElementType.METHOD}) //作用目标 : 是个数组(分别是cl
2021-03-28 22:49:21 65
原创 多线程
一、线程简介程序—进程—线程线程就是独立的执行的路径。即使没有创建线程,后台也会有主线程和GC线程等。main()称为主线程。在一个进程中,如果开辟多个线程,线程的运行由调度器安排调度。线程会带来额外的开销,如CPU调度时间,并发控制开销。每个线程在自己的工作内存交互,内存控制不当会造成数据不一致。二、线程实现(重点)Thread自定义线程类继承Thread类重写run()方法调用start开启线程注意:线程开启不一定立即执行。不建议使用:避免OOP单继承局限性/**
2021-03-24 08:42:30 92
原创 Vagrant Linux CentOS7 安装Docker
Vagrant Linux CentOS7 安装Docker参考官方文档:https://docs.docker.com/engine/install/centos/#install-using-the-repositoryUninstall old versionsOlder versions of Docker were called docker or docker-engine. If these are installed, uninstall them, along with associ
2021-03-08 15:25:28 91
原创 Docker安装MySql等组件
Docker安装MySql等组件https://hub.docker.com/查找对应需要安装组件版本例如mysqlStart a mysql server instanceStarting a MySQL instance is simple:$ sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag$ sudo docker run --name mysql -e MYSQL_RO
2021-03-08 15:24:56 105
原创 java.io.NotSerializableException:不可序列化异常
java.io.NotSerializableException:不可序列化异常问题描述:原因分析:解决方案:问题描述:提示:这里描述项目中遇到的问题:例如:执行加入缓存的时候,报了这个不可序列化异常。APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1
2021-03-08 12:26:15 610
原创 Vagrant 快速搭建Linux开发环境
Vagrant 快速搭建Linux开发环境安装软件百度搜索进入官网下载软件VirtualBoxVagrant配置 Vagrant在 Windows 系统中,可以这样操作:新建系统环境变量,环境变量名为 VAGRANT_HOME,变量值为 D:\VirtualBox\.vagrant.d设置虚拟机存放目录下载虚机镜像CentOS .box文件添加 box接下来我们需要将下载后的 .box 文件添加到 vagrant 中。$ vagrant box listThere are
2021-03-08 11:52:53 175
原创 maven 配置指南
maven 配置指南打开 maven 的配置文件( windows 机器一般在 maven 安装目录的 conf/settings.xml ),在标签中添加 mirror 子节点:<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repo
2021-03-08 11:05:31 87
原创 GUI编程入门
GUI编程1、简介GUI的核心技术:Swing AWT组件窗口弹框面板文本框列表框按钮图片监听事件鼠标键盘事件2、AWT2.1、AWT介绍2.2、组件和容器2.2.1、Frame问题:发现窗口关闭不掉,停止java运行。package AWTDemo;import java.awt.*;//GUI的第一个界面public class Demo1 { public static void main(String[] args) {
2021-03-04 17:33:29 190 2
原创 稀疏数组
稀疏数组当一个数组中大部分元素为0,或者为同一值得数组时,可以使用稀疏数组来保存数组。稀疏数组的处理方式:1. 记录数组一共有几行几列,有多少个不同值;2. 把具有不同值的元素的行列和值记录在一个小规模的数组中,从而缩小程序的规模;应用:编写五子棋游戏中,有存盘退出和续上盘的功能。代码:package ArrayDemo;public class Demo2 { public static void main(String[] args) { //array1:
2021-03-03 11:42:23 92
原创 基本的Dos命令
基本的Dos命令打开CMD方式开始+系统+命令提示符Win+RShift+鼠标右键,选择打开命令行窗口资源管理器的地址栏,输入cmd,然后回车Dos命令#盘符切换 盘符:#查看当前目录下的所有文件 dir#切换目录 cd 路径 不同盘符之间切换 cd /d 路径 进入上一级目录 cd ..#清理屏幕 cls#退出终端 exit#打开应用 计算器 calc 画图 mspaint 记事本 notepad #查看电脑IP ipconfig#ping命令 ping#
2021-03-02 17:41:48 70
原创 Windows常用快捷键
Windows常用快捷键Ctrl+C :复制Ctrl+V :粘贴Ctrl+A :全选Ctrl+X :剪切Ctrl+Z :撤销Ctrl+S :保存Alt+F4:关闭窗口Shift+Del:永久删除Win+R:运行Win+E:打开我的电脑Ctrl+Alt+Del:打开任务管理器Alt+Tab:切换程序...
2021-03-02 17:19:51 81
原创 Markdown学习
Markdown学习上面是md展示的样式,下面代码框里有对应代码。标题一级标题二级标题三级标题字体斜体粗体斜粗体删除线引用引用内容分割线图片超链接点击跳转到我的CSDN列表有序1有序2无序A无序B表格名字性别生日张三男2020.1.1代码Markdown代码# Markdown学习## 标题# 一级标题## 二级标题### 三级标题## 字体*斜体***粗体*****斜粗体***~~删除
2021-03-02 17:07:16 118
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人