<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[falali162的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/falali162</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; falali162]]></copyright><item><title><![CDATA[BTStack学习笔记3]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/139921325</link><guid>https://blog.youkuaiyun.com/falali162/article/details/139921325</guid><author>falali162</author><pubDate>Mon, 24 Jun 2024 22:03:38 +0800</pubDate><description><![CDATA[【代码】BTStack学习笔记3。]]></description><category></category></item><item><title><![CDATA[BTStack学习笔记2]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/139883156</link><guid>https://blog.youkuaiyun.com/falali162/article/details/139883156</guid><author>falali162</author><pubDate>Mon, 24 Jun 2024 11:31:25 +0800</pubDate><description><![CDATA[协议栈关键配置：使用RTT 的logger打印信息：]]></description><category></category></item><item><title><![CDATA[BTStack蓝牙协议栈学习笔记1]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/139882636</link><guid>https://blog.youkuaiyun.com/falali162/article/details/139882636</guid><author>falali162</author><pubDate>Sat, 22 Jun 2024 15:14:46 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[工具使用笔记]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/136109012</link><guid>https://blog.youkuaiyun.com/falali162/article/details/136109012</guid><author>falali162</author><pubDate>Tue, 13 Feb 2024 20:01:19 +0800</pubDate><description><![CDATA[安装keil5 时，激活时需要管理员允许，激活工具也需要管理员允许。]]></description><category></category></item><item><title><![CDATA[DWIN屏 踩坑日记]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/135570876</link><guid>https://blog.youkuaiyun.com/falali162/article/details/135570876</guid><author>falali162</author><pubDate>Sat, 13 Jan 2024 15:25:44 +0800</pubDate><description><![CDATA[迪文]]></description><category></category></item><item><title><![CDATA[USR-TCP232-ED2 使用modbus TCP 流程和注意事项]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/135504229</link><guid>https://blog.youkuaiyun.com/falali162/article/details/135504229</guid><author>falali162</author><pubDate>Wed, 10 Jan 2024 15:24:50 +0800</pubDate><description><![CDATA[注意点：modbus 协议完整的包电脑端在发送给tcp232模块后，收到的串口数据会省略包头6个字节，并且包尾增加两个字节的modbus crc16校验，同时，包头6个字节包括 ：|包头 0x0001  |协议号  0x0000 |长度 0x0006。写寄存器：|包头|单元|命令码0x10|地址|数量|字节长度|字节|读寄存器： |包头|单元|命令码0x04|地址|数量|响应：|包头|单元|命令码0x10|字节长度|字节|1.将模块网口和电脑插在同一个路由器。然后电脑收到的数据包会是完整的响应包。]]></description><category></category></item><item><title><![CDATA[大小端宏定义]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/135483129</link><guid>https://blog.youkuaiyun.com/falali162/article/details/135483129</guid><author>falali162</author><pubDate>Tue, 09 Jan 2024 16:03:40 +0800</pubDate><description><![CDATA[#define sw16(A) ((((u16)(A) & 0xff00) >> 8) | (((u16)(A) & 0x00ff) << 8))
#define sw32(A) ((((u32)(A) & 0xff000000) >> 24) | (((u32)(A) & 0x00ff0000) >> 8) | (((u32)(A) & 0x0000ff00) << 8) | (((u32)(A) & 0x000000ff) << 24))
#define sw64(A) ((uint64_t)(\
  ]]></description><category></category></item><item><title><![CDATA[ABOV A31G123 串口和SPI配置]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/135064719</link><guid>https://blog.youkuaiyun.com/falali162/article/details/135064719</guid><author>falali162</author><pubDate>Mon, 18 Dec 2023 15:59:08 +0800</pubDate><description><![CDATA[SPI配置：SPI不能开启中断，否则会导致发送数据时波特率过高而引起中断溢出死机。]]></description><category></category></item><item><title><![CDATA[STM32 BOOTLOADER 全流程]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/133939943</link><guid>https://blog.youkuaiyun.com/falali162/article/details/133939943</guid><author>falali162</author><pubDate>Fri, 20 Oct 2023 10:15:47 +0800</pubDate><description><![CDATA[3.通过bootloader文件大小计算APP地址：修改bootloader的地址和APP的启动地址，比如bootloader文件大小是0x5000，那么其中bootloader文件大小+0x1000的app配置信息就等于0x8006000的APP启动地址，然后修改APP的文件大小，以及spi flash中的保存地址。8.在main函数中添加判断热变量，进入APP的代码，进入当bootloader重启系统复位时，通过判断热变量进入APP，APP才能正常初始化。2.实现底层通讯接口，SPI，串口。]]></description><category></category></item><item><title><![CDATA[STM32 串口DMA不定长接收全流程]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/133911581</link><guid>https://blog.youkuaiyun.com/falali162/article/details/133911581</guid><author>falali162</author><pubDate>Wed, 18 Oct 2023 17:59:23 +0800</pubDate><description><![CDATA[思路：首先cubemax生成工程后，在用户代码中，使用空闲中断+手动调用HAL_UART_RxCpltCallback的方式来实现调用，然后处理完数据后清除空闲中断。实现手动调用完成函数，因为DMA只会在接收完整后才能自动调用，比如期望400个字节，只收到100个是不会调用完成的，一个数据包长度不够就不会调用。开启空闲中断和DMA接收，开启空闲中断后，可以用来实现数据包接收完成就产生中断，而不是DMA全部接收完成才产生中断，也不是每个字节都产生中断。]]></description><category></category></item><item><title><![CDATA[LVGL 修改字库方法]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/133882882</link><guid>https://blog.youkuaiyun.com/falali162/article/details/133882882</guid><author>falali162</author><pubDate>Tue, 17 Oct 2023 14:41:32 +0800</pubDate><description><![CDATA[lvgl可以根据这个unicode码得到位图描述id，然后id对应位图描述数组下标，再通过下标得到位图描述，获得bitmap_index，然后通过bitmap_index得到字符偏移量，最后得到字符位图。这里每个描述在数组里的位置，对应了字符映射里的ID [0-N]，bitmap_index对应于字符在位图数组里的偏移量。1.在字符映射数组里创建一个描述，指定uncode码起始码，字符数量，以及对应到的位图描述数组里的索引。2.指定一共具有的映射数量，映射数组里有多少个映射描述就是几。]]></description><category></category></item><item><title><![CDATA[STM32 L431实现W25Q64下载算法]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/132884929</link><guid>https://blog.youkuaiyun.com/falali162/article/details/132884929</guid><author>falali162</author><pubDate>Thu, 14 Sep 2023 17:12:58 +0800</pubDate><description><![CDATA[此文件要加入ABSOLUTE ，否则编译会报错 Error: L6265E: Non-PI Section stm32l4xx_hal.o(.data) cannot be assigned to PI Exec region PrgData。步骤3.实现stm32_eval_spi_flash.c Flash 中全部的读写驱动。设置输出文件的地址，一般为STLINK的安装目录。没有这一步STLINK中无法识别到算法文件。步骤4.Keil中添加依赖文件和配置。步骤5：取消掉程序入口。然后移植W25Q驱动。]]></description><category></category></item><item><title><![CDATA[STM32 硬件CAN收发 HAL代码流程]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/132316242</link><guid>https://blog.youkuaiyun.com/falali162/article/details/132316242</guid><author>falali162</author><pubDate>Wed, 16 Aug 2023 11:48:13 +0800</pubDate><description><![CDATA[或者使用void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan)2.计算波特率，使得波特率为需要的值，例如500kb，这样才能和设备进行通信。使用HAL_CAN_RxFifo0MsgPendingCallback。4.开始CAN并开启接收数据中断。7.覆写中断处理弱函数。在循环里获取接收队列。]]></description><category></category></item><item><title><![CDATA[STM32 踩坑笔记]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/132269311</link><guid>https://blog.youkuaiyun.com/falali162/article/details/132269311</guid><author>falali162</author><pubDate>Mon, 14 Aug 2023 09:30:50 +0800</pubDate><description><![CDATA[1.使用rtthread时，bootloader跳转后就跳转到错误函数中，无法正常运行，debug发现，问题是时钟再次被配置引起，解决方案：将app的时钟配置函数注释，只在bootloader中调用一次时钟配置。]]></description><category></category></item><item><title><![CDATA[STM32串口DMA收发不定长]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/131815063</link><guid>https://blog.youkuaiyun.com/falali162/article/details/131815063</guid><author>falali162</author><pubDate>Thu, 20 Jul 2023 09:23:57 +0800</pubDate><description><![CDATA[注意：接收长度的大小很重要，当接收的字节达到了size了，才能触发完成函数中断，所以要单字节触发中断，需要将size设置为1。2.msp里配置循环模式或单次模式，如果tx配置为循环，发送将会一直发送，接收配置为循环，可以一直收。3.用户接收回调函数。]]></description><category></category></item><item><title><![CDATA[解决串口过载]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/131674454</link><guid>https://blog.youkuaiyun.com/falali162/article/details/131674454</guid><author>falali162</author><pubDate>Wed, 12 Jul 2023 09:36:25 +0800</pubDate><description><![CDATA[/读DR寄存器，就可以清除ORE错误标志位。此代码是可复写的，将其写到任何C文件下。]]></description><category></category></item><item><title><![CDATA[echarts 解决缩放引起漂移]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/128047269</link><guid>https://blog.youkuaiyun.com/falali162/article/details/128047269</guid><author>falali162</author><pubDate>Sat, 26 Nov 2022 02:27:51 +0800</pubDate><description><![CDATA[在使用setattribute函数时，style会覆盖原有状态，如果不指定高度，将导致还原时高度过大问题。当完成设置后echarts需要更新。]]></description><category></category></item><item><title><![CDATA[Django 开启gzip压缩]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/128030620</link><guid>https://blog.youkuaiyun.com/falali162/article/details/128030620</guid><author>falali162</author><pubDate>Fri, 25 Nov 2022 05:31:26 +0800</pubDate><description><![CDATA[如果对类中函数进行数据压缩，在类外面加@method_decorator(gzip_page, name="getData")如果函数在类外面 在函数上加装饰器@gzip_page。getData 为 类中函数的名称。类中函数不用加装饰器。]]></description><category></category></item><item><title><![CDATA[Python RSA加密]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/127957113</link><guid>https://blog.youkuaiyun.com/falali162/article/details/127957113</guid><author>falali162</author><pubDate>Mon, 21 Nov 2022 05:36:08 +0800</pubDate><description><![CDATA[注意，如果出现无法导入包，需要卸载pycrypt 重新安装pycryptodome。# key是公钥，需要修改成自己的之后再进行加密。]]></description><category></category></item><item><title><![CDATA[execjs 调用js出现找不到windows对象]]></title><link>https://blog.youkuaiyun.com/falali162/article/details/127957096</link><guid>https://blog.youkuaiyun.com/falali162/article/details/127957096</guid><author>falali162</author><pubDate>Mon, 21 Nov 2022 04:26:56 +0800</pubDate><description><![CDATA[2.安装全局jsdom。]]></description><category></category></item></channel></rss>