- 博客(18)
- 收藏
- 关注
原创 C语言将三个字节大小的数组转换为int型
其中,数组中1-9字节分别代表XYZ轴的角速度,高字节在前,低字节在后,在数据处理的时候,需要将数据转换为int型。定义一个数组arr[15]
2024-09-25 17:16:09
226
原创 STM32H743串口1-8初始化,但是串口6接收无效的问题
基于正点原子的例程,将串口1-8进行初始化,但是发现串口6的接收无效。发现IO初始化只要有GPIOC的引脚,串口6的接收就会出现问题。更换串口6的引脚为PG14和PG9,仍然没有解决问题。改为使用GPIOG,串口6正常使用,收发正常。发现串口6居然可以正常工作了!具体原因作者由于水平有限,未能定位……考虑到是否是作者工程中其他程序的影响。没发现使用上和初始化上的问题。引脚配置为PC6和PC7。将其他的IO初始化屏蔽。
2024-09-14 09:29:58
616
原创 STM32H743 串口发送使用奇校验的时候,接收出现和期望不一致的问题
在实际使用中,发现某些单机在通信协议上采用奇校验,这样在串口的设置中,需要把默认的没有校验的方式UART_PARITY_NONE更改为使用奇校验UART_PARITY_ODD,但是发现发送的内容和所期望的内容不一致。排除了硬件接线的问题之后,最终发现,加上奇校验,那么数据就不再是8bit而是9bit。再进行数据发送,发现问题解决!这样需要再初始化的时候更改字长。
2024-08-01 19:57:58
287
原创 STM32H743串口1-8初始化和使用DMA数据传输
按照正点原子例程,STM32H743能够使用的串口有9个,8个普通串口和1个低功耗串口,在这里作者只对串口1-8进行研究。串口1和串口6的时钟势=使能在APB2ENR寄存器,其他串口的时钟使能都是在APB1ENR寄存器。这样就可以使用DMA进行串口数据的发送了,注意映射关系!首先是串口1-8的初始化,串口1的初始化。
2024-05-15 23:36:00
526
原创 STM32H743使用串口收发数据的时候出现Hardfault问题
使用正点原子的STM32H743开发板使用串口1进行串口通信的时候,出现接收两次之后就进入Hardfault的问题。由于某个单机使用的是RS422通信,使用了一个TTL转RS422模块。接入某某单机之后,出现这种情况。最终修改串口1的中断服务程序,void USART1_IRQHandler(void) 收发正常。之前作者用串口1进行过一些单机的通信比如memes陀螺等,都没有出现这种情况。根据网上的攻略,进行了相关的修改。
2024-05-07 16:23:35
1077
原创 STM32H743看门狗的使用
参考正点原子的例程,稍作改动,实现功能为:初始点亮红灯,按下key_up之后,点亮绿灯,同时复位。实际使用的过程中key_up可以更换为特定的判断条件,也不需要实际的亮灯操作。
2024-05-02 09:12:43
333
1
原创 求解观测点对任意恒星的指向
备注:作者所写出的指向公式是粗略的,精确度是不满足精确的天文观测需求的,比如你的拍星相机只有正负0.1度的视场,这样可能不能保证恒星进入拍星相机的视场。获取系统时间之后,再结合恒星的赤经赤纬、观测点的地理纬度、太阳赤经,求解任意恒星相对观测点的方位角度和俯仰角度。首先是系统时间的获取,这里面就用电脑的时间。
2024-05-01 15:36:22
84
1
原创 STM32H743在UDP通信连接时无法建立第六个UDP通信链路的问题
按照正点原子的网络通信的例程,建立第6个UDP通信之后,发现前5个UDP通信链路没有问题,可以正常的收发,但是第6个UDP通信链路,无法正常的收发。发现MEMP_NUM_UDP_PCB的默认值已经是6了,那就是说明建立6个UDP通信链路应该是没有问题的。通过网上查找相关的解决措施,更改MEMP_NUM_UDP_PCB的默认数量。最终更改为7之后,第6个UDP通信链路没有问题。
2024-04-24 09:40:47
254
原创 STM32H743建立UDP通信,断电之后需要再次插拔网线才能重新建立UDP连接的问题解决办法
作者按照正点原子的网络通信的例程对UDP的收发进行了更改,发现UDP通信可用,但是在下电重新上电之后,网口虽然闪烁,但是最终无法建立有效的UDP通信连接。最终通过研究发现应该是使用了DHCP的问题,在LWIP初始化的时候,关掉DHCP就可以了,亲测可用。最终将LWIP_DHCP的默认值从1更改为0。打开lan_8720_init函数。打开lwip初始化函数。
2024-04-24 09:32:50
462
原创 STM32H743建立UDP通信,上电后需要复位才能恢复通信的问题解决办法
作者最近在学习正点原子的STM32H743的网络通信例程,按照自己的理解,更改完UDP发送和接收函数之后,发现能够建立UDP通信连接,正在窃喜之中,突然发现一个问题---就是每次开发板下电之后,再重新上电,UDP居然不通了,网口也不再闪烁,在网上查找对应的攻略,说是上电之后没有复位的关系,参考这片博文。最终问题得以解决,每次上电之后不需要再进行手动复位。于是在初始化的部分,增加了一个10s的延时。
2024-04-24 09:25:46
437
原创 Freertos运行期间,如何保证某个函数被固定周期调用呢
作者最近在学习正点原子的基于STM32H743的FreeRtos例程,在学习的过程中有个疑问,Freertos是如何保证某个函数被固定周期调用,比如每100ms就要运行一次某个函数,上下周期波动很小,貌似的例程中并没有对固定周期的调用进行介绍。是如何保证任务2每100ms运行一次呢,假设任务2在100ms以内肯定能运行完成,但是好像还是会受其他任务函数的影响,仅仅通过调整优先级就能保证运行周期吗,这个作者不太理解,希望有大神能够帮忙解析一下。首先是函数优先级的设定等,这个是没有疑问的。
2024-04-20 21:44:16
185
原创 读取视频,将视频中的每一帧存图-MATLAB
读取所有帧将其存为图像的时候,需要注意避免图片量过大,可以选取某些需要的帧图像进行保存。处理比较简单,没啥解释的。
2024-04-20 20:44:52
325
2
原创 激光通信标校中可见光相机图像中光斑质心的提取-MATLAB
在恒星指向的过程中,恒星在可见光相机的视场中,可以基本认为是静止不动的,通过光斑质心和图像中心的偏差,可以得到地面站指向的方位俯仰偏差和地面站方位角度和俯仰角度之间的关系;想要完成图片的批量处理,首要的事情就是找到图片的位置,作者将图片都存在D盘的某个文件夹中,图片加载程序如下:处理文件夹下所有的.bmp类型的图片文件。在激光通信的标校中,一般使用星敏或者恒星进行标校地面站坐标系和大地坐标系(北东地或者东北天坐标系)之间的对应关系;
2024-04-20 20:40:35
487
原创 计算观测点对太阳指向的方位角度和俯仰角度
然后是时间的获取,这里面有两种方式,一个是通过matlab自动获取目前的系统时间,一个是如果有外接的时统端机,可以通过时统端机不断地获取最新时间,时间点是从2000/1/1 0:00:00.000开始的UTC时间秒。在计算观测点对太阳的指向时,网上相关的公式五花八门,在百度的过程中,我发现很多都是错误的,经过多番的验证,最终参考了两位大佬的博客,也对程序做了一下改动。验证阶段,作者使用的是orbitron软件,平时使用这个软件计算对卫星指向,特别实用,强烈推荐!观测点对太阳指向的方位和俯仰。
2024-04-12 12:12:36
802
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人