摘要: 要想让两种供电方式自动切换,经常使用的是上图的电路图 假定图中不管是肖特基二极管还是PMOS管中寄生二极管,压降都为0.7V 假定VUSB为5V USB供电,VBAT为4.2V锂电池供电 假定选取的PMOS管Uth为-2V 1、usb供电 左边的圆圈,也就是G端电压为5V,右边圆圈S端经过肖特基二极 阅读全文
posted @ 2021-12-13 21:49 kingzhan 阅读(1745) 评论(0) 推荐(0) 编辑
摘要: HAL库手册上都有写 把一般会用到的,就那几个函数,上锁,解锁,擦除,读,写 uint32_t addr=0x08005000; 确定好读写的地址,注意是32位单片机,变量的类型选对 不同单片机有不同的Sector/Page/Bank等概念,这些概念涉及到一次性所能清除区域的大小 void FLAS 阅读全文
posted @ 2021-12-08 14:48 kingzhan 阅读(969) 评论(0) 推荐(0) 编辑
摘要: 先说说MDK编译好后的显示的。 上图第三行是烧写到FLASH的大小,第二行(可修改的数据)是占用SRAM的大小 1、stm32一开始上电的时候,按理来说是从0x0000 0000开始读取第一条指令的,但M3系列的不同,通过boot0,boot1上电状态的不同,进入不同的工作模式,取得第一条指令的地址 阅读全文
posted @ 2021-12-08 12:48 kingzhan 阅读(1311) 评论(0) 推荐(0) 编辑
摘要: 就是说检测到st公司的芯片,连接失败,但它确实给你烧了程序(虽然好像要你手动重启),所以可以忽略这个问题,但这个error有点烦,参考以下步骤去掉。 环境 单片机型号是CH32F103C8T6(不是官方的)IDE: Keil 5.35 解决方法 到相关pack的安装路径比如 E:\fold\arm 阅读全文
posted @ 2021-12-03 16:08 kingzhan 阅读(5737) 评论(0) 推荐(0) 编辑
摘要: 版本v2.14.0 我是先使用stm32cubemx生成代码文件后。 在用EIDE打开,编译。 可再次使用cubemx修改了,或添加了外设后,EIDE就会编译不成功 报类似于这种的错误。 一开始不懂,明明工作区里再修改cubemx后,就已经自动加入相应的文件了。怎么就检测不到呢 最后,才发现需要在这 阅读全文
posted @ 2021-12-02 14:18 kingzhan 阅读(913) 评论(0) 推荐(0) 编辑
摘要: vscode中安装这两个插件先 安装好后,右侧会出现这个图标,点击 一开始打开,左上角是空的(我是已经添加了项目) 点击右下角的配置工具链 右边弹出的窗口,第一个是配置C51的工具链,第二个是MDK的。我这里配置arm的,点击第二个 选择自己安装keil目录的地方,选择TOOLS.INI文件。 添加 阅读全文
posted @ 2021-12-02 11:05 kingzhan 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-12-01 10:08 kingzhan 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 钽电容和肖特基二极管,两种实物上色标代表的正负极不同 钽电容 钽电容,有色带的是正极 在pcb上的标记方法如上 上图中,画圈处,黄色的丝印一条线,就代表了pcb上哪一边应该放正极 电解电容 与钽电容相反,有色带的是负极 在pcb上,有色带或+号表示的是正极 二极管 通常有色点或有色环表示的是二极管的 阅读全文
posted @ 2021-11-29 23:09 kingzhan 阅读(1385) 评论(0) 推荐(0) 编辑
摘要: 上面一篇文章讲到在stm32cumx开启串口中断后,系统每接收一个字符就会进入中断一次 而使用HAL_UART_Receive_IT函数,可以设置我们进入回调函数的条件,这样我们就可以在回调函数里进行一大段字符的处理了 但有一个问题,HAL_UART_Receive_IT设置的接收字符数量是固定的, 阅读全文
posted @ 2021-11-29 11:20 kingzhan 阅读(932) 评论(0) 推荐(0) 编辑
摘要: 在stm32cumx中的设置如下 并开启中断 初始化 在主函数中,这个函数完成串口初始化 这个函数先是初始化,串口通信的配置。再接着进入这个函数 执行了这个函数 这个函数则是完成了串口通信底层,硬件上的一些初始化,配置了引脚,并开启了中断 使能串口通信?(设置进行回调函数的条件) 主函数中,上一个函 阅读全文
posted @ 2021-11-28 13:21 kingzhan 阅读(292) 评论(0) 推荐(0) 编辑