- 博客(1011)
- 资源 (15)
- 收藏
- 关注
原创 STM32F103C8T6手戳OS
APP程序的设置 因为BOOT的bin是4K 设置稍微大一些就8K用作BOOT后面全部是APP。修改C文件:偏移量#define VECT_TAB_OFFSET 0x2000。烧写是bin+bin中间填充FF。使用J-LINK直接烧写 正常。现在完成从BOOT跳转到APP。1-BOOT完成仅仅点灯。2-拷贝一模一样的工程。BOOT程序的跳转函数。
2025-01-26 15:33:45
302
原创 单片机延时函数us
测试的时候 万用表鳄鱼夹----一排口的COM标识的2个随便 都是GND。尖头---PWR(V)的靠近 近距离边缘的LED。这个函数 执行一次 预计延时是3us。那么12*1/40=0.3us。基本就是3US的 符合要求!看图我们是40MHZ的晶振。...
2022-08-12 15:40:38
1245
原创 ESP32蓝牙主机nus服务
宏定义是 一个数组 成员是1个 也就是1 0 我把全局的加进去TX RX齐活了!发送函数 不要额外的变量了 就是全局的 放进去!代码/* * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 *//***************************************...
2022-05-03 21:38:09
541
原创 ESP32定时器
ESP32 之 ESP-IDF 教学(四)——高分辨率软件定时器(esp_timer)_Augtons正(单片机)的博客-CSDN博客_esp32定时器kESP32 之 ESP-IDF 教学(四)——高分辨率软件定时器(esp_timer)_Augtons正(单片机)的博客-CSDN博客_esp32定时器k就是这个效果放在mian.即可timer1Init();#include "esp_timer.h"esp_timer_handle_t timer1;.
2022-05-02 17:21:23
1880
1
原创 ESP32蓝牙主机NUS-收发消息
参考问题遗留-ESP32主机-52840从机_GKoSon的博客-CSDN博客现在情况好像不同 了代码1---此时esp32可以使能从机 可以收到从机的nus消息但是主机准备发消息的时候会失败E (32327) KOSON: A: acked ----311--write char failed, error status = 3这是因为ESP的源码只给出一个服务一个特征值 而nus是有2个直接发送的话 那个函数 的 一个成员 是需要句柄的我用的是TX的 而用RX的才可以
2022-05-02 11:43:53
966
原创 树莓派主机测试程序
/*2022/04/26 07:56:11 Failed Scan Resource Not Ready2022/04/26 07:56:11 Scanning...692022/04/26 07:56:11 Failed Scan Resource Not Ready2022/04/26 07:56:11 Scanning...702022/04/26 07:56:11 Scanned name M_IZAR_TEST MAC DF:5F:34:32:3A:442022/04/26 07:5.
2022-04-28 20:43:50
2716
原创 调试ESP32蓝牙
1--一个从机都没有 扫描时间到了 就停止了 case ESP_GAP_SEARCH_INQ_CMPL_EVT: ESP_LOGI(HCI_TAG, "X ESP_GAP_SEARCH_INQ_CMPL_EVT 程序会截至到这里 表示扫描的时间到了 一个满足条件的从机都没有扫到"); esp_ble_gap_start_scanning(10);//我再次开始扫描 这里是10S 使用串口工具看 就是实打实的10S 如果还是没有满足条件的从机
2022-04-25 17:55:15
1254
原创 通道满了 继续往里面发 会如何?
答案:消息不会丢 有人消费消息了 后面的消息会继续发进去案例先放后拿老铁没毛病!package mainimport "fmt"func main() { ch := make(chan int, 5) for i := 0; i < 5; i++ { ch <- i } close(ch) // 关闭ch for i := 0; i < 10; i++ { e, ok := <-ch fmt.Printf("%v, %v..
2022-04-21 16:02:03
263
原创 Github学习
1---释放一个什么样的形式 看它的readme2--简单的代码 从机+广播+服务 不要本地代码3--封装bash 它的shell很不错4--怎么沟通的样子GitHub - DiscreteTom/ble-raspi-manager: Manage Raspberry Pi using Bluetooth Low Energy它没有放在里面 全局DiscreteTom我们是module mcubemems.com/m_izar_rpi_gwgo 1.16
2022-04-19 10:04:18
233
原创 logrus的使用
基础1package mainimport ( log "github.com/sirupsen/logrus")func main() { log.WithFields(log.Fields{ "animal": "dog", }).Info("一条舔狗出现了。") log.SetLevel(log.TraceLevel) //输出级别 //log.SetReportCaller(true)//行号 //log.SetFormatter(&log.JSONForm
2022-04-18 20:07:06
413
原创 Go套路 Scan 轮询变中断
V1.0package mainimport ( "fmt" "time")func loopcheck(ch chan bool) { var i int = 0 for { time.Sleep(time.Second) i++ if i == int(2) { ch <- true } }}func main() { ch := make(chan bool) go loopcheck(ch) ticker_period := 1000
2022-04-18 11:47:15
369
原创 Go基于MAP数据结构生产-消费通讯
当前写法 不够高级 暂时当前package bwmaptype Data struct { Timeout uint8 Ctrl_cmd uint8 Version uint32}var CtrlCMD map[string]Datafunc init() { CtrlCMD = make(map[string]Data, 5) } /*完成[6]byte--->[]byte--->string*/ var tmp []byte tmp = cc.
2022-04-17 10:39:13
379
1
原创 muka/go-bluetooth 眼镜蛇
https://github.com/muka/pi-wifi.git/*本地IP 已经知道了 ws的echo*/眼镜蛇https://github.com/muka/go-bluetooth.git怎么使用眼镜蛇图片 框架module github.com/muka/go-bluetooth认真阅读MUKA的readme 有很多宝贝!宝贝1--眼镜蛇cd _examplesgo run main.go# print available example commands
2022-04-15 10:07:59
655
原创 biluz复位HCI接口
问题:树莓派做蓝牙主机 去连接从机时候 容易失败连接失败 就重现开始扫描 在连接希望在失败以后做一个复位蓝牙的动作如何复位一次hci接口?func Reset(adapterID string) error { err := Down(adapterID) if err != nil { log.Warnf("Down failed: %s", err) } return Up(adapterID)}怎么找到的?\muka\hw\linux\l...
2022-04-13 20:41:22
273
原创 Go编程 技巧 for range 和channl(除了select的另外一种)
案例:notify_ch, err := tx.EnableNotifications(func(value []byte) {在一个通道轮询 赌赛的 一旦通道有数据 拿马上拿出来 直到通道关闭 它也就死循环结束从而消亡了【相比较 select需要一个关闭条件的 这个不需要条件 通道关闭 它自动就关闭了go程自动结束】for range会一直读取数据直到,chan关闭。无缓冲chan相当于一个开关,不存储数据,同步阻塞类型,如果没有for rang不断读取数据,c...
2022-04-12 16:40:29
1907
原创 make(chan int, 1) 和 make (chan int) 的不同--回答之前select不能自己给自己发消息的问题
奇怪问题:通道的数目本次提交的代码 键盘输入8 可以正常ACK继续 键盘输入8 可以正常ACK继续 键盘输入8 可以正常ACK但是键盘输入1 云平台进去以后 就不可以 而且8也不可以!修改14行var Ble = tBle{ Status: make(chan int, 1),}就可以成功了!为什么make(chan int, 1) 和 make (chan int) 的不同无缓冲区channel用make(chan int) 创建的chan, 是无缓冲区的, se...
2022-04-11 17:04:36
178
原创 go build 通过文件名后缀实现不同平台的条件编译操作
go build 可以通过标签或者文件名的后缀来提供条件编译,我选择简单的---通过文件名的后缀来提供条件编译文件命名约定可以在go build 包里找到详细的说明,简单来说,就是源文件包含后缀:_$GOOS.go,那么这个源文件只会在这个平台下编译,_$GOARCH.go也是如此。这两个后缀可以结合在一起使用,但是要注意顺序:_$GOOS_$GOARCH.go,不能反过来用:_$GOARCH_$GOOS.go例如下面截图,是go的bluez的实现这些文件定义了对应不同平台下是否需要编译。
2022-04-11 14:54:56
704
原创 Go日志系统
上一篇文章基本是炮灰准备高性能开始GitHub - rs/zerolog: Zero Allocation JSON Logger遇到同样的问题 我run readme的代码 无法下载OKpackage mainimport ( "github.com/rs/zerolog" "github.com/rs/zerolog/log")func main() { // UNIX Time is faster and smaller than most tim.
2022-04-10 01:09:03
985
原创 Go编程 函数调用2和风格-包里面.和收纳到结构体
函数调用的两种风格1--类似OTA包这种 点 调用2--把函数绑定在结构体里面去 因为结构体里面都是数据成员 在外面人为加入成员函数案例:type CMD_INFO struct { // This struct is created for storage information of each data type Cmd uint16 Len uint16 Name string //convenience for log and debug}var SET_GW_DEF.
2022-04-09 13:40:41
193
原创 Go编程 利用键盘输入模块做生产-消费测试
小结:var cmd = make(chan byte)// cmd := make(chan byte)eventhandle(uint16(t)) //强转//定义函数指针type dowhat func()//定义结构体type event struct { Type uint16 Func dowhat}//var q [3]int = [3]int{1, 2, 3}//对的//var q [3]int = {1, 2, 3}//不对必须强转var e...
2022-04-09 10:41:45
176
原创 脚本 杀死进程
每天一个linux命令(43):killall命令 - peida - 博客园killall -9 bash和上图效果一样!!!被推出了!!!Linux系统中的killall命令用于杀死指定名字的进程(killprocessesbyname)。我们可以使用kill命令杀死指定进程PID的进程,一般是需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。killall[参数][进程名]改进1---killal...
2022-04-08 19:23:36
2111
原创 【无标题】
Go语言基础之并发 | 李文周的博客入门必看测试package mainimport ( "fmt")// Producer 返回一个通道// 并持续将符合条件的数据发送至返回的通道中// 数据发送完成后会将返回的通道关闭func Producer() chan int { ch := make(chan int) // 创建一个新的goroutine执行发送数据的任务 go func() { for i := 0; i < 5; i++ { //fmt
2022-04-08 15:26:00
136
原创 Go 事件驱动 实现事件的晌应和处理
在C语言里面也有 很多这样的代码 这里go版本基本观点:Go语言可以将类型的方法与普通函数视为一个概念,从而简化方法和函数混合作为回调类型时的复杂性。这个特性和 C# 中的代理(delegate)类似,调用者无须关心谁来支持调用,系统会自动处理是否调用普通函数或类型的方法。测试代码:package mainimport "fmt"// 声明一个结构体type class struct {}// 给结构体添加Do方法func (c *class) Do(v
2022-04-07 20:43:59
797
原创 前置校验web 定时关闭弹窗
问题:ZIP上传完毕以后 这个控件非常干净它已经完成了它的使命!但是现在我们要越俎代庖了!需要验证ZIP文件是不是OK 告诉UI需要提示刷新或者等待1--把后面的校验搬到前面OTA需要独立一个接口做chekc反馈2--怎么自动关闭UI弹窗html弹窗自动关闭,js弹窗提醒后自动关闭弹窗实现方法_邓炯源的博客-CSDN博客这个思路 刚刚做了隐藏进度条!但是时绕弯子63-Alert 自动消失-重写弹窗_Dream_by_Dream的博客..
2022-04-07 15:27:09
224
原创 树莓派CM4开机准备开发环境
微信 GKoSon攻城狮金华前面两篇文章描述树莓派4B从开箱到开机本文可以说是前面两篇文章的小结同时本文做活体测试的不再是树莓派4B而是树莓派的运算模组CM4为什么选择CM4做开发?因为它有独立的天线!第一部分 商品介绍CM4商品链接:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.20722e8dinxeHI&id=629526017603&_u=pvcquvh7e8a底板商品链...
2022-04-06 14:59:06
2146
1
原创 GO修改直线代码为事件驱动/蓝牙主机测试
package mainimport ( "fmt" "time")type WsManager struct { chan_disconnect chan bool chan_reportNewCome chan string chan_reportStatus chan string chan_reportHexData chan []byte chan_issueNodeCmd chan string chan_issueNodeOta chan string.
2022-04-05 21:11:57
522
原创 Go通道关闭以后还能继续使用吗
Go语言关闭通道后继续使用通道_月亮+六便士的博客-CSDN博客使用close()来关闭一个通道:close(ch)关闭的通道依然可以被访问,访问被关闭的通道将会发生一些问题。1--给被关闭通道发送数据将会触发panic2---从已关闭的通道接收数据将不会发送阻塞测试代码func rx() { //defer close(Wsm.Chan_ReadErr)//不要关闭 一旦关闭 以后不能使用了 for { mt, message, err := Wsm.WS_C
2022-04-05 20:00:36
679
1
原创 GO编程 利用interface传参(正向/反向)
问题:一个函数 调用它的时候 参数的传入 可能是string也可能是[]byte需要一个多态的办法处理怎么办?func tx(ws_conn WS_CONN, text string) error { ws_conn.Lock.Lock() defer ws_conn.Lock.Unlock() return ws_conn.C.WriteMessage(1, []byte(text)) //1-websocket.TextMessage 写死}它的调用是tx(...
2022-04-05 18:48:36
1551
1
原创 Go操作LINUX 系统信号
1--基础GO诸塞函数package mainimport ( "fmt" "time")func main() { done := make(chan bool) go func() { time.Sleep(2 * time.Second) fmt.Println("send") done <- true }() <-done fmt.Println("exiting")}主程序不是for{}或者time.Sleep毒蛇的而是通道毒蛇的
2022-04-03 16:58:09
2202
原创 Go编程程序传参的控制/值和址
案例 运行任务 传一个参数进去 这个任务时死循环 希望running的时候还可以修改这个参数不可以的package mainimport ( "fmt" "time")func main() { var num int = 4 go m_ble_task(num) time.Sleep(3 * time.Second) num = 5 time.Sleep(3 * time.Second)}func m_ble_task(conn_limit int) { for
2022-04-02 11:00:33
495
原创 Go编程 OTA解耦
var wg sync.WaitGroupwg.Add(2)--数据总量是2wg.Done()--执行一次数据减1wg.Wait()--等到数据减到0问题:WEBUI完成下载以后的弹窗WIN10可以Pi不行发现是最后的这个函数有问题那么就不在内部调用了用通讯触发源码:func http_upload(writer http.ResponseWriter, request *http.Request) { log.Printf("[http_upload] start\r\n")...
2022-04-02 10:26:21
302
麒麟座IIC测试AT24C02RET6.zip
2020-01-22
TOUCH-KING.zip
2019-11-20
STM32-KEIL分散加载范例
2019-04-24
STM32位带参考programming manual
2018-12-26
STM32L471_HAL_SPI1_W24Q64读写代码
2018-11-14
STM32L471用户手册Reference manual
2018-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人