单片机
文章平均质量分 80
liefyuan
一招鲜吃变天!
展开
-
PCA9685使用终极总结
(2).舵机的控制需要MCU产生一个20ms的脉冲信号,以0.5ms到2.5ms的高电平来控制舵机的角度。用i2cdump查看器件所有寄存器的值,这个命令可以查看器件所有寄存器的值,在实际测试时很好用。2.0ms-----------135度;2.5ms-----------180度;0.5ms-------------0度;2.5% 对应函数中占空比为250。1.0ms------------45度;1.5ms------------90度;0x40:表示总线上 设备地址为0x40的这个设备;原创 2023-12-20 12:03:30 · 991 阅读 · 0 评论 -
嵌入式单片机--C语言模块思想实践
目录前言一、模块内变量:本地变量二、模块内调用外部函数:回调函数前言一、模块内变量:本地变量main.c#include "stdio.h"#include "module.h"int main(void){ module_set_value(100); int ret = module_get_value(); return 1;}module.c#include "module.h"static int m_value = 0;void module_原创 2021-03-19 17:32:55 · 323 阅读 · 0 评论 -
嵌入式--通过串口上位机-下位机数据通信:传输命令控制,原始数据传输
协议:单片机端typedef struct { uint8_t buff[1024]; uint32_t index; enum { UART_IDLE = 0, UART_RECV_CMD_1, UART_RECV_CMD_2, UART_RECV_CMD_START, UART_RECV_CMD_STOP, UART_RECV_DATA_RAW, UART原创 2020-11-10 00:28:44 · 4023 阅读 · 1 评论 -
嵌入式--深入理解单片机(一)单片机程序是如何运行起来的以及单片机的ROM和RAM
目录一、两种处理器的结构体系哈佛结构体系(Harvard architecture)冯·诺依曼结构体系两种结构的总结哈佛结构的优势冯·诺依曼结构的优势二、单片机程序的内存分配三、单片机程序和操作系统应用程序的对比ROM和RAM一、两种处理器的结构体系哈佛结构体系(Harvard architecture) 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序原创 2020-10-10 22:32:22 · 9097 阅读 · 3 评论 -
硬件知识--无刷电机学习
无刷无感电机控制控制难点:电机启动转子位置的检测 对于高压无感方案来讲,除了软件上的难点之外,硬件设计也不容忽视,如硬件设计稍有不当,会导致整个控制板的干扰很大,从而加大了整个方案成功的难度。 以下主要针对低压的无感方案进行讨论,对于低压的无感方案来讲,市面上的硬件设计都大同小异,检测转子的位置的方式也都几乎都采用反电动势检测法。一、为什么无感方案电机的启动如此困难? 对于无刷电...原创 2019-09-20 08:55:43 · 1788 阅读 · 0 评论 -
嵌入式单片机开发技巧 -- 那些秀死人的初始化寄存器的技巧
初始化寄存器一般方式:int main(void){ P0M = 0xFC; // set pin out or in mode P0UR = 0xFC; // set pin pull on or not at mcu interal return 0;}技巧型:#define PIN_0 (1<<0)#define PIN_1 (1<<1...原创 2019-08-22 10:29:03 · 806 阅读 · 0 评论 -
Arduino--ESP32环境搭建
参考博客:https://blog.csdn.net/slimmm/article/details/88103211Arduino IDE软件下载页面:https://www.arduino.cn/thread-5838-1-1.html下载完后安装好给Arduino IDE添加开发板网址打开IDE,打开文件->首选项附加开发板管理器网址,在新弹出的窗口中添加以下网址:htt...转载 2019-07-30 10:56:25 · 1090 阅读 · 0 评论 -
松翰单片机--SN8F5702学习笔记(七)TIMER0、TIMER1
定时器0和定时器1 定时器0和定时器1是两个独立的二进制定时器。定时器0有四种不同的操作模式:(1) mode0:13位向上计数定时器(2)mode1:16位向上计数定时器(3)mode2:支持指定重载值的8位向上计数定时器(4)mode3:分离的两个8位计时器。相比之下,定时器1只有模式0到模式2,它与定时器0相同。定时器0和定时器1分别支持ET0和ET1中断功能。定时器0...原创 2019-07-30 09:54:49 · 3920 阅读 · 0 评论 -
Nordic--nrf52832--FDS(一)基本介绍
FDS(Flash Data Storage 模块是sdk中提供的操作flash的模块。前面介绍过fs(Flash Storage)模块,这个模块也是sdk中提供的操作flash的模块。为什么要提供两个呢? 这需要了解一下关于flash操作的问题。 因为操作的是片上flash,所以在擦写flash的时候CPU会暂停,这对于ble来说很可能影响底层的链路上的时序。所以对于ble应用来说,不能通过...转载 2019-06-20 17:41:25 · 8231 阅读 · 2 评论 -
Nordic--nrf52832--FDS(二)基本使用
注册FDSret_code_t fds_register(fds_cb_t cb); 该函数注册 fds的事件处理函数,fds提供了写/更新/删除等api,不过这些api都是异步的,即调用后函数函数会立刻返回,但是实际的flash操作可能不会立刻执行。协议栈内部会在合适的时候去执行实际操作。并最终返回给上层事件,fds模块内部处理后再返回 fds的事件,并调用fds_register函数...转载 2019-06-20 17:25:15 · 6124 阅读 · 0 评论 -
嵌入式单片机应用开发--I2C基本知识
开始信号&结束信号开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。数据有效性I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低...原创 2019-06-04 16:35:08 · 678 阅读 · 0 评论 -
嵌入式单片机应用开发--flash芯片(P25Q32H)
前言:英文中文block块sector扇区page页详细描述: P25Q32H芯片,拥有64个“块”,每个块有16个“扇区”,每个扇区有4KByte。原创 2019-03-28 14:30:46 · 4285 阅读 · 0 评论 -
嵌入式单片机应用开发--总结(一)--接收数据、解析协议
单片机可以通过多种接口来接收数据,而串口接收数据就是最常见的,这这一套接收数据的原理放之四方而皆准。待到一个数据包完整的接收完毕,就要对其进行协议解析。这是一整套的也是最常用的。我觉得可以设计出一整套模板,等到应用的时候套上去就好了。接收数据(串口为例)情况一:定义了起止符情况二:没有定义起止符解析协议bit位标志区分域byte字节标志区分域...原创 2019-03-09 12:07:19 · 1144 阅读 · 2 评论 -
单片机--按键定时器检测:短按、长按
通过使用定时器计数的方法来分辨按键的:短按、长按检测到引脚被拉低:按键按下为低电平,没有按下为高电平延时10毫秒:滤波引脚还是被拉低:确定按键被按下设置按键按下标志开启定时器,开始计数:定时器中有一个全局变量用于记录计数值直到引脚被拉高:按键被释放将为高电平关闭定时器检测按键按下标志检测定时器按键检测时间全局变量是否大于某个值,一般为200ms大于则为长按,否则为短按u......原创 2018-12-21 10:45:14 · 22864 阅读 · 9 评论 -
Nordic--nrf52832--FDS
nRF52832-QFAA,他的 Flash 内存如下表所示:Flash总大小页数页大小块大小每个页包含的块数量512 KByte128 page4 KByte512 Byte8裸机 FLASH 读写 nRF52832 的非易失性存储器是通过非易失性存储器控制器(NVMC)来操作的,NVMC提供了写或擦除 Flash 区域和 UICR 的功能。 写 F...原创 2019-01-25 10:35:46 · 4309 阅读 · 0 评论 -
Nordic--nrf52832--Timer
在开发过程中首先需要厘清楚的是,定时器分成了软件定时器和硬件定时器。它的创建、开始、停止的功能函数完全不一样。类型软件定时器硬件定时器目录nRF_Libraries / app_timer.cnRF_Drivers / nrf_drv_timer.c创建/初始化定时器app_timer_creat()nrf_drv_timer_init()开始/使能定...原创 2019-01-25 10:35:31 · 2416 阅读 · 0 评论