自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GKoSon的博客

活捉一枚野生程序猿

  • 博客(25)
  • 资源 (15)
  • 收藏
  • 关注

原创 通信小结:I2C和SPI

开发板原理图:看到是SPI2用来和触控芯片通讯。用clubeMX看下参考:https://blog.csdn.net/chengwenyang/article/details/9899289之前也是对SPI的NSS一头雾水,看其他手册上说的NSS就是片选信号。大多数的SPI从机的片选有效为低电平,当某一从机的NSS引脚为低电平时,该机被选中,就可以和主机通过SPI通信了。所有的主机和从机其实都有片...

2018-06-30 11:44:47 1358 1

原创 STM32之SPI的迭代

回顾前面用SPI2写的一个W25Q64的程序void SPI2_Init(void){ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //PB13/14/15复用推挽输出 GPIO_InitStru...

2018-06-27 17:52:30 322

原创 STM32操作EEPROM 学习刘洋AT24C02软件IIC

写在前面:前面的文章我们的SPI是用的STM32的资源,IIC也有STM32的硬IIC,本文不用,而是自己写时序来模拟IIC通讯。读写AT24C02。做IIC准备2个问题 A微秒级别的延时怎么做?B器件的地址你怎么确定。开始:用clubeMX软件看到 STM32芯片的IIC1用的是PB7 PB6短接跳线帽 PB7--SDA PB6--SCL原...

2018-06-27 15:00:46 3310

原创 STM32学习:外部SRAM(和EEPROM SPIFLASH类似吧读写)

学习:D:\BaiduNetdiskDownload\战舰V3 视频盘(C盘)\第70讲 外部SRAM实验1本身需要有外部SRAM

2018-06-27 10:21:30 2368

原创 iic

2018-06-27 09:59:58 946

原创 STM32之SPIFLASH W24Q64的结构

第一个问题:SPI的flash一般是干嘛用的 ?IAP远程升级?放字库图片?放FATFS的文件系统来实现malloc?先放着,第二个问题,它的内部存储结构。截图是STM32内部的flash 其实跟我们的W25是一样的,STM32F103的最小单元是page,一个page是2K也就是最少要擦除2K。地址的起始已经写好了就是0X0800 0000.W25的最小单...

2018-06-26 16:57:17 848

原创 STM32之SPI的启辰W25Q64

SPI是4根线,依次介绍:  CS它是片选,也就是是否Pick这个设备。一般在STM32也标识为NSS。 CLK这个是时钟,因为SPI是同步的全双工。 MISO  交换数据. MOSI 交换数据. 片选信号就是用于选定某一芯片的信号。对于有片选口的芯片,如果不给片选信号他就不会起作用的。一般的片选信号都是低电平有效,具体查一下芯片资料。片选一般标为CS,如上面有横杠的就是低有效...

2018-06-26 15:12:14 1466

原创 STM32细节逻辑,relay的自适应

硬件连接如图,上电2*6的排线连接TOUCH和我的TS,注意GPIO的ON和NC,如何自适应?上电的时候 左边1 2 3基本就是单刀双掷开关,试想,如果这个端口没有连接TOUCH的话那就是ON和NC都是高电平。如果只有ON是低电平的话,那就是1 2之间是通路,从而判断此时TOUCH内部的relay是 1 2连通,2 3断开。(我是12ON--0    23NC--1)我在测试中的RELAYON是1...

2018-06-25 15:54:19 854

原创 小技巧集合

???????????发消息???????????????第一步:定义#define WM_APP_SHOW_TEXT (WM_USER + 0)第二部:发消息        WM_MESSAGE          Msg;          Msg.MsgId   = WM_APP_SHOW_TEXT;        Msg.hWinSrc = pMsg->hWin;        WM_...

2018-06-22 15:55:02 224

原创 DROPDOWN-下拉列表

自己生产的是不能直接用的哦 不能全面显示?怎么办?需要增加三句话。参考:https://tieba.baidu.com/p/4983616378?red_tag=1583126393&traceid=static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; WM...

2018-06-21 17:48:13 1208

原创 STEMWIN如何聚焦?PC模拟

函数很简单WM_SetFocus(  WM_HWIN );只需要一个参数WM_HWIN进去就行了。实际用起来,看看我的例子吧#include "dialog.h"#include "wintop.h"WM_HWIN hPage[5];void MainTask(void){ GUI_Init(); GUI_UC_SetEncodeGBK(); hPage[0]...

2018-06-21 16:22:54 830

原创 STEMWIN如何显示中文?PC模拟

在CodeBlocks环境下虚拟跑UI程序,用GUIBuild做的函数.c由于GUIBuild比较 弱智,它做的不支持中文,所以只能在CodeBlocks想办法了。比如生成的代码是:case WM_INIT_DIALOG://初始化消息,创建窗口/控件时有效,比如在这里设置一些控件的初始参数 hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0...

2018-06-21 14:03:01 2429

原创 STM32寄存器与库函数

前面定时器 的时候说了一个路子用到了直接操作寄存器。现在LCD在举一个例子。void LCD_RESET(void){ LCD_RST_CLR; delay_ms(100); LCD_RST_SET; delay_ms(50);}所谓复位就是:拉低--延时--拉高 就好了。一般用库函数,但是你看:#define LCD_RST_SET GPIOC->BSRR=1<<...

2018-06-15 15:25:38 4447

原创 STM32做一个呼吸灯/屏幕亮度调节功能PA1&TIM2CH2 再次回顾定时器的2个参数

写在前面:现在屏幕的驱动程序是用PA1连接到LCD上,先初始化     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;                      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;               GPIO_InitStructure.GPIO_Speed = ...

2018-06-15 14:44:40 3732

原创 STM32上电以后GPIO默认是Floating input

真实案例1:用开发板STM32的PD13来测试,直接裸露的管脚。硬件连接我手上发光二极管的比较长的一端也就是 + 极,开发板找GND连接二极管较短的一端也就是 - 极。#define TSBUZGPIO GPIOD#define TSBUZGPIOPIN GPIO_Pin_13#define TS_BUZ_H() ...

2018-06-15 09:25:51 10144 1

原创 STM32定时器:两条大路通罗马

任务:我们用TIM做一个us级别的延时。路子1:做一个很小的定时,每1us就中断一次,你现在如果要延时200us那么我就做这个动作200次!路子2:做一个稍大的定时,比如1000us中断一次,你现在如果要延时200us那么我就截取其中一部分时间段给你,用计数值控制。其中路子2比较好,在前面博文已经实践了。现在是说一说路子了的模块。头文件:#ifndef __TIM4ER_H#define __T...

2018-06-14 11:10:20 536 1

原创 AS1217

发送: drv_uart_init( 9600 );//串口9600 AS1217AUX_OUT();   AS1217_reset();//复位 GPIO_SetBits(GPIOB ,GPIO_Pin_14);//高 TIM3_Delay(1100);//进命令模式 //AS1217_param_init(); AS1217_read_param(Tbuf);   fflag=AS1217_s...

2018-06-13 14:11:53 145

原创 C工程的云南白药#define xxx_EXT

参考:http://www.cnblogs.com/alongwaytogo/p/5111516.html头文件:#ifndef __OS_HELP_H__#define __OS_HELP_H__#ifdef xxx_GLOBALS //如果定义了 xxx_GLOBALS#define xxx_EXT //那么xxx_EXT就被定义为 空 #else#define ...

2018-06-11 17:06:48 449

原创 一个C语言的错误:临时变量出栈以后不可预知

问题引入:设计一个给文档命令的函数申明:void ReportName_Logic(char *Title);char *ReportName=NULL;调用:ReportName_Logic(ReportName);//此时我以为跑完以后ReportName就取好名字了。实现:void ReportName_Logic(char *Title){ u8 rval=0; DIR SDdir; F...

2018-06-11 14:24:30 519

原创 小结参数配置的若干方式,SD卡放置config.txt的解析

图中结论:换行 0x0D,0X0A,     TAB 0x09,空格 0x201写各种信息到M1卡,用户卡-管理员卡-配置卡,刷卡单片机读走数据,完成参数修改。---需要上位机配合写卡。2屏幕UI,按键或者触屏修改。---比刷卡更可视化。3蓝牙通讯,app发送数据。---需要开发移动app。4放置指定名字的.txt,程序去读文件,比如树莓派那个我就是这么玩的。后期任务;SD卡A...

2018-06-07 17:47:37 650

原创 STM32按键的短按/长按/双击

上一篇文章已经写好了定时器。现在狭隘的用一下:https://mp.weixin.qq.com/s?__biz=MzUyOTM0NDkyMA==&mid=2247484014&idx=1&sn=b07bde8a1d5b15467b2c80dfd7ae3547&chksm=fa633299cd14bb8f8e9334282059930bafabf44dfcf502b0...

2018-06-06 15:54:26 16041 8

原创 STM32定时器,只说最优解

任务:用TIM做一个硬定时实现us级别的延时。参考:https://blog.csdn.net/qq_22252423/article/details/76468161         https://blog.csdn.net/anchises/article/details/52101512分析:操作计数的那个值,控制从哪里到哪里,就可以得到时间。也就是做一个稍大的定时,每1000...

2018-06-06 14:59:48 3844 1

原创 STM32程序代码时间测量的思考-面向对象

怎么计算程序从A跑到B需要的时间?以前物联网充电桩设备是带有RTC模块的,每次去获得时间即可。也就是A获取时间B获取时间,相减即可,并且可以获得A.B的准确北京时间。现在低成本,没有RTC,怎么做?我想配置一个定时器,和延时函数一样,控制定时器的计数值,比如1MS计数值up一个,A去设置计数值为0,B去读取计数值,就可以算出AB之间的相对时间。没有动手,问问了别人,不建议用 硬定时 来做。用系统自...

2018-06-06 11:29:56 1284

原创 STM32独立看门狗:你看狗都独立了。

HAL:https://blog.csdn.net/u014470361/article/details/79008865参考GIT:STM32--软看门口--不需要任何硬件支持--它在IC里面已经集成了。(算是独立看门狗的误解吧)一个倒计数,减减减减减减,减到0就会触发一个系统复位信号也就是单片机重启了。喂狗呢?就是隔一段时间就给这个倒计数重现装载数据,保持它不要到0.头文件...

2018-06-05 14:45:46 1214

原创 STM32一枚按键的旅行(GPIO+中断+NVIC分组)

看硬件原理图GPIO的C13和E0是两个按键,平时是高电平,当按键下去的时候就接地变成低电平。开始软件配置:宏定义两个按键(仔细看是有必要的因为你看GPIO_Pin_13和GPIO_PinSource13的排序是不同的)#define TSKEY1GPIO GPIOC#define TSKEY1GPIOPIN GPIO_Pin_13#define TSK...

2018-06-04 17:01:00 4224

iso15693Read.c

针对15693协议的NFC卡-ST25TV的操作 如果有开发需求可以参考 或者联系我

2022-01-12

麒麟座IIC测试AT24C02RET6.zip

通过中国移动的麒麟座开发板STM32F103软件模拟IIC读写板载的AT24C04测试的读写 基本工程--US延时--IIC模块--基于设备的对接层 含有git 和一个TOUCH的IICzip

2020-01-22

TOUCH-KING2.zip

OTA范例 现在成功完成自己的优化 保证SIM800C高性能的下载 成功率非常高 速度非常快 每次都是连接TCP执行下载

2019-11-21

TOUCH-KING.zip

自己做的OTA工程 包括BOOT工程 APP工程 合并的脚本 目前的这个HTTP下载思路比较独特它是SIM800C做一个HTTP下载部分 此后拿去头部在KFIFO中读写 成功率不是很好 打算后面优化这里

2019-11-20

nanopb-执行完毕.C.H文件-3个文件

一个nanopb-0.3.9.3-windows-x86测试案例 如果编译出来 和我的.C.H一样 说明你成功了

2019-09-17

STM32-KEIL分散加载范例

以前看到IAR可以做 linux内核也可以做,一直以为是一个未解之谜,比如一个数组ARR[10]注意的话,你以后在每个模块.C.H用的时候用ARR[1] ARR[4]是不能在空白地方作为全局变量的 必须在函数内部 而 我们需要的是在空白地方做全局变量!分散加载就是这个技术!附件是我KEIL成功的!非常顺利,因为我从RTT源码里学习的

2019-04-24

W25Q64内部结构图

W25Q64内部结构图 方便快速管理内存 就像STLINK提供的工具一样

2019-04-09

STM32位带参考programming manual

HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin,GPIO_PIN_SET);//亮 这样的操作是库函数,试试位带吧。STM32F103有文章已经成功,但是L471貌似不可以,它GPIO的地址不在区间内!!但是可以自己写*p1=((uint16_t)0x0800);//不亮 看我文章吧

2018-12-26

NXPR663官方文档

NXP官网已经更新了,但是新包里面没有V2.0的描述,这个包是旧版本的,反而看的比较清楚。针对RC663开发有帮助

2018-12-05

STM32L471_HAL_SPI1_W24Q64读写代码

STM32L471_HAL_SPI1_W24Q64读写测试 之前都是标准库写的,这次换成了HAL库 可以看到风格是MX生成代码 然后搬运到对应的模块的地方

2018-11-14

STM32L471用户手册Reference manual

用户手册 比如在最后可以表达#define CHIP_ID_START 0x1FFF7590 #define CHIP_FLASHSIZE_START 0x1FFF75E0 完成芯片信息查询

2018-11-14

M1卡读写上位机开发库函数说明文档

读写M1的3个流程,寻卡--防冲突--选卡 该文档指导库函数中返回值的意义SAK。这是最新版,增加了UID白卡的操作函数

2018-11-06

BB0906蓝牙协议

BB0906蓝牙模块,本文描述各种收发指令。安卓是bm77的设备使用蓝牙3.0协议spp,0906使用的是ble协议。

2018-10-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除