- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 关于MaterialDesignInXamlToolkit编译不通过问题解决方法
从github上下载的工程项目,直接用vs2022打开,生成解决方案失败,若.Net SDK版本与globle.json中指定的版本不一致的话,直接删除工程目录下的globle.json文件,再清理下解决方案,重新生成即可。
2023-06-13 15:31:49
660
3
原创 如何自动识别EEPROM的容量
最近遇到了存储不足的问题,需要扩容,原本是使用24LC256,扩容使用的是24LC1025,为了配备了24LC256的设备也可以升级到新版软件,并且不需要额外进行设置存储芯片型号,在软件上做了EEPROM容量自动识别,用于区分设备配的是24LC256还是24LC1025。24LC256地址范围为0x0000~0x7FFF,设备地址0xA024LC1025地址范围0x0000~0x1FFFF,设备地址0xA0实现自动区分流程:1、通过I2C总线发送读取设备地址0xA9(读取24LC1025地址
2021-07-14 09:16:22
1981
原创 STM8S207踩过的坑
1、stm8s207是8位单片机,在中断中处理32位数据会导致异常复位若跟踪芯片复位信息的话,会发现经常出现非法操作码导致复位,基本上都是这个问题引起的。解决办法:(1)在中断中不使用32位数据,如需要使用32位变量,可以使用联合体来解决(2)使用8位数据做标记,在主循环中处理32位数据2、关于定时器使用首次不准问题开启定时器中断后,首次时间间隔未与预期一致解决办法:...
2021-07-01 17:18:34
891
原创 DS16PIC30F60x/40x系列存在在线升级情况下的看门狗功能
最近在测试项目的看门狗是否能正常触发的时候,发现在应用程序里明明已经开启了看门狗(_FWDT(WDT_ON)),在主循环中放置了while(1); 测试语句,运行的过程中,应用程序没有复位!!!!查看芯片手册关于看门狗的使能操作,程序中_FWDT(WDT_ON)就是开启该功能,为何还是无法触发看门狗复位???程序使用到了在在线升级功能(bootloader),会不会是因为bootloader中未开启导致的?经查确实是在bootloader中未启用看门狗,接下来就是做实验测试了,修改bootloade
2021-07-01 17:17:16
199
原创 PIC 随笔记录
1、中断函数编写示例代码中的中断函数如下/****** START OF INTERRUPT SERVICE ROUTINES *********//* Replace the interrupt function names with the *//* appropriate names depending on interrupt source. *//* The names of various interrupt functions for *//* each d
2020-06-10 17:20:41
429
原创 搜索引擎常用搜索技巧
一、常用的搜索技巧filetype的使用在搜索的内容后加入 filetype:类型如pdf、doc等。未加filetype的情况下:site的使用在特定的网站中搜索内容。关于引号的使用平常都搜索框内直接输入内容,开始搜索。比如这里我输入“华为认证HCIP”,得到的答案这些字有可能连在一起,也有可能是分开的。但我如果我想搜索完整包含这些字的内容呢,那...
2019-06-21 16:35:54
1073
原创 linux下硬件看门狗驱动
看门狗工作原理在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零,不让复位信号产生。如果系统不出问题,程序按时“喂狗”,一旦程序跑飞,...
2019-06-21 09:33:21
3808
原创 linux——FM24V10驱动
FM24V10是i2c接口的非易失性RAM,通信时序与EEPROM一致。使用系统自带的at24.c驱动进行相关修改,使它适用与FM24V10。 EEPROM均配有写保护引脚(WP),故在驱动中与写入相关的函数首尾要加入WP引脚的处理,FM24V10写入时需WP为低时才有效。内核空间中使用gpio,需包含头文件<linux/gpio.h>,调用gpio_...
2019-04-23 17:15:45
1149
原创 linux内核空间使用浮点计算问题记录
驱动实现过程中涉及到浮点计算,使用整型数据放大处理会溢出导致结果错误(在内核中不建议使用浮点计算相关处理,故网上相关的资料比较少),经多方查找,终于找到了在内核中链接libgcc库的方法,主要参照以下两个链接:1、linux内核编译中undefinedreferenceto`__aeabi_i2d'的解决办法2、undefined reference to `raise' 解决方法...
2019-04-16 09:35:49
1049
原创 linux——sd3088驱动
因sd3088采用i2c接口,故本驱动参照自带驱动rtc-pcf8563.c进行修改。主要实现时间读取与设置,与闹钟相关未实现。1、源码如下#include <linux/i2c.h>#include <linux/bcd.h>#include <linux/rtc.h>#include <linux/slab.h>#inclu...
2019-03-21 13:30:46
920
1
原创 linux 按键轮询驱动(gpio_keys_polled.c)
系统自带了gpio_keys_polled.c驱动文件,硬件资源是通过设备树获取,在不修改设备树的情况下,可以直接在驱动文件中对相关的结构体进行赋值。1、定义当前使用的IO按钮数组static struct gpio_keys_button buttons[]={ { .gpio = 41,//IO引脚号,根据实际情况修改 .code = KEY_...
2019-03-07 10:26:37
4151
原创 ucosiii中如何确定任务堆栈的大小
在单片机中使用uC/OS III 时,RAM的空间是需要考虑的,在创建任务的时候需要指定任务的堆栈大小,给大了呢浪费资源,给小了呢又会导致堆栈溢出。uC/OS III提供了堆栈使用情况的统计函数,这有便于我们对与堆栈大小的确认。 函数原型如下:void OSTaskStkChk(OS_TCB *p_tcb,CPU_STK_SIZE *p_free,CPU_STK_SIZE *p_us...
2018-05-18 13:33:33
5017
原创 ucos iii 低优先级任务未执行问题
刚接触ucosiii不久,初次在项目中使用。根据网上的教程将ucosiii成功移植到STM32F103上。 通过几个简单的任务验证了ucosiii可以正常任务切换执行,当添加多个任务,每个任务的优先级不一样时,发现低优先级任务无法执行,将低优先级任务的优先级提高就又可以执行。 在任务创建函数中,对优先级有限制,超过限定值则任务无法创建。if (prio >= OS_CFG...
2018-05-18 11:54:12
2902
ucosiii参考手册
2018-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人