嵌入式
文章平均质量分 64
pirateeee
这个作者很懒,什么都没留下…
展开
-
把驱动编译进内核
驱动路径通常,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 · 610 阅读 · 0 评论 -
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 · 11098 阅读 · 6 评论 -
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 · 1217 阅读 · 0 评论 -
C语言之面向对象
C语言之面向对象_网关概述嵌入式设备与外界通信大多是串口,若想通过以太网、WIFI、BLE等通信,则需要外接对应的模块来实现,但每种通信方式对应的网络协议却不相同,为了实现代码复用及减少模块间的耦合,借用面向对象的方式: 只关注通信的属性:接收,处理,发送; 至于具体的通信行为,则由每个通信协议内部实现。将上述分为两个模块:通信的属性–> 协议解析器; 具体通信行为–> 命令解析器模块解析2.1 协议解析器2.1.1 数据结构 struct ProtocolInte原创 2020-09-01 12:18:11 · 600 阅读 · 0 评论 -
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 · 4790 阅读 · 0 评论 -
用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 · 472 阅读 · 0 评论