![](https://img-blog.csdnimg.cn/20210402100912340.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
单片机裸机
文章平均质量分 81
此专栏记录自工作以来学习到的通用单片机知识
阳光大男孩_
学会热爱生活,做个酷guy!
工作以后发现,人在工作中的价值是解决问题,问题层出不穷,你能解决怎样的问题,决定了你有怎样的价值。
如果说开发是来创造世界的,那测试就是来拯救世界的,让一场本该在用户面前发生的灾难,提前在自己面前发生。
展开
-
飞翼FTC333G驱动编写
文章目录前言规格书分析代码分析po代码宏数据结构函数体代码思路注意事项补充总结前言这个芯片第一次用的时候,我花了不少心思,在网上找不到相关的编程资料,说实话,规格书都看的费劲,写下这篇博文来分享一下如何使用这颗芯片。规格书分析初看这个时序图时,人可能会有点懵,这个是芯片的输出管脚发出的波形,在写程序时,目的就是解析时序,分析判断出数据是“0”还是“1”。芯片在发出数据信号前,会先发送两个周期的低电平,为启动信号,接着就会连续发送16个数据信号,当要发送数据“0”时,其波形时序是1个周期的高电平+原创 2021-04-30 18:17:13 · 1449 阅读 · 1 评论 -
51单片机通过STARTUP.A51文件将变量初始化为0
文章目录前言项目背景单片机选型简述如何通过启动代码初始化变量要知道的事儿第一步——修改ram空间长度第二步——初始化为0总结前言项目背景前一段时间做过一个项目,相对于单片机内部资源(ram,rom)来说,项目功能较复杂,内部资源主要消耗在两路的串口功能,主要原因在于通信协议很复杂。整个工程代码量较大,16k的flash和1k的ram几乎被榨干了,由于后续还要增加新功能,所以必须要想办法减少代码量,代码重新架构的话,工作量太大,不太现实,于是我把目标放在了变量初始化的函数上,大部分变量都是初始化为0,于原创 2021-04-29 18:17:20 · 1484 阅读 · 5 评论 -
单片机控制蜂鸣器发出和弦音(硬件+软件)
文章目录前言硬件设计电路分析io口分析软件设计准备工作设计思路实际代码H文件C文件说明总结前言刚学习单片机时,用的都是开发板上的蜂鸣器,硬件电路是非常简单的,只需调好管脚的PWM波的频率或者用定时器来翻转IO口就好了,原理图如下:这样子的电路会导致蜂鸣器在发声时只是单纯的哔哔叫,最多变一变音调,给人的感觉会很生硬,我们想要的效果是和弦音(其实我也不太懂什么叫和弦音,只知道前辈们都这么叫,在我看来,好像只是加了个延音的效果,声音结束的不会那么生硬),嘛,总之是比较好听的声音~硬件设计看下和弦音的电原创 2021-04-28 18:10:31 · 8877 阅读 · 2 评论 -
MDK中Target宏定义
前言第一次接触到MDK工程中的宏定义是在原子哥的教程中,如下图所示:当时其实很不理解,这是什么东西,甚至视频里还强调说这个东西非常关键,一个字母都不能搞错。工作一年多以来,慢慢的也摸索出来这是个什么东西了,也会在项目中主动去用它,确实还挺方便的,能减少一定的代码量~使用方法直接po上我使用它的代码段//判断是否出现错误状态 #ifdef ERROR_JUDGE if(error_state.error_code_byte) { //1. system_state.now_state原创 2021-04-28 11:35:16 · 954 阅读 · 0 评论 -
【串口发送中断】基于赛元单片机使用三合一串口的UART功能
文章目录前言中断的方式发送数据代码示例准备工作宏定义及全局变量初始化中断服务函数==发送逻辑函数==启动发送函数总结前言关于赛元单片机触摸的那篇文章确实帮助到过一些网友,后来有网友私信说赛元单片机的三合一串口功能遇到了问题,考虑到我之前的项目中用到过这个串口,也调通了,便想写下这篇文章,目的是帮助遇到问题的网友,以及记录学习的过程。所用单片机型号:SC92F8463B(同系列的都可以参考本篇文章),主频:12Mhz之前用过STM32F103C8T6的单片机,在那次的使用经历中,第一次了解并学习到了串原创 2021-04-27 17:58:21 · 2250 阅读 · 8 评论 -
赛元单片机触摸按键调节及避坑指南(以SC92F8461B的高灵敏触摸为例)
前言项目中前前后后用到过好多次带触摸按键功能的赛元单片机,第一次使用时研究了好久的使用手册。过了一段时间后,再次使用,便又忘了,写下这篇文章,方便今后查阅和回顾。本文以SC92F8461B,静态调试高灵敏触摸为例。流程总览#mermaid-svg-91YQ2eL9CQu0nhKO .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#原创 2021-04-10 18:20:29 · 6157 阅读 · 0 评论 -
大坑请注意!keil平台下51单片机仿真查看语句执行时间
引言最近做一个项目,使用的是带触摸功能的单片机,客户要求上电后led常亮一定的时间,实际测试时发现led常亮时间与程序写入的不一样。在排查时,定位到了问题,源于触摸库的初始化(官方库,源码被封装起来了,开发人员不可见),其消耗的时间比较多。排查过程中,学习了用keil5的debug功能来仿真语句执行时间,写这篇文章用于记录,文中会强调一些大家在仿真中会忽略的问题。常用仿真方案1.用硬件仿真器(或者带仿真功能的烧录器)此仿真方案是用于结合板子来看现象的(像是排查显示bug,串口bug,adc采样b原创 2021-04-07 18:34:16 · 3013 阅读 · 3 评论 -
51单片机,时钟频率,机器周期,与执行指令的时间
前言单片机在执行语句时,需要特定的频率或者说“节奏”,提供节奏的单元一般有两种:外部晶振以及内部RC震荡。晶振很在开发板上很常见,一般都是8Mhz或者12Mhz的。RC震荡单元我们看不到,它们集成在单片机内部,一般的单片机有低速震荡和高速震荡,具体数值见对应的规格书。几个频率的联系与区别明确一下,一般来说,晶振震荡的频率即为时钟频率,不过目前的51单片机都可以设置分频,如下所示:此图中提供单片机工作节奏的单元是内部高速的RC震荡器,其可设置多种分频,假定使用2分频,那么这里实际工作时的 时钟频率原创 2021-04-02 17:20:15 · 12984 阅读 · 3 评论