- 博客(39)
- 收藏
- 关注
原创 TCP协议
/对于一个十进制数8080 它对应十六进制数为1F 90。//大端存储 1F 90。//小端存储 90 1F。按照流程一步一步来编写。
2024-09-20 13:24:51 412
原创 PCB绘制
这三个孔的本质都是用来换层的,是它本来走线走不下去了需要解决走线问题才打孔。盲孔:起点永远是第一层(或最后一层),终点肯定不是最后一层(或第一层)埋空:起点和终点肯定不是最后一层和第一层。通孔:起点和终点肯定是最后一层和第一层。
2024-09-13 01:28:15 192
原创 c/c++面试100道
疑问:C++中struct和class的区别有一点特殊的是,当class定义时,如果没有string name这种复杂的定义则其他简单定义就不会初始化。
2024-09-08 16:00:27 1684
原创 C++学习
总结一下可以用迭代器的:vector,set,map,unordered_map,unordered_set。P16 unordered_map和unordered_set:两个无序(顺序是乱的)的键值对和集合。这里isalnum()因为是返回的bool类型所以返回的值是不确定的只能为0或非0。注意:auto的定义一定要初始化,它是根据你后面输入值的类型来判断的。因为栈只能操作栈顶元素,所以是没法用迭代器获取所有值的。不可以用迭代器的:stack,queue。P19 sort(排序功能)
2024-09-07 20:16:02 315
原创 正点原子无人机浅析
在定义这个队列的句柄的时候不要把它暴露不出去,让rxQueue和txQueue两个句柄在自己对应的函数实现并调用;为了满足别的文件有需要(调用从队列得到相应变量或者通过队列发送相应变量),我们可封装一个函数,在函数里执行,不会把rxQueue和txQueue暴露给应用层,应用层只管调用API就行了。这里引入韦东山讲的队列集思路,我们还可以用函数封装队列句柄(return 句柄),这样也能满足你需要在别的文件调用时可以使用别的文件的句柄,这样我们就可以在别的文件使用队列集(因为需要使用队列的句柄)
2024-09-05 18:54:23 272
原创 函数指针学习
int data;} Node;标签(modemode是结构体的标签名。在这种定义中,mode是结构体类型的名称,但Node是通过typedef创建的别名。好处标签的存在: 标签mode使得你可以在结构体类型的定义中引用自身(对于自引用结构体类型)。如果结构体内部有指向自身的指针时(如链表中的next指针),标签是必要的。自引用: 如果你需要在结构体中使用指向相同类型的指针(例如链表中的next和pre),标签是必须的。int data;// 不能在此处使用指向自身的指针,因为没有标签。
2024-09-04 14:03:31 755
原创 git仓库使用
如果要使用请务必把文件复制到别的空间去再在这个别的空间更改文件和程序。使用 git clone命令把后面连接的地址的文件拉取到本地。从那个最原始的地方拉取(从gitbub更新文件到本地)电脑左下角搜索git打开GitBash.exe。因为你在本地目录更改文件会使文件无法更新。git是用于管理github的工具。git仓库是会限制空间大小限制的。下载到本地的文件不要更改!进入到要下载到本地的目录。
2024-05-14 00:10:39 207
原创 智能空气净化器+智能投喂系统(毕设代做)
代码本身是没有问题的,所以有的时候如果卡住了,可以尝试换一换心情,用(led调试的方法来检查是不是程序卡住了,程序卡在了哪里)。,只需要在IIC_Wait_Ack()的函数前加上static就行了,但是函数就只能在被定义的文件内使用了。因为tof.c和oled.c两个文件中都各自定义了自己的IIC的函数(屎山代码),所以出现了重定义。在调试蓝牙的时候还是遇到了电压或单片机自身的问题(可以用led亮与不亮的方法来调试),关于一些蓝牙的封装的库,可以在雷老师发的esp8266的项目的bsp里找到。
2024-04-28 22:38:01 296
原创 DMA串口收发+esp8266
在进行DMA初始化的时候要设置 优先级,避免同时使用DMA。可以通过DMA的发送和阿里云内容的读取实现数据接收的监视。同时uart 中断的优先级也要设置。
2024-04-28 22:37:46 287
原创 can通信
帧间隔:分割主动发送帧和其他帧,以方便插入错误帧和过载帧实现链路的健壮性,就是可以探知到有什么错误或者哪里比较忙便于处理和调试。不同颜色代表了更改了的,绿色代表了新增的一些标志位,黄色代表了他的功能还是和原先的标志位一样,但是内容不一样。补充一点:can总线上如果一点数据都没有,它的状态就是隐形电平,两根线的电平都是2.5V。使用接收的ID和filter、掩码做一个比配,比配则接收处理,不匹配则不接收处理。can采用的CRC校验的方式实现了对数据的误码校验。仲裁段:ID:同时用于仲裁,ID大的优先级低 ,
2024-04-28 17:56:38 446
原创 stm32f103外设学习
有两种退出待机(待机唤醒)方式1,RTC_Alarm闹钟时间2,WKUPpin唤醒引脚。有三个时钟,我们选择LSE时钟(前两个时钟是受VDD影响的,而且LSI不稳定有温漂)在有Vbat(纽扣电池CR1220)的情况下,Vdd掉电RTC仍然正常工作。
2024-04-25 20:18:05 146
原创 stm32仿真
我在设置Debug时没法识别到单片机,可以把boot0置1摁一下复位就可以识别了,后面也不需要再调boot就可以下程序了。JTAG仿真接口冲突PB3 PB4 PA15 PA13 PA14。仿真时的复用引脚不要使用(直留出来)SW 仿真接口冲突PA13 PA14。
2024-03-28 18:27:38 210
原创 CubeIDE入门使用
因为默认设置为PA11和PA12端口,但硬件使用的是PA8和PA9, 所以需要再在端口视图中改写端口。对于外设(PWM类似)的使用可以直接选择左侧的外设,而端口视图中会自动设置gpio端口。对于JTAG调试接口可以设置为2,3,5线式 节省端口。在其他外设的设置时硬件或引脚冲突原理相同。对应用场合有严格的要求,不熟悉最好别用。将时钟设置位最大性能。PC13端口很特殊,
2024-03-22 18:44:10 211
原创 上拉电阻和下拉电阻
驱动能力:(和寄生电容和R1组成的 时间常数 RC有关)就是下图3的爬升时间,肯定是爬升时间越短越好,这样才可以满足时序(如I2C和SPI等)的要求,驱动能力弱了也可能导致PWM波形和I2C波形的失真。对于单片机来说其实下拉电阻类似与上拉电阻,只是R1接地而已,确定了浮空状态时输出为低电平。当单片机引脚在开漏输出时,有两种状态 ,而mos关闭时输出是不确定的,这并不好。漏电流:是指mos打开时电流白白浪费掉的,而且会产生热量。而加上拉电阻后,mos关闭的状态时引脚的电平就确定了。
2024-03-22 18:14:31 246
原创 stm32c8t6 + esp8266
再写DHT11的时候卡住了,卡了很久才解决我总结了:1.单片机板子坏了一定要及时换,平时要准备备份。2,单总线协议不稳定,使用时对时序的要求很严苛,所以一定要使用精准的定时比如SysTick计时,不然很有可能会无法使用,之前我是用的tim2做的粗略定时(下图)就没法用单总线。ESP8266的三种模式AP模式:相当于路由器,作为无线热点,可以连上。这个模式下可以设置三个子模式,TCP服务器,TCP客户端,UDP。手机或电脑可以直接和模块连接形成局域网。
2024-03-22 17:13:23 1438
原创 FreeRTOS学习 韦东山
stm32中RAM地址是从0x2000 0000开始的,Flash地址是从0x8000 0000开始的。所以stm32的flash本质时rom,在系统初始化时会把flash中的一些值放入ram中。cpu:用来运行程序 Flash:用来保存程序 内存:?一、对于单片机,他被称为SOC(System On Chip)ram就充当内存,再配合flash和cpu完成程序运行。数据传输的三大要素:源,目的,长度。memcpy(源,目的,长度)cpu在运行程序时要访问内存。所有的计算都在cpu中执行的。
2024-01-21 23:07:27 896
原创 stm32指纹识别
/GPIO端口模式设置 普通输出模式。//普通推挽输出,输出电平为3.3V。调试时出现这个问题是因为没有取消断点。//3、引脚状态初始化。
2023-12-04 20:29:47 49
原创 蓝牙信号探测项目
1,stm32最小系统板无法用usb转ttl的方式给系统供电,这会让单片机供电不足使部分功能无法使用,最好是用一个单独的电源供电。2,对于频率的采样,我们只需要采样率至少大于2倍波的频率,至少要采到两个点,但精度还是太低了。如果要精确一点至少要20个点,若要显示出来并还原波形大概要100个点。3,之前想错了,对于低频信号比如10HZ的信号,你只要有200hz的采样频率就可以采到较为精确的信号,不需要降低采样频率,反而采样频率越高,波形还原越准确。
2023-12-01 21:24:28 938 1
原创 10月29号
在实际项目开发时因为我们需要直接把模块初始化,所以在开发时直接通过串口把我们需要的模块直接初始化。stm32f103c8t6核心板自身并不带有usb转ttl,若要用ttl的方式下载程序需要用usb转ttl。一般来说我们在用蓝牙模块时需要使用usb转ttl来通过电脑给蓝牙模块进行配置,电脑也有相应的串口软件。不过普中开发板上自带有usb转ttl,所以我们可以用普中的串口来初始化蓝牙模块。也可以用SWD模式下载程序,但因为我需要下的比较多,所以我也就没用了。下载程序时用0 1模式。运行程序时用0 0模式。
2023-10-31 16:37:07 93 1
原创 9月28号无人机
2,之所以出现pcb的封装问题应该是因为这个原理图和pcb是在别的软件上画好的,所以他的封装会出现无法识别。1,关于无人机的材料问题,我把主机和遥控器分别导出与其BOM文件,得到两份材料清单,后续需要把材料买齐。无人机和遥控器的pcb我看了应该是没有问题的,按原样焊接出来应该是没有问题的。3,我也尝试了画原理图和pcb,感觉还是不太适合我,还是能走软件就走软件。尽量往arm,单片机,软件,Linux方面靠。
2023-10-08 17:18:15 44 1
原创 CH32、MounRiver Studio学习
计算B_SPEED_MAX-PID是否为正数;重点:判断B_SPEED_MAX-PID的整负而不是loction。不能用100*(C_liner+C_linel-c_start-c_end)/(c_end-c_start);1,MounRiver Studio编译问题。3,计算ccd loction的值的问题。bug为项目的移植出现路径错误。2000为电机动与不动的临界值。2,flash的存储。
2023-09-22 16:54:12 62 1
原创 韦东山Linux驱动学习
一,卫东山linux快速入门 3 13-2 Buildroot编译整套系统(主要是文件的下载,涉及知识不多,为下节课铺垫)用STM32CubeProgrammer软件进行文件系统的覆盖。1,让stm32进入串口模式(off off off)后重启单片机。卫东山linux快速入门 3 14-2烧写系统。这里下载文件出现了问题暂时无法解决。
2023-09-03 18:51:48 33
原创 菜鸟驿站经典100题学习
解决方案:因为stu为char型的字符串变量,所以不用加地址。问题:为什么结构体的scanf中不加地址?1,菜鸟驿站的第71题。
2023-08-27 13:07:42 31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人