- 博客(58)
- 资源 (11)
- 收藏
- 关注
原创 STM8L 简单按键复用处理(短按、长按)
文章目录前言一、实现原理二、使用步骤1.按键中断初始化2.定时器操作3. 中断处理总结前言开发中经常遇到按键数很少,却要实现多种类型触发功能的场合,比如短按、长按、双击等等,即所谓按键复用。一般情况下,都是在中断函数中收到终端,做延时判断、防抖等处理。但中断处理不能太久,所以稍微好一些的实现,基本是用定时器来扫描处理。关于这个按键复用功能,ESP的一个项目esp-iot-solution中,有一个非常棒的实现,大家可以参考。本文描述的是一个简单实现方法,简洁易用。一、实现原理为减少中
2021-10-22 13:34:54
1251
原创 使用STM8L的硬件I2C(四)硬件I2C的使用注意
使用STM8L的硬件I2C(四)硬件I2C的使用注意使用STM8L的硬件I2C时,有几个点要注意:I2C的初始化时钟的使能操作必须在其他I2C设置之前,否则设置不生效CLK_PeripheralClockConfig(CLK_Peripheral_I2C1, ENABLE);Slave地址的设置这一点让人困扰,花了不少时间才搞清楚。是因为标准库函数I2C_Send7bitAddress()并不会帮助你左移。这个左移动作必须由用户完成,如下:I2C1, _i2c_dev.addr
2021-01-17 21:28:15
921
原创 使用STM8L的硬件I2C(三)硬件I2C的中断读写处理
STM8L的硬件I2C(三)硬件I2C中断读写1、I2C初始化关于I2C初始化的流程,标准库中的注释写的非常清晰: * 1. Enable peripheral clock using CLK_PeripheralClockConfig(CLK_Peripheral_I2Cx, * ENABLE) function (Refer to the product datasheet for the available I2C * p
2021-01-15 22:40:28
4182
1
原创 使用STM8L的硬件I2C(二)硬件I2C的事件和检测
STM8L的硬件I2C(二)硬件I2C的事件和检测1、STM8L STD库对I2C状态的定义I2C有Master写、Master读、Slave写、Slave读4种模式。直接寄存器编程当然可以,不过必须吃透Reference手册,而且代码不直观,不易理解。STD标准库对这四种方式做了抽象,对通信的各阶段都定义了状态进行指示,从而使得使用逻辑更直观易懂。下面以Master读写为例进行介绍:Master写流程:Master读流程:2.EV状态的定义上述抽象出的各种状态(EV1-
2021-01-13 22:54:07
1603
原创 使用STM8L的硬件I2C(一)硬件I2C简介
STM8L的硬件I2C(一)硬件I2C简介和使用方法的选择I2C是常用的外设协议,用途广泛。很多时候为了实现简单,在STM8上大家都是用GPIO来模拟I2C工作。STM8L自带硬件I2C,不过相对于模拟I2C的清晰简单,硬件I2C的处理要麻烦一些。一是必须要理解各寄存器用法,二是使用STD库时还须理解STD抽象出的I2C接口和使用逻辑。模拟I2C一般情况下使用问题不大,但若同时要处理其他外设或者对延时有要求,模拟方法就力不从心,如使用硬件I2C,就可以采用中断处理解决。1、I2C协议回顾
2021-01-08 22:33:40
2125
1
原创 awk 常用方法
awk's usageawk -F "spearator" '[BEGIN {}] [{}] [END {}]' file1 file2 *.txtexample#---- Sperator -----00. awk '{print $1}' info.txt01. awk -F ";" '{print $0}' info.txt02. awk -F "[,/t]" '{print $2, $3}' info.txt03. awk -F "[,/t]" '{if( $1 > 1.
2020-10-10 12:27:49
236
原创 使用C++/CLI开发自动获取Windows锁屏壁纸的小工具
使用C++/CLI开发Windows锁屏壁纸小工具Windows锁屏壁纸C++/CLI锁屏壁纸的获取方法C++/CLI实现抓取锁屏壁纸工具代码界面说明zip下载Windows锁屏壁纸Windows10目前都会默认使用锁屏壁纸,有时候会有喜欢的图片出现,虽然可以手工保存下来,但是步骤繁琐,操作非常麻烦。C++/CLIC++/CLI作为托管C++的升级,本就是比较生僻、少有人用的技术,随着它的...
2019-11-13 17:52:09
720
2
原创 使用STM32CubeIDE移植腾讯物联网OS TencentTiny-OS
使用STM32CubeIDE移植TencentTiny-OS到STM32103C8使用TrueStudio移植TencentTiny-OS到STM32103C8**前言概要****链接****一、STM32CubeMX生成工程****二、STM32CubeIDE工程设置和移植代码修改****三、编译工程和调试****四、代码下载**使用TrueStudio移植TencentTiny-OS到STM...
2019-10-15 15:12:05
1919
原创 Subversion配置http访问的1个注意点
在CentOS服务器上配有一个SVN,环境中有SVN自有协议和HTTP协议配置了同时访问,SVN协议是大家都了解的passwd(配置用户信息)和authz(配置组信息和访问权限)文件,HTTP则使用LDAP来访问用户信息。因为LDAP管理略有不便,所以打算将HTTP切换成和SVN的passwd的相同用户表。但是却总是无法成功,总是反复提示重新填写帐号,apache的日志里则提示Not fo...
2019-02-28 16:41:21
527
原创 STM8S UART串口使用中断收发数据
标题STM8S UART串口使用原来调过STM8L的串口,逻辑简单,中断清晰,换成STM8S105K4后,虽然也是用STD库,除去函数名、宏名等语言层面的差异以外,中断处理方面也颇有些不一样的地方,特此记之。和此篇结构相同,也是中断异步模式,但为调用方便起见,在调用层面改为同步。STM8S105K指定RX为PD6,RX为PD5。读写缓冲和标识值定义#define UART_BUF_...
2018-11-07 17:46:50
13431
8
原创 11. ESP8266使用Mongoose-os的体验2 - 【Advanced JavaScript】开发
关于本文在【8. ESP8266使用Mongoose-os初体验(使用bh1750传感器)】中,已经简单介绍过在mongoose-os中利用mjs进行开发,不得不说,的确是便捷方便。但是需要认识到,mjs只是为了提高效率、降低开发而加入的javascript的接口层,语法糖,其核心部分依然是C的实现,mjs中的大量接口都是通过ffi直接映射C接口而来。目前,用mjs完全可以做到iot的开发,但...
2018-10-10 00:12:53
1771
3
原创 STM8L EEPROM DATA数据读写
一、概要 STM8系列一般拥有如下几种三种数据区用户启动区域(UBC)数据EEPROM(DATA)主程序区选项字节(Option byte)用户启动区域(UBC)包含有复位和中断向量表,它可用于存储IAP及通讯程序; 数据EEPROM(DATA)区域可用于存储用户具体项目所需的数据; 主程序区是指在FLASH程序存储器中用于存储应用代码的区域; 选项字节用于配置硬件特性和...
2018-07-13 18:28:49
7181
3
原创 STM8L 简单定时器使用
STM8L中有多个定时器,TIM1最高级,其他都是普通定时器,一般情况下也够用。最简单的示例初始化 // TIM3时钟使能 CLK_PeripheralClockConfig(CLK_Peripheral_TIM3, ENABLE); // 默认初始化 TIM3_DeInit(); // 最主要处理:设置计数(延时时间)
2018-01-17 10:51:38
4030
2
原创 STM8L USART串口使用
USART串口使用STM8L上有多个串口,最多可达5个,分别为USART1~USART5,但依据型号不同,搭载数量并不相同。 以STM8L052R8为例,其只具有USART1~USART3。 因为STM8系列功能众多,很多Pin都是复用的,因此使用前必须检查STML的参考手册。 通过手册可知,以USART1为例,RX/TX可以使用以下的管脚,默认是PC2/PC3, 如果要变更,需要修改
2018-01-17 10:34:32
10535
8
原创 STML8的中断使用小结
STM8L的中断,有两种模式,分别为Pin模式和Port模式,也就是所谓线中断和端口中断。 简而言之,线中断是指所有寄存器组的同一管脚Pin的中断都使用同一中断号, 端口中断是指同一个或多个寄存器组的所有管径Pin的中断使用同一中断号。 举例而言, 所有Port A/B/C/D/E的Pin1的中断都是EXTI1, Port B 和Port G的所有Pin的中断都是EXTIB/G实现方
2018-01-04 16:21:44
5744
4
原创 10. ESP8266通过OTA更新固件的实践
1. OTA是什么 OTA(Over The Air),通常也称为FOTA(Firmware Over The Air),意思是硬件中的固件通过无线升级版本。众所周知,硬件固件的部署,以及固件版本升级很麻烦的,很多时候得通过人工完成,成本很高。所以OTA是一个颇为实用、实惠的功能。 手环等设备,其实也有这类问题,一般都是通过APP升级-> ->蓝牙固件升级的方式。2. 乐鑫对OTA的
2017-07-26 14:02:34
13256
2
原创 VIM高阶实用技巧
也许是Vim的帮助已经很详细,关于VIM的书籍比较少, 这本【Practical Vim】,中文译名【Vim实用技巧】(书名太朴实)中描述了很多技巧和思路, 对有一定经验的Vim使用者而言,是非常好的提高资料。文本对象操作di( di) dib 删除内含 ‘(’ ‘)’ 块, 保留括号da( da) dab 删除一个 ‘(’ ‘)’ 块di{ di} diB 删除内含 ‘{’ ‘}’
2017-07-21 20:28:19
1072
原创 9. ESP8266使用esp-open-rtos的实践
一、esp-open-rtos概要Esp-open-rtos是开源的、基于freertos的、用于ESP8266固件的开发支持环境。最早是从乐鑫官方的ESP8266_RTOS_SDK基础上fork而来,但是目前的代码、框架已经和原SDK相去甚远,有了大幅的变化。从代码结构、编译方法、支撑库等均有不同,而且内置了更多的常见传感器驱动,以及MQTT、TLS、甚至OTA等常用的功能模块。相比官方同样的RT
2017-07-15 23:42:46
10413
8
原创 8. ESP8266使用Mongoose-os初体验(使用bh1750传感器)
随着ESP8266的流行,基于ESP8266的FW发展也愈发兴旺,除了乐鑫原厂的AT、RTOS固件外,为促进IoT开发的效率,尤其是原型开发,基于各种脚本、动态语言的固件越来越受到欢迎。比如,nodemcu支持lua,各种micro python的固件,各种javascript固件等。Mongoose-os是一个基于javascript的固件和IDE环境,其支持ESP8266、ESP32、以及CC3
2017-07-05 22:55:01
6814
3
原创 7. NodeMCU上使用RTOS固件读取bh1750传感器数据的实践
NodeMCU上使用RTOS固件读取bh1750传感器数据的实践本文主要是尝试在NodeMCU上,使用RTOS来控制bh1750光照传感器,以获取亮度数据。关于RTOS固件的编译环境和编译方式的介绍,可参照之前的文章。 ESP8266固件的编译5(RTOS SDK固件)其实nodeMCU自身的原生lua固件是非常好用的,预置了相当多的传感器驱动, 使用过程非常便利,调试也容易。nodeMCU对B
2017-06-25 20:09:20
4527
1
原创 6. ESP8266固件的下载
ESP8266固件的编译6(固件的下载)固件下载工具有很多,有nodemcu提供的flasher,也有pytool,为了参照资料方便起见,使用乐鑫官方的FLASH_DOWNLOAD_TOOLS比较方便。 可以在乐鑫官方网站找到它,目前的最新版本是3.4.8. (http://www.espressif.com/sites/default/files/tools/flash_download_to
2017-06-25 18:32:10
10284
2
原创 4. ESP8266固件的编译(NONOS SDK固件 AT固件)
AT固件编译 应用广泛的AT固件是基于Non-OS SDK开发的, 为简单起见,这里编译的是Non-FOTA类型的固件, 通常也称Eagle固件。1) 在NONOS目录下新建app目录,将examples/at下所有文件复制到该目录下 2) 因无须开启FOTA,所以AT升级功能并不必要,修改include/user_config.h文件 注释掉AT_CUSTOM_UPG
2017-05-21 15:44:53
6032
2
原创 3. ESP8266固件的编译(乐鑫原厂SDK)
ESP8266 SDK的基础平台按照是否基于操作系统可分为: non-OS 和 RTOS 两种版本。
2017-05-21 15:41:33
8873
原创 Arduino板一览
左侧自上而下: arduino tiny85 arduino pro mini arduino pro micro arduino nano arduino lily pad右侧自上而下: nodeMCU(esp8266) arduino UNO arduino Mega2560焊完引脚后的:
2016-12-18 22:29:34
4269
原创 Arduino使用ESP8266通信的实践
列表内容一、 背景 nRF24L01的成本较低,但内部需通过SPI通信,略显复杂,同时RF过于专用,接入其他系统时需要转换,不方便。 ESP8266是乐鑫公司推出的廉价、但几乎全能的WIFI芯片,被各种智能硬件广泛使用,根据其datasheet,不但支持SPI,也可通过I2C、UART等方式进行通信,尤其是UART,直接支持AT指令,大大简化开发难度,相当便利。本文即采用AT模式...
2016-11-25 17:15:38
50032
12
原创 Arduino与树莓派间的通信实践
Arduino与树莓派间的通信实践Arduino与树莓派间的通信实践方案选择接线nRF24L01+RF
2016-11-23 17:25:31
15532
3
原创 TP-Link 703N刷OpenWrt的实践
1)下载编译好的固件从OpenWrt的官方站点https://openwrt.org/http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr2543-v1-squashfs-factory.bin固件分为squashfs和jiffs2两种文件系统。具体的区别是jiffs2将固件本身
2013-05-19 00:47:41
36172
6
原创 确实速度快!FreeNX的安装
利用远程桌面时,基于费用的考虑。在Open制品下,通常情况下都会使用vnc,平台兼容性好,除了速度差点。纯Linux平台的情况有时也会用XMing+SSH X协议转发。用没有问题,特别是小程序,但终归不太方便,应用Eclipse等大程序力不从心的感觉。网络性能很差的情况下,VNC效果太差,又想使用Xwindow桌面的话,现在有一个新选择NoMachine NX(和FreeNX是关系?),
2013-05-18 23:09:56
9713
原创 awk‘s usage
awk's usageawk -F "spearator" '[BEGIN {}] [{}] [END {}]' file1 file2 *.txtexample#---- Sperator -----00. awk '{print $1}' info.txt01. awk -F ";" '{print $0}' info.txt02. awk -F "[,/t]"
2011-06-20 14:32:00
1719
原创 HTC diamond 加速度传感器 接口封装
感谢 scott,他反编译了HTC的GSensor用接口, http://scottandmichelle.net/scott/comments.html?entry=784感谢 Timothy,他的示例程序很清晰易懂 http://www.xiaozhou.net/vcdevelopment/htc-touch-pro-of-gravity-sensing-2009-07-07.ht
2010-03-30 20:35:00
2937
转载 Linux 内核的排队自旋锁(FIFO Ticket Spinlock)
Linux 内核的排队自旋锁(FIFO Ticket Spinlock)
2008-07-03 10:43:00
1793
原创 漫长的学车历程胜利结束,总结路考夜考步骤
路考夜考步骤 喊报告,从车后绕行一周,到车门处,再次报告。得到考官允许后,向后观察后,双手开门上车。将身份证交给考官检查。 系好安全带,调整座椅,调整后视镜。投空挡,点火。打开车灯,并调试远近光一次,最终使用近光。然后报告,“报告考官,水温80度,其他仪表工作正常。灯光工作正常,请求起步“。得到考官允许后,准备起步。1. 关四角灯2. 挂一档
2008-03-05 13:14:00
10243
5
原创 夜考上下车步骤
近日夜考,意外失手,心情颇为郁闷。痛定思痛,总结经验教训。考试过程一波三折,最后还是挂了,虽然考官过于严厉,但自己也是过于紧张,实在不应该。2个错误:“行车方向不稳“, ”下车未关车灯“。教训,牢记吧。 上车起步步骤:1. 投空挡2. 踩离合,点火3. 打开车灯,调试远近光后,换为近光灯4. 向考官报告,请求起步5.
2008-01-24 10:31:00
4227
1
原创 路考步骤、注意点
路考步骤、注意点 起步步骤:1. 在驾驶员窗前喊“报告”,得到考官允许后,按逆时针方向,从驾驶员-车尾-车头-驾驶员绕行一圈,检查车辆。2. 再次报告,考官允许后,向后观察道路情况。打开车门,双手递给考官证件,“请检查我的身份证”3. 上车后,调整座位,系安全带,调整中后视镜4. 将档位从一档换至空挡。5. 启动发动机,并报
2008-01-10 13:41:00
25241
49
原创 场地九项-坡道起步,限宽门,百米加减档
定点停车和坡道起步 挂一档,慢抬离合,缓步上坡。保持车右侧距离定点杆距离约为20cm,当车头将要没过停车线或者车头右侧小后视镜离定点杆20cm左右时,迅速踩离合,踩刹车,拉手刹。如果手刹不好用,还要继续踩刹车,防止溜车。 踩离合,挂一档,慢抬离合到半联动位置,此时会感觉车身明显发颤,然后迅速松手刹,(右脚从刹车放到油门),轻踩油门,起步后慢抬离合,缓步上坡,到坡顶后松油门。 注意点:
2007-11-19 14:27:00
5857
1
在Kubernets下部署RAP2用HelmChart
2022-07-08
Windows10自动抓取锁屏壁纸工具
2019-11-13
TencentOS-tiny-STMF103.zip
2019-10-15
ESP8266 AT固件 (20170521编译)
2017-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人