- 博客(18)
- 收藏
- 关注
原创 UART串口接收数据通过\r\n来判断接收数据结束
UART串口接收通过全局变量USRT_RX_STA|0x8000这个位来判断是否接收完毕将接收到的数据存放在USART_RX_BUF缓存中上位机发送的数据必须有回车换行才会接收得到void USART1_IRQHandler(void) //串口1中断服务程序{ u8 Res; if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) { Res
2021-01-16 11:49:13 4999
原创 DA14580在RAM中调试方法
方法:1)勾上可以用微库,减小生成代码的大小2)分别定义ROM区位置及大小和RAM区位置和大小。RAM地址在0x20000000,在这里进行了第一次相关地址的更改;如图 0x1000为4K,这里的0x8000则为32K的ROM分配,RAM的为32K。3)Output的设置选择Out文件夹而且这与编译后产生的*.axf和*.sct文件名字都有关联;没勾选HEX;Linker Label 需要修改两个地方Output.sct编译后自动生成Output.sct的内容:Debug的配置原界
2020-11-27 15:32:46 417
转载 DA14580开发工具的下载与使用
DA14580开发工具下载地址这里需要创建账号:只要填好名字和邮箱,其他的乱填即可。官方会发送邮件到你的邮箱,根据邮箱给的链接点进去。设置好密码即可。然后根据用户名和密码登录将SmartSnippets studio 和SmartSnippets Toolbox下载后直接安装即可SmartSnippets Toolbox的使用第一步:选择UART/SPI或者UART only;第二步:选择New,新建一个测试项;第三步:选中UART PORT:COM27-SPI PORT:COM28;
2020-11-18 15:52:56 650
原创 芯片选择错误导致晶振超频锁死
由于keil选择的芯片跟烧写进去的芯片型号不一致导致芯片晶振超频锁死烧写后继续烧写,build窗口出现:Error:Flash download failed - Target DLL has been cancelled解决办法:单片的BOOT0接VCC,BOOT1接GND;然后按复位键,再点击下载,下载程序进行芯片的擦除。恢复BOOT0接地。再把刚才修改过的Debug配置改回来,就可以正常使用了。...
2020-11-16 19:53:57 837
原创 KEIL4编译字符串正常,KEIL5编译字符串出错
…\emWin\emWinTask\MainTask.c(290): error: #18: expected a “)”解决办法:在编译选项中添加:–no_multibyte_chars
2020-11-14 16:23:49 632
原创 FATFS文件系统
(一)下载FATFS源码说明:共有8个文件diskio.c和diskio.h是硬件层,ff.c和ff.h是FatFs的文件系统层和文件系统的API层,integer.h是文件系统所用到的数据类型的定义,tff.c和tff.h是Tiny的文件系统层和文件系统的API层(二)修改FATFS主要修改底层设备驱动函数:diskio.c目的:就是把 diskio.c 中的函数接口与SPI Flash 芯片驱动连接起来。总共有五个函数,分别为设备状态获取(disk_status)、设备初始化(disk_init
2020-11-03 19:48:56 1029
原创 TCS230颜色识别传感器
TCS230颜色识别传感器原理图:管脚组合作用:S0,S1的组合是确定输出的是哪种颜色值与单片机的连接电路,TCS230的OUT连接在P35是为了计算输出的脉冲数实验程序:使用T0作为定时器,每10ms进入一次中断。T1用作计数器,用来计算脉冲数。定义比例因子,比例因子会因环境而改变。从而获得R,G,B各值。...
2020-09-19 10:30:03 4939
原创 Bootloader通过USB虚拟串口在线升级
实验资料USB从机驱动库,从STM官网下载USB例程,有虚拟串口,鼠标实验等USB的驱动库USB虚拟串口移植:1.在platform_config.h中添加你板子的芯片,将其他包含的头文件屏蔽掉2.修改文件hw_config.c(1).将库文件中原来的数据删除,定义自己创建的发送接收数据结构发送数据的结构体,根据读写指的大小来确定buffer发送多少个字节出去(2).屏蔽掉set_systim()函数(3)添加两个中断服务函数(4)将配置时钟的换掉(4)添加进入低功耗代
2020-09-19 09:57:42 863
原创 STM32 PWR电源管理系统
STM32的低功耗模式1.睡眠模式2.停止模式3.待机模式各种模式的特点这三种低功耗模式层层递进,运行的时钟越来越少和芯片的功能也越来越少,所以功耗越来越低。1.睡眠模式详解进入睡眠的两中模式:退出睡眠模式2.停止模式详解停止模式基于 Cortex™-M4F 深度睡眠模式与外设时钟门控。调压器既可以配置为正常模式,也可以配置为低功耗模式。在停止模式下,1.2 V 域中的所有时钟都会停止,PLL、HSI和 HSE RC 振荡器也被禁止。内部 SRAM 和寄存器内容将保留。停止
2020-09-18 20:09:56 2337 1
原创 USB鼠标实验
USB鼠标实验实验资料USB从机驱动库,从STM官网下载USB例程,有虚拟串口,鼠标实验等USB的驱动库USB鼠标移植:在一个工程文件里创建USB文件,在USB文件内创建两文件,一个CONFIG配置文件,一个STM32_USB-FS-Device_Driver驱动文件。CONFIG:下的文件:STM32_USB-FS-Device_Driver直接是从驱动库中复制过来,这是USB内核文件,不需要修改添加到项目中的情况:由于USB用到了外部中段,所以项目中一定要添加stm32f10
2020-09-16 12:34:51 285
原创 Bootloader固件升级
BOOTLOADER 案例准备两程序一个,bootloader程序 用来跳转到APP程序一个,APP程序 用来功能的实现bootloader程序typedef void (*Iapfun)(void); //定义函数指针static Iapfun jump2app; //定义函数static void Interrupt_Disable(void){ __ASM volatile("cpsid i");}void Delay(__IO u32 nCount); /**
2020-09-02 12:01:09 895
原创 FreeRTOS任务创建与执行
FreeRTOS任务创建与执行总结:1.任务调度器只会执行任务优先级最高并且已经就绪的任务,并在死循环中不断运行,只有在堵塞或挂起打破。堵塞和挂起的任务不会被执行。堵塞并不会占用cpu。 vTaskDelay() API可以使得任务进入堵塞状态。如果最高优先级的任务进入堵塞或挂起状态,难么任务调度器就会自动的调度任务优先级仅次于上一级的任务去执行。2.同等优先级的任务的执行通过时间片轮流切换。不是同时运行。时间片的大小通过FreeRTOSConfig.h 中的编译时配置常量 configTICK_RA
2020-08-01 15:53:02 808
转载 C 语言中 void* 详解及应用
C 语言中 void* 详解及应用分类 编程技术void 在英文中作为名词的解释为 “空虚、空间、空隙”,而在 C 语言中,void 被翻译为"无类型",相应的void * 为"无类型指针"。void 似乎只有"注释"和限制程序的作用,当然,这里的"注释"不是为我们人提供注释,而是为编译器提供一种所谓的注释。void 的作用1.对函数返回的限定,这种情况我们比较常见。2.对函数参数的限...
2019-12-14 21:50:24 233
原创 createTrackbrar()
createTrackbrar()滚动条的创建和使用int createTrackbar(const String& trackbarname, const String& winname,int value, int count,TrackbarCallback onChange = 0,void userdata = 0);**TrackbarCallback 是个函数的指...
2019-12-14 21:46:52 133
转载 C语言内存知识
C语言系列(五)内存的分配与释放转载请标明出处: http://blog.csdn.net/u011974987/article/details/52290724本文出自:【XuHao的CSDN博客】什么是堆?说到堆,又忍不住说到了栈!什么是 栈?1、什么是堆:堆是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程 初始化的时候分...
2019-12-14 10:02:39 126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人