- 博客(23)
- 收藏
- 关注
原创 STM32 uart dma接收,环形buff,带缓冲
需要注意的是,环形dma接收在缓冲区满的时候,最后一包数据会被分成两半,一半在后面一半在前面(举例:buff大小为10,发了3包数据1234、abcd、ABCD,那么buff里面就是CD34abcdAB,ABCD这包数据被分成两半了),在串口数据处理中,一定是希望数据连在一起好操作,所以要解决这个问题,第一种方法就是令搞一个新的buff,每一次把数据拷贝进去,但是这也太捞了,而且要缓冲数据就要开好几个buff管理也复杂。原理:测试使用串口3,使用dma接收,启用环形模式,开启串口空闲中断。
2024-07-22 10:15:29
556
原创 N1刷openwrt
首先要刷入电视系统,目前我的盒子已经刷入YYFROM-N1-mod-dangbei-kodi.img电视的固件包,只需要把openwrt刻录到u盘里面,重启电视系统的时候选择线刷即可进入u盘引导,进入u盘里面的openwrt。这个时候已经变成openwrt系统了,但是要配置一下才可以,因为只有一个网口,默认是LAN口,要解除网口的占用,把网口配置成WAN口,(无线网络默认已经是LAN口了,不用处理)配置好后,才能通过这个网口连接主路由器使用。注意,要留一个无线网络,LAN口配置到无线网络上,然后点保存。
2024-05-31 20:35:18
823
原创 STM32F103 UART DMA接收任意长度数据
使用STM32CubeMX 配置初始化模板,勾选UART 发送接收 DMA ,以及中断,TX设置单次模式,RX设置循环接收(属于大于缓冲区大小,将会覆盖前面的)设置DMA接收缓冲 HAL_UART_Receive_DMA(&huart1, (uint8_t *)aRxBuffer, RXBUFFERSIZE);打开空闲中断 __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);生成的工程uart初始化增加 打开空闲中断 以及 设置DMA接收缓冲 代码。
2024-05-21 19:37:25
408
原创 QT一键打包脚本命令
复制 set PATH=D:\Qt\Qt5.12.9\5.12.9\mingw73_32\bin;正常是使用命令windeployqt ***.exe来实现,需要切换目录,太麻烦,所以自己用user_cmd.bat脚本文件,双击即可自动打包。新建文件夹,复制工程release目录下的****.exe,再把user_cmd.bat放进去,双击user_cmd.bat即可。打开D:\Qt\Qt5.12.9\5.12.9\mingw73_32\bin目录,找到qtenv2.bat ,右键编辑。
2024-04-01 22:58:14
234
原创 stm32软件闹钟
实现10个闹钟,需要mcu提供时间获取函数,1分钟定时检查调用,以及flash读写函数(用来掉电不丢失闹钟信息)。其实不是stm32啦,因为stm32流量高,这是一个通用的软件闹钟(软件实现的当然通用哈)。
2024-01-03 18:54:48
505
1
原创 STM32 打印LOG 以及 自定义printf
OLED_ShowStr(0, 0, 16, "当前温度%.2f度",tem);OLED_ShowStr(0, 0, 16, "模式为:%s",mode);//当mode= 制冷模式 的时候 显示屏上面显示 模式为:制冷模式。通过设置 #define DEBUG 为1还是0 来控制log的输出,__LINE__和__func__,输出当前行以及当前的函数名,初始化完毕前打印编译的时间。如: OLED_ShowStr(0, 0, 16, "abcd");
2023-04-06 20:53:32
1129
原创 STM32 U8g2 spi软件驱动,spi硬件驱动(优化u8g2的软件spi,速度翻好几倍)
STM32 U8g2 spi软件驱动,硬件spi驱动
2023-04-02 15:19:59
3438
7
原创 STM32 ADC按键
主控stm32f103vet6,使用adc1的通道0即A0口,实验目的,一个GPIO检测11个按键的多种状态,按下状态,按下释放状态,长按状态,长按释放状态,一直按状态,5种状态检测。原理图如上图,采用电阻分压,adc采集到的不同的电压值判断是哪一个按键按下。效果如图下图:0代表第一个按键,1代表按下 2代表按下释放,3代表长按,4代表按着不松开,5代表长按释放//第一次按下立马释放[21:45:07.441]收←◆adc_key: 0,1 //检测到按下[21:.
2022-05-03 22:46:42
2893
原创 STM32开发环境,官网下载,Keil与F1器件包
在百度里面搜索keil,打开keil的官网点击Products 点击Arm Cortex-M然后点击 Download MDK 然后点击MDK536.EXE开始下载(我之前填了信息,第一次要填信息)如图:(信息随便填)接下来下载器件包,返回主页,点Products再次来到这个界面还是点Arm Cortex-M接着点Public Software Packs下面找,找到STM开头的找到F1的器件包,点击下载开始下载先安装mdk536.exe再安装Keil.STM...
2022-05-02 22:11:16
1889
6
原创 定时器实现灯快慢闪烁
LEDFLAG = 1 对应红蓝快闪,300ms变化一次LEDFLAG = 2 对应蓝灯常量LEDFLAG = 3对应红蓝慢闪,600ms变化一次LEDFLAG = 4……#define LED1 GPIOA5#define LED2 GPIOA6#define LED3 GPIOA7uint8_t LEDFLAG = 0;//控制LED闪烁void userled_Init(void)//共阳接法{ GPIO_PortAModeSet(LED1, 0);...
2022-04-14 22:20:10
788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人