mcu
文章平均质量分 68
shareinfo2018
复杂问题简单化,力求精简强悍。
展开
-
STM32独立看门狗(IWDG)和窗口看门狗(WWDG)的区别【转】
来自:https://blog.csdn.net/lyh290188/article/details/1043712701.看门狗介绍 看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。使用看门狗保证系统正常地运行是非常有必要的。我们在设计产品时,代码以及硬件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常对其进行复位,系统的可靠性将大打折扣。看门狗分为软件看门狗和硬件看门狗两类,其原理都是使用一个独立定时器来计时,超出时间就会产生复位信号,主要区别看是否具有独立的硬件结构,如果有.转载 2021-03-24 17:41:18 · 562 阅读 · 0 评论 -
STM32的串口1,2,3,4,5初始化
串口1:void Usart1_Init(u32 baud){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2Periph...原创 2019-11-15 12:09:31 · 7254 阅读 · 1 评论 -
PADS原理图技巧(【改变原理图背景】 【*.ld9 *.ln9 *.pd9 *.pt9的定义】【增加电源符号】)【转】
来自:https://blog.csdn.net/chengdong1314/article/details/57876421pads原理图背景默认是黑色的,改变背景颜色的办法如下:ctrl+alt+c就出来一个界面了,里面的background就是图纸的颜色了,lines就是线的颜色了。比如你想让图纸变成白色,就先点击颜色框里的白色,然后再点击background就变了摘录于:http://zh...转载 2018-03-25 21:40:09 · 3049 阅读 · 0 评论 -
FFT初解【转】
来自:http://blog.chinaunix.net/uid-24517893-id-336736.html一.前言首先申明俺不是一个算法工程师,俺是一个底层驱动工程师,有人会发问一个底层驱动工程师需要这个吗?但是我不幸的告诉你,确实是需要的,不过我们不要像算法工程师那样搞得很精通,但是还是需要去了解这是个什么东西。说实话,这个东西在大学时候学过,还好好的去理解了一样,不过到现在忘的差不多了,...转载 2018-03-31 14:54:16 · 544 阅读 · 0 评论 -
memmove 和 memcpy的区别以及处理内存重叠问题【转】
来自:https://blog.csdn.net/li_ning_/article/details/51418400区别:memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:[cpp] view plain copyvoid *memcpy(void *dst, const void *src, size_t count)...转载 2018-04-13 15:06:34 · 301 阅读 · 0 评论 -
关于STM32能否使用malloc申请动态内存的问题【转】
来自:https://blog.csdn.net/c12345423/article/details/53004465首先,malloc( )属于标准C语言函数,当然可以在单片机上使用,如STM32可以先在启动文件中设置heap的大小,再使用动态内存分配: Heap_Size EQU 0x00000200 \\也就是 512字节;但是一般单片机的内存...转载 2018-08-31 14:31:28 · 1928 阅读 · 0 评论 -
自写单片机malloc,高效利用ram,不再有内存碎片
单片机应用中,malloc/free产生内存碎片的原因:标准内存动态分配是动态链表进行管理。由于malloc返回的是一个指针再加上单片机没有mmu,使得分配的指针就像一个个钉子钉在内存中了。这就导致内存管理非常困难,从而产生我们常说的内存碎片。我们来举一个极端的例子,导致大量内存碎片:1. 单片机的RAM为1Kbyte,为了说明和计算方便我们忽略掉链表占用的空间,只计算实际存储空间...原创 2018-09-08 22:52:23 · 12290 阅读 · 11 评论 -
为什么中断处理函数中不能使用printf语句【转】
来自:https://blog.csdn.net/innerpease/article/details/7965709一个ISR应该避免调用不可重入函数。一些标准库函数是不可重入的,如经常实现的malloc和printf。因为中断可能发生在执行任务中,因为任务可能是在“malloc”的函数调用中,如果ISR调用此相同的不可重入函数,由此产生的行为可能是灾难性的。不可重入函数是指这样的一类函数...转载 2018-09-07 13:21:43 · 3476 阅读 · 0 评论 -
不用单片机驱动1602LCD
很久前的测试,本意是想用分立元件搭建一个cpu,也成功实现了8条命令,32字节的寻址空间,只是比较乱,后来整理了下,下一篇上传程序跳转功能部分。这部分主要实现程序的PC功能的测试,纯属测试,也有点新意。使用元件有:1个数字方波发生器,3个计数器,2个存储器,1个lcdc.bin文件内容:d.bin文件内容:...原创 2019-06-30 15:08:52 · 609 阅读 · 0 评论 -
【STM32】使用keil提供的JSON库——Jansson【转】
来自:http://blog.csdn.net/yannanxiu/article/details/52712723 前言 在这篇文章中博主简单介绍了如何把cJSON移植到STM32上,实际上,keil环境下已经有官方的JSON库了——Jansson。下面是讲解如何导入和使用Jansson。下载地址:http://www2.keil.com/mdk5/partnerpack...转载 2017-10-17 16:20:07 · 4235 阅读 · 2 评论 -
STM32: 实现AES 128-BIT加密算法 - 标准实现【转】
来自:https://www.brobwind.com/archives/1255在之前的文章“STM32: 实现Advanced Encryption Standard(AES) – 128-bit加密算法”中实现的加密算法只是为了解密特定的文本,目的性比较强,用此算法加密过的文本,无法使用openssl或者是网上提供的在线AES工具进行加密或者解密,这就相对地增加了破译的难转载 2017-11-10 09:26:06 · 10320 阅读 · 0 评论 -
n久前的51汇编程序
n久前的51汇编程序原创 2015-08-28 15:42:27 · 632 阅读 · 0 评论 -
n久前写的avr程序
n久前写的avr程序原创 2015-08-28 15:40:27 · 939 阅读 · 2 评论 -
I2C死锁原因及解决方法
I2C死锁原因及解决方法现象:单片机采用硬件i2c读取E2PROM,当单片机复位时,会有概率出现再无法与E2PROM通信,此时SCL为高,SDA一直为低原因:当单片机正在和E2PROM通信,如果主正好发生打算发第9个时钟,此时SCL为高,而从开始拉低SDA为低做准备(作为ACK信号),等待主SCL变低后,从再释放SDA为高。如果此时正好单片机复位,主SCL还没来得及变低转载 2016-07-02 15:54:56 · 1533 阅读 · 0 评论 -
n久前的51单片机4*4键盘加4数码管显示汇编程序
KEYBUF EQU 30HDISPBUF EQU 31HDISPBIT EQU 35HCOLKEY: MOV P1,#0F0H MOV A,P1 ANL A,#0F0H XRL A,#0F0H JZ NOKEY LCALL DELAY MOV A,P1 ANL A,#0F0H XRL A,#0F0H JZ NOKEY MOV A,P1 ANL A,#0F0H C原创 2016-06-19 08:11:41 · 6577 阅读 · 0 评论 -
n久前的51_rtos原理实现测试源码
初学时期写的代码,比较乱,希望对阅读本文的读者有所帮助。代码是撇开了效率问题,为了方便理解任务切换过程,故都尽可能的使用了c实现的,而非汇编。main.c #include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char#define T...原创 2016-06-19 08:22:21 · 533 阅读 · 0 评论 -
KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结【转】
来自:http://blog.163.com/czblaze_3333/blog/static/208996228201272295236713/Kermit协议报文格式:1. MARK,起始标记START_CHAR,为 0x01(CTRIL-A);2. LEN,报文剩余部分的长度,取值范围0~94,报文最大长度96,长度不包含换行符或者制表符;3.转载 2016-08-31 21:48:50 · 3648 阅读 · 0 评论 -
keil5安装stm32测试
kail5安装完成后,安装对应的pack,一次不成功,可以再次进行:C:\Keil_v5\UV4\PackInstaller.exe进去点击Packs->Check For Updates,完成后可以点击需要的pack进行install测试程序:#includevoid delays(int z){ int i,j; for(i=0; i<z; i++) for(j原创 2016-10-19 16:24:01 · 2679 阅读 · 0 评论 -
单片机之贪吃蛇设计思路
百度知道上回答了一个网友问题,放到博客上来:1. 首先定义一个二维数组,作为桌面显示的方块点,1显示颜色,0不显示颜色。这个二维数组每个元素对应一个(x,y)点。2. 其次随机产生一个点(x, y),x大于0小于x最大值,y大于0小于y最大值,并在二维数组中找到这个对应的点,将其置为13. 再其次定义一个单向列表作为蛇体本身,每个节点包含(x,y)坐标,也对应的将二维数组对原创 2016-12-01 21:36:36 · 5064 阅读 · 0 评论 -
c语言小工具
c语言小工具原创 2015-09-17 15:57:09 · 544 阅读 · 0 评论