自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (15)
  • 收藏
  • 关注

原创 Linux设备驱动开发(5.4.58)-3-NEWCHR

本文目标 本文在上一节的基础上,采用可以指定主设备号,次设备号,手动申请dev_t和自动申请dev_t的API,封装一个全局的对象结构体并用private_data在方法间传递,减少全局变量使用,寄存器操作改用readl和writel,引入cdev、class、device对象。 驱动里面的全局结构体是对象私有数据,fops是对象内部的操作函数,可以通过系统调用对外public。 cdev、class、device应该是驱动对象的各种父类,用来抽象各种子系统的数据和行为,以便实现统一框架。 以上是我个人理解

2020-08-23 00:53:18 286

原创 Linux设备驱动开发(5.4.58)-2-LED-CTRL

官方的io配置文档pinout.xyz 关于r3b的物理地址 官方说明 重点是: If there is no kernel driver available, and a program needs to access a peripheral address directly with mmap, it needs to know where in the virtual memory map the peripheral bus segment has been placed. This varies

2020-08-22 00:51:01 355

原创 Linux设备驱动开发(5.4.58)-1-HELLO-WORLD

重要的点 1、module_init和module_exit是宏,他的参数,即入口和出口函数,原型分别是: static int __init ldd1_init(void); static void __exit ldd1_exit(void); 2、构造函数,要带主设备号,名字,对象方法。 析构函数,要带主设备号,名字。 ret = register_chrdev(LDD1_MAJOR,LDD1_NAME,&ldd1_fops); unregister_chrdev(LDD1_MAJOR,L

2020-08-21 03:09:45 262

原创 基于新版本Linux内核的树莓派3B+驱动开发环境搭建

搭建树莓派内核交叉编译环境 参考文章 官方仓库 https://github.com/raspberrypi 下载工具链 https://github.com/raspberrypi/tools.git 用gitee导入仓库(github慢,梯子麻烦),然后clone: git clone https://github.com/raspberrypi/tools ~/tools 下载过程中准备环境 sudo apt-get update sudo apt install git bc bison fle

2020-08-20 14:03:58 841

原创 层次状态机编程三:状态机设计模式

1、钩子模式: 比如报警器的布防、撤防、报警、在家布防状态,在处理撤防消息的时候,都是跳转到撤防状态,那把这个统一的行为,放到上一级状态实现。 当然,因为在报警状态下,需要停止声光报警,所以报警状态可以重载一下这个消息的处理。 2、提示器模式: 比如wifi模块的数据查询和数据解析,都需要用到轮询机制。 那么可以添加一个消息DataReady,这样把数据查询和数据解析解耦了。 注意,为了提高性能...

2019-04-02 16:11:05 1932

原创 层次状态机编程二:设计QM状态机的基本约定

1、消息在头文件中定义为如下格式: enum GameSignals { /* signals used in the game / TIME_TICK_SIG = Q_USER_SIG, / published from tick ISR / PLAYER_TRIGGER_SIG, / posted by Player (ISR) to trigger the Missile / TAK...

2019-04-02 15:35:10 835

原创 层次状态机编程一:如何创建QM状态机

1、创建AOs 2、创建AO内部状态机 3、创建AO成员对象 4、创建AO函数 5、实例化对象 6、AO构造函数 7、对象c文件中,声明对象,实例化对象,定义构造函数和对象,例如: $declare(AOs::Missile) Missile AO_Missile; $define(AOs::Missile_ctor) $define(AOs::Missile) 8、头文件中extern c文件中...

2019-04-02 09:43:52 1109

原创 实验3:CubeMx+Proteus+STM32 IO口模拟SPI协议的四种模式

目标: 实现spi的Master端。 参考资料: http://bbs.elecfans.com/jishu_441914_1_1.html 这篇文章讲的非常直观易懂,看完就明白了。   1、首先配置口线,串口用来输入和打印,四个io口用来模拟spi,原本准备在一个单片机上同时模拟主从,但貌似不太可行,这种模拟的方式都是阻塞的。   2、proteus连接口线,放spi调试器和...

2019-01-15 16:30:07 6023 4

原创 实验2:CubeMx+protues+AD单通道采样

目标:实现采样读取AD口的电压。         添加全局变量 /* USER CODE BEGIN 1 */ uint16_t ADC1_Value; /* USER CODE END 1 */ 在收到串口指令的时候,进行采样,并在串口打印: void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { ...

2019-01-09 22:17:20 1455 2

原创 实验1:STM32CubeMx+Protues+VSPD仿真实现调试串口

目标: 通过CubeMx实现串口收发配置,用Protues运行仿真程序,串口输入a、b、c、d等指令,进行串口调试。 CubeMx配置:                   (1)导出源代码,并在main.c中添加如下定义,用来接收串口数据: /* USER CODE BEGIN PV */ uint8_t aRxBuffer; //接收中断缓冲 ...

2019-01-08 21:52:11 4243 2

脉搏血氧仪(keil5).rar

//复数的模,模值*N/2 对应该频率下信号的幅度,模值/N直流信号幅度 s1[i].real=sqrtf(s1[i].real*s1[i].real+s1[i].imag*s1[i].imag); s2[i].real=sqrtf(s2[i].real*s2[i].real+s2[i].imag*s2[i].imag); //printf("%d\n",s1[i].real); } s1_max_index = find_max_num_index(s1, 60); //最大幅度值为第几个 s2_max_index = find_max_num_index(s2, 60); //printf("%d\n",s1_max_index); //printf("%d\n",s2_max_index); //Heart_Rate = 74; if(s1_max_index == s2_max_index) { //Heart_Rate = 75; Heart_Rate = 60*100*((s1_max_index+s2_max_index )/2)/FFT_N; //printf("\r\n心率为: %d\r\n",Heart_Rate);

2020-04-09

WRG1_V1.01_cn_wifi_datasheet.pdf

WRG1_V1.01_cn_wifi_datasheet.pdf

2020-03-26

BF5142A-S产品替换使用通知单0320.pdf

BF5142A-S产品替换使用通知单0320.pdf

2020-03-26

AC6921A蓝牙方案标准原理图V1.0.pdf

AC6921A蓝牙方案标准原理图V1.0.pdf 杰里现货主控,可做蓝牙音箱, 也可当通用主控使用。

2020-03-26

AC6936D Datasheet V1.1(3)(1).pdf

AC6936D Datasheet V1.1(3)(1).pdf

2020-03-26

AC6936D TWS耳机标准原理图V1.2(3).pdf

AC6936D TWS耳机标准原理图V1.2(3).pdf 要sdk可以联系我

2020-03-26

BF5836A按压式指纹传感器说明书V1.0.0_20190620.pdf

BF5836A按压式指纹传感器说明书V1.0.0_20190620.pdf

2020-03-26

BF5833AM48+BF5142A挂锁箱包锁应用原理图_20190808.pdf

BF5833AM48+BF5142A挂锁箱包锁应用原理图_20190808.pdf

2020-03-26

(新版)BF5833AM48规格书_20190802.pdf

比亚迪指纹算法芯片,BF5833AM48规格书

2020-03-26

BH67F2742高精度24位ADC,合泰额温枪,耳温枪方案代码

void fun_Vsen_Calculate(void) void fun_Tobj_Calculate(void) void fun_get_Vobj_25(S32 lu16v_vobj_25) void fun_CORRECTION_Calculate(U16 lu16v_table_guide1,U16 lu16v_table_guide2) void fun_TCF_Calculate() void fun_Temp_SurfaceToBody() ‘

2020-03-26

实验3:CubeMx+Proteus+STM32 IO口模拟SPI协议的四种模式

实验3:CubeMx+Proteus+STM32 IO口模拟SPI协议的四种模式,用软件模拟,proteus仿真,效果很清晰。

2019-01-15

CubeMx+STM32+protues+AD单通道采样

CubeMx+protues+STM32+AD单通道采样,通过调节可调电阻,加上串口指令,实时读取模拟口的电压值。

2019-01-09

STM32CubeMx+Protues+VSPD仿真实现调试串口

STM32CubeMx+Protues+VSPD仿真实现调试串口,用protues仿真stm32单片机,并通过vspd模拟串口,用串口调试工具在线调试单片机内部逻辑。

2019-01-08

空空如也

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

TA关注的人

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