
单片机
Jacky_Lu
这个作者很懒,什么都没留下…
展开
-
stm32 普通io 模拟串口 RX PIN
stm32 串口 定时器原创 2022-04-08 17:24:50 · 1159 阅读 · 0 评论 -
ucos2下的按键扫描程序,低耦合
接口程序 AppKey.c,根据不同的应用电路 修改这个程序//#include "includes.h"#define KEYTOTAL 3#define KeyHoldTime (OS_TICKS_PER_SEC/2)#define KeyRepTime (OS_TICKS_PER_SEC/2)#define KeyLongBit 0 #define KeyRepBit 0//按键等待时间,有些按键要求的等待确认时间比较长INT16U KeyDownDelay[]={原创 2022-02-26 20:04:36 · 525 阅读 · 0 评论 -
stm32使用dma+pwm 输出正弦波
生成一个 10bit的 sin函数表 720项const INT32U sintab[]={0x0200,0x0204,0x0209,0x020d,0x0212,0x0216,0x021b,0x021f,0x0224,0x0228,0x022d,0x0231,0x0235,0x023a,0x023e,0x0243,0x0247,0x024c,0x0250,0x0254,0x0259,0x025d,0x0262,0x0266,0x026a,0x026f,0x0273,0x0277,0x027c,0x0原创 2021-08-05 13:35:46 · 4322 阅读 · 0 评论 -
STM32驱动无刷直流电机学习(2)
stm32 通过 IRS2101S 将驱动io 升压,再驱动N沟道MOS管IRF540NSN沟道MOS管是通过 高电平导通 低电平禁止的原创 2021-06-14 13:18:16 · 3398 阅读 · 6 评论 -
STM32驱动无刷直流电机学习(1)
1.先学习方波驱动无刷直流电机,带霍尔传感器,因为这个最简单sh原创 2021-06-06 23:30:28 · 4012 阅读 · 1 评论 -
stm32 使用 TIM3 输出脉冲 TIM2 进行脉冲计数
先上 定时器 和 io 的设置#include "includes.h"#define TMRNCLK (SYSCLK)/*---- S E T T I M 3 P W M O U T P U T ----【功能】:设置 tim3 使用 pc6 pc7 pc8 pc9输出,低电平有效, 当 tim3->cnt>= pwm占空比 就输出低电平【参数】:****【返回】:****【说明】:****--------------作者:卢杰西 2021年5月原创 2021-05-04 13:28:45 · 2671 阅读 · 0 评论 -
在STM32CubeMx生成的代码中加入 UCOS2 记录
1.注释掉 main.c里面的main.HAL_Init.HAL_InitTick(TICK_INT_PRIORITY);因为ucos 的定时节拍是在 任务里面启动的2.注释掉stm32f1xx_it.c 里面的PendSV_Handler函数,因为ucos的汇编里面已经写了这个中断3.将抢先级的bit 设为0 , 没有中断嵌套,HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0);4.注释掉stm32f1xx_it.c 里面的Sys...原创 2021-03-17 15:22:11 · 452 阅读 · 0 评论 -
Stm32通过串口 Ymodem 协议接收文件
我自己做了一个 针对stm32的isp 离线编程器,设计时候 采用了 W25Q64 作为要烧录文件的存储,直接使用 Ymodem 协议,将文件下载到 flash中,免得再写一个上位机软件,在ucos2的加持下,整个代码的逻辑比较简单易懂Ymodem 协议 参考https://www.cnblogs.com/dwj411024/p/7717084.html贴上我的代码头文件:#ifndef __Y_MODEM_H__#define __Y_MODEM_H__enu..原创 2020-12-01 17:19:06 · 2753 阅读 · 0 评论 -
从stm32移植ucos2的代码到GD32
stm32和gd32 基本通用的,所以os_cpu_c.c,cpu_a.asm,os_cpu_a.asm完全不用修改库函数名字有些不同在main 函数里面定义中断的优先级方法 nvic_priority_group_set(NVIC_PRIGROUP_PRE0_SUB4); //同等优先级在第一个启动的任务里面启动 系统定时器 SysTick_Config(SystemCoreClock / OS_TICKS_PER_SEC);将在stm32里面的的...原创 2020-05-27 15:18:44 · 2123 阅读 · 1 评论 -
stm32 利用 串口接收空闲中断 + dma 实现不定长度dma 接收
#include "includes.h"void UartDmaSend(INT8U *pt,INT8U len){ INT8U err; DmaSendData(DMA1_Channel7,pt,len); OSSemPend(OSSemDmaU2Tx,0,&err);}void UsbTask(void *pdata){ INT8U err,*pt,len; ...原创 2020-05-07 21:19:20 · 786 阅读 · 0 评论 -
STM8L 液晶数码管驱动,温度计液晶屏显示
启动液晶驱动 stm8 支持 4com 28 seg 可以显示 28*4=112点的液晶void LCD_Configuration(void){ /* Enable RTC CLK */ CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE); /* Choice CLK Source, HSI_Freq = 16M, RTC_...原创 2020-04-16 11:40:51 · 1153 阅读 · 0 评论 -
stm32使用spi1在slave 模式下 dma 读取数据
初始化 spi1 ,要外部 片选了 pa4 才能进行通信,pMem=OSMemGet(OSMemC2B,&err);是 ucos2 的函数,就是获得一片内存,可以直接指定一个数组 代替void InitSpi1DmaRec(void){ INT8U err,*pMem,*pTmp; SPI_InitTypeDef SPI_InitStructure; GPIO_InitT...原创 2020-04-15 17:03:30 · 2773 阅读 · 0 评论 -
stm32在linux端的串口下载程序代码
先打开文件并且初始化stm32的下载接口,其中InitStm32Isp 用来初始化下载接口int main (int argc, char *argv[]){ unsigned char *codebuf; int len,rst; FILE *fp; if(argc<2) { printf("no bin file\n"); return 1; } f...原创 2020-02-26 13:04:55 · 1053 阅读 · 0 评论 -
基于mfc的简单的串口助手,发送接收
#pragma once#include "Com.h"class CComDlgDlg : public CDialog{// 构造public: CComDlgDlg(CWnd* pParent = NULL); // 标准构造函数// 对话框数据 enum { IDD = IDD_COMDLG_DIALOG }; protected: ...原创 2019-07-14 11:30:44 · 711 阅读 · 0 评论 -
bin2hex
在单片机程序里面 有时候 要将 bin 转换为 hex 写下 mark 一下#include "stdio.h"typedef unsigned char BYTE;typedef unsigned long DWORD;int main(int argc, char* argv[]){ char *pt, buf[256] = ":", filename[256]; ...原创 2019-07-04 14:46:13 · 1040 阅读 · 0 评论 -
stm32驱动Tm1803 LED 控制芯片
因为 Tm1803 的驱动时间因为电平时间是微秒级别的 如果cpu用普通io来处理的话 必须要关闭中断,完全没有实际使用价值使用纯io操作,参考代码如下:void LedDly(INT8U dly){ while(dly) --dly;}#define LedTime 12#define SpiLedIO PerpheralBit(GPIOB-&...原创 2018-10-24 10:03:40 · 2787 阅读 · 4 评论 -
Stm32ISP 2
读出stm32芯片的唯一id 并写入 0x8000000地址中// JkIsp.cpp : Defines the entry point for the console application.//#include "stdafx.h"HANDLE m_hIDComDev; //串口句柄int OpenCom(){ DCB dcb = { 0 }; m_hIDComDe...原创 2018-02-24 15:47:34 · 325 阅读 · 0 评论 -
STM32 串口 ISP 记录 1
发送0x7F 读取 0x79 成功,证明stm32已经进入boot状态0x7F是用于stm32自我校正波特率的,然后它会回复 0x79 (就是ACK) (PS:0x1F 代表 NACK)本代码使用的COM2 偶校验#include "stdafx.h"int OpenCom(HANDLE *pCom){ HANDLE m_hIDComDev;//串口句柄 DCB dcb ...原创 2018-02-22 15:26:20 · 718 阅读 · 0 评论 -
监控窗体按键,发送相应的串口信息
项目需要 摇杆 控制机器,但是在家里调试 摇杆机构不方便,所以采用了 串口 加 电脑键盘按键 =单片机接收串口消息,生成摇杆信息监控窗体按键信息的代码如下,本来打算用keyup keydown 事件的,发现不行,必须重写 PreTranslateMessage 函数BOOL Ckey2comDlg::PreTranslateMessage(MSG* pMSG){原创 2017-12-11 10:10:01 · 427 阅读 · 0 评论