- 博客(424)
- 资源 (10)
- 收藏
- 关注
原创 STC串口发送卡住,卡在while(!TI)
代码有时会卡在while(!TI)处,导致看门狗超时单片机重启。TI”前进了串口中断,TI清零了,然后再判断“!TI”,导致为真,卡在#1处,进而看门狗超时单片机重启。
2024-07-09 16:10:19
188
原创 浅谈GD32关中断时间对串口接收的影响
一般串口接收到2个字节就会溢出错误。编写代码时需注意关中断时间,不能过长,如果大于1~2字节串口接收的时间,会导致串口接收溢出,该条帧命令就会接收不全。3)串口使用FIFO功能,这样接收多个字节也不会溢出错误,直到FIFO满才会溢出错误。1)设法缩短最长关中断时间,满足关断时间小于1个字节串口接收时间。
2024-06-26 11:58:42
118
原创 RJ45 PCB布线
RJ45底盘接地和数字地通过一个1M欧姆的电阻和一个0.1uF的去耦电容隔离。其底盘接地和数字地的间距,必须比60mil宽。如图11及图12所示。图12 典型RJ45和变压器分开的机箱/数字地平面https://www.bilibili.com/read/cv6448110/图11 典型变压器集成单RJ45的机箱/数字地平面。
2024-06-09 20:59:44
275
原创 添加Microsoft.VisualStudio.TestTools.UnitTesting命名空间
Microsoft.VisualStudio.TestTools.UnitTesting 命名空间。创建“单元测试项目”,则自动添加。
2024-06-09 17:11:47
192
原创 HAL_UART_IRQHandler(UART_HandleTypeDef *huart)分析
/接收有错误:执行UART_Receive_IT(huart)、HAL_UART_ErrorCallback(huart)//HAL_UART_Receive_IT(&huart1,Tx_Buff,1);//#1 接收没错误、#2 接收有错误,接收数据量达到设定值会自动关闭接收中断。//接收没错误:执行UART_Receive_IT(huart)//#3 接收有错误回调。
2024-06-04 17:54:48
490
原创 taskENTER_CRITICAL()分析
taskENTER_CRITICAL_FROM_ISR()和 taskEXIT_CRITICAL_FROM_ISR()中断级别临 界 段 代 码 保 护 , 是 用 在 中 断 服 务 程 序 中 的 , 而 且 这 个 中 断 的 优 先 级 一 定 要 低 于configMAX_SYSCALL_INTERRUPT_PRIORITY!举例,中断优先级为7的uart接收中断,可以使用taskENTER_CRITICAL_FROM_ISR()和 taskEXIT_CRITICAL_FROM_ISR()。
2024-05-31 14:20:43
585
原创 PIC18F87K22使用代码生成器生成10KHz占空比30%PWM
PWM,平时低电平,频率10KHz(周期100us), 占空比30%(即高电平30us)
2024-05-16 16:32:32
195
原创 GD32F307+lwip+freeRTOS+DP83848 JPerf接收测速
2)init_task中添加测速线程iperf_server_init()1)注释掉tcp_client_init();教材优化后可以到94M。教材优化后可以到71M。
2024-05-16 16:06:35
328
原创 C51 内存分布分析
是一个OVERALY GROUPS(覆盖组)。它是链接器产生的可覆盖的一个数据段。2)PAD.c中变量需用idata修饰。1)F1.c中变量不能大于9个。
2024-04-28 14:39:14
179
原创 C51:ERROR L107 ADDRESS SPACE OVERFLOW内存超出编译不过
加上F1.c 中9个变量超出了128(SPACE:DATA 显示超过了128)
2024-04-12 15:26:50
766
原创 LCEDA原理图DRC检查时提示,网络标签 +5V 没有连接导线或总线
点中这个报错,然后把鼠标移到原理图的任意位置,按DELETE键删除,再重新DRC检查就没有了。
2024-03-23 22:09:21
1202
1
原创 RT-Thread 27. UART设备
MSH命令输入:uart_data_sample,开启线程执行。输入一段字符串,以’\r’ (0x0D)结尾,回显输入的字符串。//增加GPIOE的存储位置,不然GPIOF会出错。这里实现uart0的485通信。//增加tx_af,rx_af。
2024-01-31 10:43:16
416
原创 RT-Thread 25. 信号-按键发送
如果线程要处理某一信号,那么就要在线程中安装该信号。安装信号主要用来确定信号值及线程针对 该信号值的动作之间的映射关系,即线程将要处理哪个信号,该信号被传递给线程时,将执行何种操作。
2024-01-26 09:35:52
392
原创 RT-Thread 23. 队列中消息大小及数量
消息池有32字节,每隔消息大小为4字节,消息池能放4个消息。查看rt_mq_init()源码。可以看出,实际的消息大小和消息数量需特别注意是否符合任务需求。
2024-01-25 14:39:31
555
原创 RT-Thread 19. 互斥量避免优先级反转
优先级,t21>t22>t23。t23先先持有互斥量,t21试图持有互斥量(#0),此时线程 3 的优 先级被提升为和线程 2 的优先级相同。通过线程t22打印出优先级提升后的,见#1,#2。t23的优先级提升到t21相同。这样中间优先级的t22执行时间不会影响t21的执行。
2024-01-23 16:22:28
374
原创 RT-Thread 17. 中断发送信号量后线程去处理信号量
按键一次,rt_sem_release(&keyPress1_sem);执行一次信号量值value加1。按键可以很快,但rt_thread3_entry()执行以下需要1s多。即生产过快,消耗过慢。
2024-01-22 11:19:20
500
原创 RT-Thread 15. list_timer与软定时器
timer_static_sample()会执行,timer1和timer2会开始工作。输入list_timer,发现多了timer1、timer2。0x0000012c: 300个时钟周期,即处于rt_thread_mdelay(3000);0x00000032: 50个时钟周期,即处于rt_thread_mdelay(500);
2024-01-17 10:40:30
888
原创 RT-Thread 14. GD32F330 Keil4移植RT-Thread
主要修改Usr(App)、rt-thread_bsp_board(BSP)文件,但rtconfig.h使用ENV菜单方式menuconfig命令修改后保存自动得到。rt-thread_components_board:bsp\gd32f330_v1\drivers文件夹,板级BSP。rt-thread_components_driver:components\drivers文件夹。rt-thread_libcpu:\libcpu文件夹,rt-thread内核源码。CMSIS:硬件层,启动文件、系统文件。
2024-01-04 18:00:41
563
原创 RT-Thread 13. menuconfig 中的选项从哪里来
RT-Thread 系统通过 menuconfig 的方式进行配置,而 menuconfig 中的选项是由 Kconfig 文件决定的,因此想要对 RT-Thread 系统进行配置,需要对 kconfig 语法有一定了解。//GD32系列BSP制作教程.md。
2024-01-03 09:33:47
417
原创 RT-Thread 12. BSP根目录下SConscript分析
(1)menuconfig 命令通过读取工程的各个Kconfig 文件,生成配置界面供用户配置内核,最后所有配置相关的宏定义都会自动保存到 BSP 目录里的rtconfig.h 文件中,每一个 BSP 都有一个 rtconfig.h 文件,也就是这个 BSP 的配置信息。(2)SCons 使用 SConscript 和 SConstruct 文件来组织源码结构,通常来说一个项目只有一 SConstruct,但是会有多个 SConscript。
2023-11-09 14:27:30
455
ServiceTest(Android创建服务实例图文实测)
2020-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人