- 博客(24)
- 收藏
- 关注
原创 1mb的flash,4kb一页,每一页起始地址和结束地址对照表
标准输出:Page 1: Start = 0x00000000, End = 0x00000FFF。1mb的flash,4kb一页,每一页起始地址和结束地址对照表,方便查询。
2024-11-18 11:22:33
333
原创 c语言实现WGS-84、GCJ-02、BD-09互转
1,WGS-84: 原始GPS坐标系, Google Earth坐标系, 微软Bing地图坐标系, 国际通用标准.2,GCJ-02: 火星坐标系, 高德坐标系, 腾讯soso坐标系(国内), 谷歌坐标系(国内), 国测局坐标.3,BD-09: 百度地图坐标系.
2024-05-11 15:23:52
809
原创 usb做虚拟串口时与uart的一些不同
所以我猜测,是用的局部变量数组做为发送缓冲区,虽然调用了usb的发送函数,但很快啊还没等usb发送完,上一层函数执行完毕,出栈,局部变量数组的缓冲区被回收,usb此时还在发,但此时的缓冲区数据已经不可靠了,可能被另作他用了,所以出现只发了一半正常的内容后面的内容变乱码了。后面改用全局变量作为发送缓冲区,情况得以改善。
2024-04-25 10:40:17
278
原创 jflash给复旦微fm33单片机烧录程序
jflash默认支持的单片机列表里是找不到复旦微fm33单片机的,需要手动修改文件添加支持的单片机。3. JLinkDevices.xml文件替换到SEGGERJlink_V632H路径下,覆盖原文件。2. FMSH文件夹添加到SEGGER\JLink_V632H\Devices路径下。1. Segger版本为Jlink_V632H为例。
2024-03-16 14:34:45
1036
原创 极海apm32和stm32实际使用发现的区别
没有调用MX_IWDG_Init()函数初始化看门狗,在主循环内调用HAL_IWDG_Refresh(&hiwdg)喂狗,apm32不会出现问题代码能继续跑,但stm32会运行出错进入HardFault_Handler中断函数。apm32和stm32是pin2pin的,但是实际使用的时候发现独立看门狗的区别。
2024-01-24 09:34:15
1277
原创 关于单片机低功耗的一些处理
1.使用到串口的io引脚,进入休眠之前一定要复位,否则一个引脚会带来1.5mA的消耗,其他外设的引脚最好都复位。因为设备使用电池供电,所以对功耗要求很低,在休眠状态下,需要到达uA级别。2.4g模块,nb模块,该关电的关电,该进入休眠的进入休眠。
2023-12-28 11:09:25
680
原创 关于stm32的usb需要重新插拔电脑才能识别的问题
使用stm32的usb,每次烧录代码后都要重新插拔才能识别,usb两个引脚上电拉低了再延迟一段时间,还是识别不了,后面发现原来延迟时间太长了,延迟10ms就行,延迟100ms就不行了,这样每次上电,usb两个引脚拉低10ms的样子就能识别到了,不用重新插拔usb线了,唉😔,又吃了没文化的亏。
2023-12-28 10:50:45
1797
2
原创 关于 SC7A20 的相关驱动代码
SL_Sc7a20_Angle_Driver.c其中需要注意的地方:要改的地方就是SCL,SDA引脚的初始化,都配置为开漏输出,我这边用的复旦微芯片。SCL,SDA引脚做输出时配置为开漏输出。SDA引脚存在输入输出切换,在set_scI2cSDAIO函数中切换输出或者输入#include "SL_Sc7a20_Angle_Driver.h"#include <math.h>#include "main.h"// 7位地址 8位地址//PC9 i2c地址
2023-11-23 16:50:13
3505
5
原创 记录记录记录
typedef int8_t s8;typedef uint8_t u8;typedef int16_t s16;typedef uint16_t u16;typedef int32_t s32;typedef uint32_t u32;typedef int64_t s64;typedef uint64_t u64;
2023-11-11 09:50:23
72
原创 复旦微FM33LG048芯片使用(6)PH15引脚作为普通io使用
FL_VAO_GPIO_WritePH15Output(VAO, 1) //输出高。FL_VAO_GPIO_WritePH15Output(VAO, 0) //输出低。PH15引脚使用跟普通的引脚初始化是不一样的,被vao什么使用掉了,所以需要这样初始化。
2023-10-08 16:01:39
388
原创 【4g模块】移远ec200n-cn的AT指令使用
不知道从哪里拿了一块ec200n-cn的开发板。记录一下,使用这个4g模块的tcp透传的使用。
2023-09-25 10:33:33
2921
1
原创 CH448F的使用
例如:给SEL2低电平,给SEL1高电平,给SEL0低电平,再给XEN#低电平,此时内部A2X与AX相连。SEL0,SEL1,SEL2使用8421码决定A0X到A7X哪个与AX相连。的连接使能,低电平使能。
2023-09-04 17:10:44
664
原创 复旦微FM33LG048芯片使用(5)UART3数字外设的使用,引脚重映射
也就是remap为disable时,PB0, PB1作为SPI1_MISO和SPI1_MOSI引脚使用。remap为enable时,作为UART3_RX和UART3_TX引脚使用。其他引脚同理,disable作为数字功能1使用,enable作为数字功能2使用。也就是配置了数字外设,引脚的输出输入由使用的外设决定,不需要我们配置是输入还是输出了。配置为数字外设,什么是数字外设,根据文档里描述。uart3的引脚配置比较特殊,先要配置。在文档中GPIO章节有一张表,所以init应该是这样的。
2023-08-23 10:27:56
647
原创 复旦微FM33LG048芯片使用(4)UART串口的使用
最后在main文件的while循环里调用UART_RxProcessing()函数,串口收到一个字节的就发送回去。在mf_config.c文件写入一下函数,官方例程随便找一个工程就有这个文件。这里使用的是uart0在开发板的右上角位置即PA13,PA14引脚。因为jlink连了vcc和gnd,所以这个VCC和GND可以不连。记得在main文件调用MF_Config_Init()函数啊。这里用的usb转ttl模块。
2023-08-22 14:22:16
1065
原创 复旦微FM33LG048芯片使用(3)定时器ATIM使用
在main文件调用MF_Config_Init()函数配置定时器,我这边配置的是10ms进一次中断,后续跟串口一起使用,接收串口不定长的数据。最后,别忘了在main文件调用ATIM_Start()函数启动定时器。最后,别忘了在main文件调用ATIM_Start()函数启动定时器。创建atim.c文件,用于编写定时器中断处理函数。
2023-08-22 11:31:19
724
原创 复旦微FM33LG048芯片使用(2)外部晶振时钟配置
pll代码是从官方给的例程copy出来的,在main文件调用SelXTHFToPLL()函数就行,图里的其他函数都是例程里的。将pll.c和pll.h文件添加进工程。
2023-08-22 11:06:59
873
3
原创 复旦微FM33LG048芯片使用(1)程序下载和点灯
mian文件调用这个函数,再使用FL_GPIO_ResetOutputPin(GPIOC, FL_GPIO_PIN_1);拉低引脚,就完成点灯。实物连接:(烧录程序只需要连jlink的线,其他的线是串口、led可以先不管)用的jlink的swd调试,首先接线。根据原理图写一个引脚初始化函数。点Settings进去看看。
2023-08-22 10:47:51
1227
2
MKS-SERVO42A-master,包含代码和硬件原理图
2023-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人