
单片机
文章平均质量分 58
L7256
这个作者很懒,什么都没留下…
展开
-
IIC基本知识
简单记录下IIC相关知识点。老是忘记。首先IIC是两根线,SDA和SCL,SDA用于传输数据,SCL是时钟脉冲。IIC是半双工的一种通信。原创 2022-06-29 23:52:55 · 1287 阅读 · 0 评论 -
jz2440---使用uboot烧录程序
oflash u-boot.bin 然后USB Port选择文件 JZ2440用U-Boot给Nand-Flash烧写程序时报错:NAND write: incorrect device type in bootloader ‘bootloader‘ is not_qq_37659294的博客-优快云博客原创 2022-06-22 03:27:33 · 287 阅读 · 0 评论 -
KEIL的warning和#error使用
在keil当中有时候需要编译一些条件,当编译的条件过多有时会忘记,这个时候用# warning 和# error;可以很清晰的看见哪些条件编译了和没编译。#ifndef TEST # warning "TEST is not defined"#else # warning "TEST is defined"#endif 结果如下:就可在编译结果中知道哪些宏定义被使用了。...原创 2021-01-06 21:11:43 · 3903 阅读 · 0 评论 -
为何有的单片机的晶振要选择11.0592M?
为什么单片机的晶振为11.0592M?这是因为单片机在进行串口通信的时候,比如以9600B/s的速率通信,那么发送数据的频率为9600HZ那么如果我用12M的晶振来分频,N = 12M/9600 =1250用11.0592M来分频,N = 11.0592M/9600 = 1152这么看似乎没有问题,但查找资料发现有一个叫12T单片机的概念,就是说12个晶振周期(12M的晶振,一个晶振周期为1/12M),机器做一个指令周期,刚好就是1/12M*12=1us,12T的单片机的时钟频率的最小单位.原创 2020-07-04 14:49:02 · 12345 阅读 · 1 评论 -
串口的深入理解
1.串口是如何发送数据的?一般说来,串口发送数据是往数据寄存器sbuf填写数据,一个字节一个字节的写入,如果有串口中断,那么发送完一个字节的数据,就会进入串口中断一次,进入串口中断一定要清中断标志位,否则串口会一直进入串口中断,具体表现可能是:发送10个字节的数据,只有一个字节数据是正确的。2.关于字节序:大端。小端大端模式:指数据的高字节保存在内存的低地址小端模式:指数据的高字节保存在内存的高地址Bit-endian0x00000001 -- 120x0000...原创 2020-06-23 23:26:58 · 3405 阅读 · 0 评论 -
Keil使用记录
背景:拿到了供应商的代码工程,再供应商的代码文件中的头文件有一个宏定义LED0和LED1,在其他文件无无法调用(以正点原子工程为例)#ifndef __LED_H#define __LED_H #include "sys.h"#ifdef TT_TEST#define LED0 PBout(5)// PB5#define LED1 PEout(5)// PE5 #endifvoid LED_Init(void);//³õʼ»¯ #endif在led原创 2020-06-10 21:52:24 · 1542 阅读 · 0 评论 -
anonymous unions are only supported in --gnu mode, or when enabled with #pragma anon_unions
在keil工程下移植代码,编译出现了这个问题,字面上解决办法有:1. 打开GNU模式 ---(option-->GNU extensions)2.在代码前加上#pragma anon_union就是代表支持匿名结构体的意思原创 2020-06-02 10:26:28 · 1627 阅读 · 1 评论 -
IAR封库
IAR封库需求1.保密。工程中的重要关键代码不想给别人看到,但是工程代码又需要给到客户。2.在使用STM32的固件库的时候,需要往工程中添加使用到的功能的对应源文件,比如:stm32f10x_gpio.c等等,一个个添加很麻烦不说,每次在rebuild的时候都要编译这些基本不变的文件。而通过使用库则可以解决这些问题,首先只需添加一次库文件,第二Rebuild的时候只编译我们自己写的源文件...转载 2020-03-30 15:43:15 · 497 阅读 · 0 评论 -
stm32之看门狗
概述当单片机受到外界的干扰,程序会跑飞,那么如何证明程序的状态是正常的呢?法1:在中断中加入LED闪烁,当看到灯以设定的频率闪烁则可以证明单片机是正常运行的。法2:窗口看门狗。窗口看门狗(WWDG)的机制:WWDG本质上是一个7位的计数器,因此看门狗定时器的数值变化在0-0x7F之间。而窗口则是设置在这个范围内的上限(可设)和下限(固定值0x40)。时钟源:PLCK1,也就是系统时钟...原创 2019-09-18 22:09:24 · 403 阅读 · 0 评论 -
调试sim800L模块
原创 2019-06-11 21:16:23 · 7378 阅读 · 8 评论 -
keil使用笔记
1.如何在keil加入想要的芯片添加芯片到自己的工程 在keil官网下载想要的pack包1.点击www.keil.com官网2.点击“Product”3.然后点击“ARM development tools”(以stm32F0系列为例)进入页面4.然后再点击“Public software Packs”5.就可以看到很多package啦,找到你想要的然后下载就可...原创 2019-06-09 14:54:00 · 310 阅读 · 0 评论 -
空闲中断+DMA接收数据
目的:使用串口+DMA来接收DJI遥控器的数据帧。 (注)Dji的遥控器是每隔7ms返回一帧数据,每一帧数据有18个字节。本文的讲解注重快速使用上手,故细节部分会在后面依次改进,添加。1.DMA的理解 首先需要讲讲DMA(Derict memory access),翻译过来就是一条直接可以到存储器的通路。直接到存储器是什么意思呢?stm32有...原创 2019-05-26 21:22:52 · 6946 阅读 · 1 评论 -
基于stm32f407建立stm32F427工程
分为三个部分1.启动文件2..FWilib:包含两个文件夹inc和src。src里面是stm32资源的C文件,inc则是32资源的H文件3.user这也是我不太理解的部分:DdbugConfig只包含了用于Debug的初始化,则是f4的系统文件。我是在F407的基础上改的 ,总的来说1.改了芯片类型2.改了宏定义3.(1)把407的启动文件变成427的(2)再加入了...原创 2017-12-30 17:10:10 · 6621 阅读 · 2 评论 -
stm32F4 hal库之CAN通信的实现
本文的目的是为了能够实现功能,故写的时候比较简略。参考资料:https://blog.youkuaiyun.com/u012308586/article/details/81001102 正点原子开发手册目标:通过can总线,用stm32的CAN模块实现对电机驱动发送指令,从而实现对电机的控制。硬件设计:①收发芯片的功能:把单片机送来的信号通过收发芯...原创 2019-02-23 22:24:52 · 17526 阅读 · 6 评论 -
51单片机 串口中断
1.什么是中断广义上的中断是指一个过程,举个简单的例子,打开了电脑,你正在放音乐,点击了暂停按钮,于是歌停了。这就是一个很明显的中断的例子。CPU正在做自己的事情(放音乐),鼠标点击了暂停,就等于给了CPU一个中断信号,CPU收到中断信号之后,进入中断服务函数(里面写着停止播放音乐具体实现)。中断过程可以概述为:CPU正在做的事-->中断源触发中断-->CPU收到中断信号-->...原创 2019-06-25 15:18:52 · 23519 阅读 · 2 评论