
单片机 笔记
greatriver007
好好学习天天向上
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
windows11彻底关闭Microsoft Defender 安装注册机
关闭防火墙 还是无法打开注册机,所以选择这里然后关闭。经过上面两个步骤,就可以解压注册机,进行软件安装了。1、首先要关闭的是Windows安全中心的防火墙。原创 2022-08-18 16:35:34 · 3910 阅读 · 1 评论 -
Keil 报错 *** ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
如题keil报错原因是 和谐版本 没有配置好*** ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED原创 2022-05-18 10:22:13 · 1486 阅读 · 1 评论 -
泰凌微 Telink TLSR825X Printf gpio 模拟 串口 打印信息 log
如题:使用telink可以使用printf功能,之前我不了解,我一度以为这是uart 实现的printf在配置的时候,居然配置 uart 对应的gpio接口,后面这个问题坑了一段时间。其实printf是telink 通过芯片gpio模拟的,可以使用除了uart接口以外的 接口进行模拟当然如果你想要uart的io应该也是可以的,只是你回少一个uart的使用,不能同时打开我现在分享配置使用的方法app_config.h添加#define UART_PRINT_DEBUG_ENA.原创 2021-11-03 15:52:49 · 1954 阅读 · 1 评论 -
泰凌微 Telink TLSR825X Uart 串口无法接收数据 关闭休眠和深度休眠解决 问题
如题:最近使用tlsr8250 做项目,SDKB85M_SINGLE_BLE_SDK测试使用b85m_driver_test 测试串口 使用dma或者ndam都是可以正常。开始做项目工程,在b85m_ble_sample的例子基础上添加自己的逻辑和初始化配置函数。刚开始,我第一个添加就是uart功能,因为这是最基础的,也方面使用。我把b85m_driver_test uart 相关的初始化代码添加过去,还有中断处理函数。发现调试过程中,发送可以正常,但是接收一直很不正常,有时候...原创 2021-11-03 15:39:37 · 2667 阅读 · 3 评论 -
应广单片机PFC PMC 定时器T16配置
//======================================//// T16定时//案例为://利用T16计数器来计时,计时两秒后控制LED灯由亮变灭//======================================//#include "extern.h"bit LED : PA.5 //定义LED灯的引脚byte time_10ms;word reload_T16;void FPPA0 (void){ .ADJUST_IC SYS.原创 2021-08-28 12:25:35 · 1069 阅读 · 0 评论 -
Keil FCARM - Output Name not specified, please check ‘Options for Target - Utilities‘
这个问题很少遇到,经过网上搜索,才发现是导入文件的时候 默认的文件类型都是ImageFile。选择错误点击文件右键第一个选项 或者ALT+F7 发现 File Type 是imagefile,这是错误的,应该是c文件所以修改成下图再次编译,发现错误消失了。...原创 2021-07-30 10:48:52 · 1124 阅读 · 0 评论 -
STM8S003 AWU休眠唤醒 寄存器和库函数2种做法
如题:awu休眠,然后定时唤醒,两种写法1、寄存器 注意时钟128KHz低速内部RC(LSI)主函数: AWU->APR = 0x3E; //64分频 AWU->TBR = 0x0F; //32秒唤醒 CLK->PCKENR2 |= (0x04); /* AWU与主时钟连接 */ AWU->CSR |= 0x10; //使能自动唤醒 CLK->ICKR |= 0x08; // 打开内部低速时钟源 whil.原创 2021-07-27 11:35:56 · 1148 阅读 · 0 评论 -
应广单片机定时器TIME16配置
应广单片机定时器TIME16配置,关于time16的配置$T16M sysCLK,/64,BIT15; $T16M sysCLK,/64,BIT15;选择(SYSCLK/64)当Timer16时钟源,每2^16个时钟周期产生一次INTRQ.2=1系统时钟 System Clock = HRC /2=8 MHzsysclk/64=8 MHz/64=125 kHz,约每524 mS产生一次INTRQ.2=1两个注意点的点:时钟源和BIT?记得2的BIT?+1次方,这个数是产生中...原创 2021-07-12 14:45:31 · 2066 阅读 · 3 评论 -
应广单片机 按键点灯 PMS171B GPIO LED
我也是第一次使用这款单片机,参考网友的资料,写个最近简单的demo 测试用例#include "extern.h"/*端口定义*/BIT KEY : PA.0; BIT SW : PA.4; /*相应于main函数*/void FPPA0 (void){ /*单片机内部RC震动时钟为 IHRC默认为16M,因此,IHRC/2=8M,系统时钟为8M*/ .ADJUST_IC...原创 2021-07-08 16:50:50 · 919 阅读 · 1 评论 -
keil data xdata const code
Keil 编译后出现Program Size: data=19.5 xdata=481 const=1312 code=21064需要分析 每个类目代表什么意思。1、data表示芯片的内部RAM2、xdata表示外部RAM3、code 表示程序大小存储类型与存储区关系data —> 可寻址片内rambdata —> 可位寻址的片内ramidata —> 可寻址片内ram,允许访问全部内部rampdata —> 分页寻址片外ram (MOVX..原创 2021-07-01 10:58:31 · 1938 阅读 · 2 评论 -
国民技术N32G032 PWM+DMA 8路输出
1、功能说明 1、TIM1 和 TIM8 CH1 CH2 CH3 CH4 8路信号进行DMA PWM输出 2、使用环境 软件开发环境: KEIL MDK-ARM V5.26.2.0 硬件环境: 基于N32G032R8L7_STB开发3、使用说明 系统配置; 1、时钟源: HSE=8M,PLL=48M,AHB=48M,APB1=48M,APB2=48M,TIM1 CLK=48M,DMA CLK=4...原创 2021-06-25 14:57:05 · 2423 阅读 · 0 评论 -
STM32 HAL PWM DMA 传输数据
1、设置pwm dma配置/* Private function prototypes -----------------------------------------------*/void SystemClock_Config(void);/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------原创 2021-05-12 14:49:37 · 5082 阅读 · 11 评论 -
stm32Cube TIM1 定时器 中断
经常忘记 stm32cube 定时器 设置方法,这里特别记录下:1、 配置的是定时器产生中断的频率, 跟据频率与时间的关系推出定时的时间。所以定时器频率为 f = 72M / Prescaler / Period = 72000 000 / 72 /1000 = 1000Hz; 定时时间T = 1 / f 则: 1s / 1000Hz = 1000 000us / 1000Hz = 1000us =1ms,这样就可以定时1ms了啦。特别注意,要加上这个启动定时...原创 2021-04-28 15:21:43 · 2588 阅读 · 2 评论 -
Win8 10截图快捷键 whiteboard 微软白板虚拟画布
如题,类似于qq微信钉钉,快捷键截图,如果电脑没有安装这些软件,如何实现快捷键截图?win10 有内置类似的功能。1、普通截图,框选快捷键Win+Shitf+s组合按键可以尝试下很方便2、全屏截图快捷键Win+Printscreen组合键Win+W组合键屏幕右下角,弹出可选择截屏、裁剪、编辑等等如上图,可以安装或启动微软的whiteboard软件非常方便、简单的画布软件,易操作。3、全屏截图快捷键PrintScreen组合键,截图保存在剪切板中,可以粘贴。...原创 2021-04-08 16:10:48 · 2284 阅读 · 0 评论 -
vscode显示中文乱码问题
如题:vscode显示中文乱码问题菜单栏: 文件 --> 首选项 --> 设置 --> 搜索“files.autoGuessEncoding”: false,改为“files.autoGuessEncoding”: true,#搜索框 选择功能太多,建议输入搜索,更快捷files.autoGuessEncoding...原创 2021-04-08 16:07:04 · 184 阅读 · 0 评论 -
MinGW-w64安装
Example: Install MinGW-x64#We will install Mingw-w64 via the SourceForge website. You can use this Mingw-w64 link to download the Windows Mingw-w64 installer.Run the installer, which should be named mingw-w64-install.exe in your Download folder.2For原创 2021-04-08 15:30:39 · 491 阅读 · 0 评论 -
华大HC32F005下载仿真
华大HC32F005下载仿真1、首先说明的是 HDSC CCID在离线 脱机烧录只能离线下载,无法仿真调试。2、需要在线仿真的建议使用stlink 、stlinkv2,我测试可以使用,但是jlink v11 我测试无法仿真和下载,不知道为什么,知道的可以告知下。stlink v2 很正常 可以下载和仿真在这里插入图片描述...原创 2021-04-08 15:28:02 · 1101 阅读 · 1 评论 -
MDK Keil 调试Debug实时查看更新变量值
全局变量 delaytick 定时中断 累加更新前提是代码软件已经实现,mdk查看方法。点击debug,View -> watchwindows watch添加变量delaytick现在已经可以查看变量数值了。如果有设置了断电,断电处可以发现更新的变量值。如果是定时器自动更新的,或者没有断点情况下,希望能够看到变量自动更新。需要设置下,如图view -> periodic window update 勾选上 就可以了...原创 2021-04-08 15:23:27 · 7283 阅读 · 0 评论 -
C51 printf格式化输出特殊用法
无符号16位数格式符用%d或者%u,千万不能加字母“l”,否则会出错32位数据格式符必须加字母“l”,否则会出错8位数据格式符要加字母“b”,例如%bd、%bu在KeilC51中用printf输出一个单字节变量时要使用%bd,如unsigned char counter;printf(“Current count: %bd\n”, counter);//输出8位”十进制有符号整数”printf(“Current count: %bx\n”, counter);//输出8位”无符号以十六进制表.原创 2020-12-29 21:53:39 · 1851 阅读 · 1 评论 -
STM8s 串口接收不定长数据
USART_RTx_TypeDef USART1_RTx;void uart1_initial(void){ UART1_DeInit(); /* 将寄存器的值复位 */ /* * 将UART1配置为: * 波特率 = 9600 * 数据位 = 8 * 1位停止位 * 无校验位 * 使能接收和发送 * 使能接收中断 */ UART1_Init((u32)9600, UART1_...原创 2020-12-10 19:59:27 · 1707 阅读 · 0 评论 -
新塘N76E003 芯片的定时器 初始化不正确 估计是分频问题
新塘N76E003 芯片的定时器 初始化不正确,原因找到了,但内心还是不明白。比如定时器0 //设置定时器0和1为16位模式 TMOD |= 0x01; //Timer0 Mode1 //定时器0中断允许 ET0=1; TH0=(65536-1000)/256; // 0xff; TL0=(65536-1000)%256; // 0xf1...原创 2020-11-15 22:27:08 · 1020 阅读 · 2 评论 -
STM32下载程序后不自动运行程序,必须复位一下才可以运行
前提1,MDK5.28 软件已经勾选reset and run2,标准复位电路,同时boot0和boot1通过10k电阻接地解决办法:原创 2020-09-25 16:20:10 · 21645 阅读 · 22 评论 -
vsCode PlatformIO + jlink + GD32VF103
如题,vscode 加上pio 通过jlink编译下载 gd32单片机一、安装vscode二、再vscode里面搜索 platformio 安装插件,需要好几分钟,甚至更久。三、使用platformio参考相关平台和例子,四、关于下载程序可以配置platformio.io文件,[env:sipeed-longan-nano]platform=gd32vframework=gd32vf103-sdkboard=sipeed-longan-nanomonitor_...原创 2020-09-12 11:01:40 · 3817 阅读 · 3 评论 -
无法将“platformio“,项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
无法将"platformio",项识别为 cmdlet、函数、脚本文件或可运行程序的名称。解决方法:Install the latest PlatformIO from the develop branch:# uninstall existing versionpip uninstall platformio# install the latest development version of PlatformIOpip install -U https://github.com原创 2020-09-09 10:54:44 · 2826 阅读 · 0 评论 -
ICCAVR实现存储空间分布
在Keil中为了节省数据存储器的空间,通过“code”关键字来定义一个数组或字符串将被存储在程序存储器中: uchar code buffer[]={0,1,2,3,4,5}; uchar code string[]="ARMoric" ; 而这类代码移值到ICCAVR上时是不能编译通过的。我们可以通过"const" 限定词来实现对存储器的分配:转载 2011-10-26 11:40:56 · 3115 阅读 · 1 评论 -
AVR 字库如何存储在程序存储区?
编译器对于flash的常量定义采用关键词const就可以。比如keil,ICC等定义常量采用 const unsigned char data=0;则data的类型为常量存储在flash中。如下定义:typedef struct typFNT_ASC16 { char Index[1]; char Msk[16];};const struct原创 2011-10-26 11:35:12 · 1891 阅读 · 0 评论 -
FAT12 文件系统
一、FAT12 Spechttp://www.disc.ua.es/~gil/FAT12Description.pdf一些要点描述:FAT12, "12"是指FAT的条目的长度为12bits当使用FAT12作为软盘文件系统时:扇区 - 基本存储单位, 512 Bytes簇 - 多个扇区组成簇, 对于软盘来说,一个簇中只有一个扇区整个软盘的结构如下:B转载 2011-11-14 20:21:45 · 1538 阅读 · 0 评论 -
圈圈USB开发板 IDE40
圈圈的开发板 2.0版 用的是stc89c52RC PQFP的封装,想要用它的p0 p1口做实验的话 只能用 IDE40这个接口,但是这个接口和原理图不一样,反正我测了出来对照不一样。所以要正确使用只有一个一个测量,好在测量也是一个简单的事情,现在把他贴出来 以方便自己查阅。我仅测量了P0和P1,其他接口需要可以再添加。如图 正面看 串型接口在上 USB口在下 在这个状况下看到的 ID原创 2011-10-25 19:55:12 · 1325 阅读 · 0 评论 -
串行cog12864 M16上运行
代码如下:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5036149&bbs_id=1011 153楼这是 M16上运行 这款lcd12864 在调试程序前 一定要确保硬件连线没有问题,特别是 连接显示屏的那个金手指,一定要用万用表亲自测量可以。经验教训,我的粗心大意,浪费了半天的时间。。原创 2011-10-25 21:51:04 · 1056 阅读 · 0 评论 -
调试错误集1
平时有郁闷的时候,一直调试不出来 ,最后发现一个问题,很弱智,但是也很常见,所以特地在这里做一个集合,记住平时的错误。1、定义一个全局变量 u32 SaveSize; 随后使用的时候是这样用的 for(;save_addr { 。。。。 }结果 悲剧了,一直以为之前 已经把Sav原创 2011-12-12 21:00:33 · 683 阅读 · 0 评论 -
挑战51单片机(STC12C5A32S2)性能极限!19264+SD+FAT播放视音频!附视频取模软件
STC12C5A32S2 25FPS流畅播放视音频。效果如下: SD卡工作在SPI模式,由单片机的硬件SPI驱动。原创的FAT驱动支持簇预处理在性能方面比较突出,STC单片机工作在22.1184M的晶振下估计吞吐量达120+kB/s,当然这个是空跑估算的实际用起来没这么高,缺陷是只支持8.3文件名,不能有中文,且文件只读。我这个LCD19264是基于KS0108驱动芯片的转载 2012-09-19 10:31:35 · 5785 阅读 · 0 评论 -
C程序调试利器。__DATE__ ,__TIME__,__FILE__,__LINE__,__FUNCTION__
我们在调试大型程序时想知道当前运行状态和编译时间。就想打印当前程序运行的行号和功能函数,现在有更方便的方法了。 如下:printf( "\r\n ("__DATE__ " - " __TIME__ ") \r\n"); printf("%s(%d)-%s: this is function\n",__FILE__,__LINE__,__FUNCTION__);把转载 2012-11-16 16:15:16 · 1249 阅读 · 0 评论 -
SMA、SMB、SMC封装的二极管尺寸区分
以常见的贴片肖特基二极管SS14 SS24 SS34为例,三种管子区别主要在电流上,有三种封装:SMA、SMB、SMC。从成本和体积来说,优先选用最小尺寸的SMA/DO-214AC封装,其他封装一般不推荐选用。从下面图片的来看,这三种封装类似,主要体积上不同,可以看出:SMA . 1、SMA/DO-214AC 2、SMB/DO-214AA转载 2013-11-14 19:55:58 · 175571 阅读 · 1 评论 -
STM8S1003 模拟SPI 驱动 SI4432
网上关于stm8s1003 驱动si4432的 驱动不是很多 ,我也是弄了大半天才可以和si4432 spi驱动成功。 接下来要做无线收发和组网。暂时先贴 spi驱动的spi模拟方式:main.c#include "stm8s.h"#include "mytype.h"#include"delay.h"#include "USART.h"//定义CPU内部时钟#defi原创 2014-01-18 12:04:01 · 7293 阅读 · 0 评论 -
STM8S1003 硬件SPI 驱动 SI4432 注意CPOL = 0,CPHA=0
stm8 硬件spi 驱动 si4432 如果想看模拟的 我有另外一篇博文写有代码。这个硬件驱动 si4432 我弄了几乎一天时间,我一边看波形一边分析数据,可是spi驱动一直没有成功。第二天发现原来spi CPHA 相位应该选择 数据采样从第一采样边缘开始。 我之前不知道浪费了一天时间。心疼。下面直接上代码:MyType.h#ifndef __MyType_H#defi原创 2014-01-18 12:15:27 · 6610 阅读 · 1 评论 -
贴片钽电容封装、尺寸
原创 2014-04-03 16:15:39 · 2504 阅读 · 0 评论 -
stm32 移植cJson 注意free释放内存!!
如题:关于怎么移植的网上有很多参考文档,也很简单,因为cjson只有2个文件,一个cJSON.c 一个cJSON.h文件。我用的是原子的stm32 工程文件测试,他们有自己定义的malloc.c malloc.h,很方便可以直接用。需要修改的就是下面:把原本的json malloc 和free替换成我们自己的,如下代码 static void *(*cJSO原创 2016-10-16 16:40:24 · 15744 阅读 · 9 评论 -
mege16 usart 的测试代码
最近要做一个基于GSM的报警器,初步选型是选择现在手上有的mege16,显示运用无字库的lcd12864 KS0108B GSM 是MC35现在第一步是先弄好mege16的串口,下面是最简单的串口代码。///////////////////////////原创 2011-09-28 22:53:20 · 966 阅读 · 0 评论