- 博客(17)
- 资源 (7)
- 收藏
- 关注
原创 软件模拟IIC的全面笔记(已调通)
因为用的芯片硬件IIC的底层官方函数一直卡死跑不通,于是干脆自己整理了一套软件模拟IIC的相关流程和函数,已经在项目中顺利调通了,项目换芯片也经历过不同芯片的移植,也很方便。
2023-11-02 22:53:33
6287
2
原创 单片机休眠与唤醒二三事
想知道单片机休眠如何像吃了德芙一样丝滑么?想让你的单片机产品在合适的时候休眠待机不再失眠么?想让你的单片机项目随叫随醒不再怠惰长眠么?答案-关于单片机休眠与唤醒的配置都在这里了
2021-08-10 17:35:32
10743
13
原创 Renesas_based_intro
一个自己从零接触瑞萨单片机,从入门到入土的简单学习记录系列。本期介绍了瑞萨家自己提供的两款代码编译器的区别以及在该编译器环境下从零开始新建工程的步骤以及一些细节区别。
2021-05-05 11:03:48
709
原创 Renesas_iodefine_address
Renesas I/O寻址操作写在前面问题发现常见处理追根溯源精益求精写在前面基于Renesas CS+CC编译器中RL78/G13芯片族 编程时对未操作时的错误进行追因,思考与总结的小发现和记录。问题发现在瑞萨官方的编译器CS+CC里进行编程中,无法识别我们常用的I/O位操作。例如流水灯实验中,需要频繁的对某个I/O进行位操作赋值来改变他的输出信号,但是编译器只识别整个I/O寄存器。以下用代码段说明://以P11为例,我们希望编译器可以识别以下代码,方便理解与操作。P11 = 1;P1.1
2021-04-30 17:19:47
724
1
原创 Timer_定时器秘籍之时基构建_囹圄起舞之定时器资源节省大法
当开始用资源有限的单片机来完成数个不同频率的闪烁设置和计时设置时,就开始通过思考和请教来进行对定时器的更高效的利用,那就是时基,用一个定时器完成基础频率的定时,然后在对应定时器中断中通过不同的计数标志的开启和计数来完成。
2021-04-09 18:52:34
270
原创 基于项目快速开发的流程总结
一些与代码无关的流程总结写在前面一、遇到自己没用过得MCU做控制的方案二、基于整个项目时间线去做时间管理和分配写在前面写在前面其实就是为了劝退读者,毕竟这个比起分享更像是自说自话似的自我总结与自我告诫。一、遇到自己没用过得MCU做控制的方案比起自己去根据数据手册一步步配置硬件寄存器一点点功能测试叠加,有几种处理较为高效:找官网上官方提供的例程。找对应供应商的FAE提供例程。找用过相关芯片的同事要相关的项目例程。在解决硬件基础配置的基础上进行逻辑代码的编写和调试,就不会因为硬件以及硬件配置
2021-04-01 13:43:02
198
1
原创 MD_Based
Markdown Basic Grammer内容主要包括:一、各级标题 二、普通字体 三、各级列表 四、手动换行 五、代码段 说明示例常用程序标识关键字 六、表格格式与对齐表格整体居中
2021-03-08 20:32:03
136
原创 Keil中ERROR:MULTIPLE PUBLIC DEFINITIONS的解决
Keil中MULTIPLE PUBLIC DEFINITIONS错误的处理错误解释报错含义纠错思路举例解释代码实现MotorControl.cMotorControl.hLED.cLED.h总结用 ~~文字~~ 人话解释警告第一次用Markdown写点东西,所以在内容结构和节奏上不如以往简洁,为了节约大家获取信息的效率,可以通过目录直接跳转去对应的部分看相应的内容。错误解释报错含义多个文件中变量的重复定义纠错思路在正确且合理的地方源文件中进行正确合理且不重复的定义或声明。举例解释比如说,用L
2021-02-23 20:00:57
10235
原创 【个人记录】具有写保护的特殊寄存器访问
N76E003的PWM5在P15输出时因地址处在有写保护的页面,需要额外的语句进行访问。除了跟其他PWM配置一样的使能和输出语句之外,在对对应寄存器进行赋值操作之前都要加上相应语句。 set_SFRPAGE; PWM5H = 233>>8; PWM5L = 233; clr_SFRPAGE;可以看到赋值操作前后加上的一组语句就是为了打开对应地址寄存器的写保护。焦头烂额了一下午之后通过跟例程得相关语句对比分析,不断尝试,查询手册,得以解决。起因是为了测试P.
2021-02-07 09:45:58
660
转载 Keil中UNCALLED SEGMENT警告的处理方案
首先解释一下警告的含义:出现了已经定义过但是没有显式调用过得函数。经常出现在我们调试代码的时候改来改去顾头不顾尾的时候,尤其是屏蔽掉某些部分测试其他功能的时候。也就是说,当我们在解决其他问题的调试的时候,是可以无视这类型的报错的,毕竟他不会影响别的部分嘛。但是呢,即使没有调用这个函数,Keil仍然把它编译连接进整个程序,不过浪费点ROM倒是不心疼。相比之下,这个未被调用的函数中的变量,不会被列入覆盖分析范围内,即这些变量占的空间不能被回收,这样一来,对于为数不多的RAM资源就造成了巨大的浪费。
2021-01-07 20:21:59
6094
转载 进程同步与互斥练习(伪代码)——某银行提供1个服务窗口和10个供顾客等待的座位。
1.某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:cobegin { process顾客i { 从取号机获得一个号码; 等待叫号; ...
2019-06-07 15:46:22
19915
6
转载 死锁处理类型浅析
2019/6/6,见于习题,搜索相关后总结如下:题目:若系统S1采用死锁避免方法,S2采用死锁检测方法。下列叙述中正确的是:B.I. S1会限制用户申请资源的顺序,而S2不会II. S1需要进程运行所需要的资源总量信息,而S2不需要III. S1不会给可能导致死锁的进程分配资源,而S2会A.I、IIB.II、IIIC. I、IIID. I、II、III关于死锁的...
2019-06-07 15:21:48
2969
4
原创 矩阵键盘控制拉闭幕式流水灯
实现效果描述:初始状态为全灭,根据按下不同的矩阵键盘键位有不同的流水现象:包括两种速度的拉幕式和闭幕式流水,以及另外四种花式流水现象一共八种现象。程序清单如下:/*******************************************************************************************************************...
2019-01-15 01:31:33
5857
6
转载 蒙特卡洛随机模拟的MATLAB实例解析纪录
蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数"的计算方法。假设我们有个y=x^2的表达式,如何用MC方法求得函数在[0,1]区间的定积分呢?定积分可以用面积来求解,也就是通过求箭头下的面积为了衔接方便,照顾新手,给出作图程序吧x=0:0.01:1;y=x.^2;plot(x,y);MC方法实现非常简单,通过下面的代码就可以staus=10;...
2018-08-28 09:52:02
36578
原创 STM32库函数和寄存器操作的思考
从开始接触51单片机,到现在开始转型学习功能更加强大的STM32f407系列,学习过程中引入了库函数及相应操作,当时赶着进度做点东西出来,有点不求甚解。现在返回来求索:相比于原来51单片机的寄存器,32系列的寄存器无论是个数还是实现功能时多个寄存器之间的调用配合,使用难度都高了不少,所以有了库函数和相应的固件库来减少难度。先说一下固件库(这个我们最开始安装完MDK缺了它总是各种报错的东西)和相应库...
2018-04-30 13:49:17
2561
原创 STM32学习中MDK报错及其解决方案和一些小细节汇总 跟进更新
一、warning: last line of file ends without a newline原因:编译器要求有空行作为程序的结束解决办法:将光标移到提示告警的代码最后一行(有代码的那一行)然后按住del键,直到确定下面没有回车行,最后回车一下或多下即可。(来源:网络搜索。) (比较好用)二、Deprecated declaration WWDG_NVIC_Init -
2018-01-30 19:36:56
1130
原创 Win10系统下安装MDK5,出现“The ARM C/C++ COMPILER已停止工作”解决方案
文章的开始提供一个我个人归类尝试之后比较好用的MDK5的相关包百度云链接如下:链接:https://pan.baidu.com/s/1jHNWJGi 密码:smaw 里面包含MDK5,注册机,STM32F1F4F7三个系列的pack包,以及相关使用指导。如果安装本文所附文件(注册时打开两个软件都需要管理员权限运行)仍有同样问题,原因可能有如下四个可能。 一 电脑用户名使用了中文。 解决
2017-11-29 19:01:55
6125
全国大学生电子设计竞赛设计报告模板(最新).doc
2019-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人