- 博客(43)
- 收藏
- 关注
原创 pycharm python pyqt5
dict_str = str(self.Com_Dict[self.s1__box_2.currentText()]) # 获取串口信息转换字符串。Vout_TempEdit_set = int(self.lineEdit_TempEdit_set.text()) # 设置输出温度校正。Vout_Temp_set = int(self.lineEdit_Temp_set.text()) # 设置输出温度。# self.data_text_clear() # 调用清理函数。
2025-01-16 15:46:46
1061
原创 上位机通讯 结构体发送和解析
所以只需要在includes中加末尾#pragmapack(),注意协议双方都需要取消字节对齐。#pragmapack()//取消结构体对齐。//按1字节进行对齐即:不行进行对齐。
2025-01-14 18:47:06
169
原创 替代开方运算sqrt
{ //整数开方 >牛顿叠代 POW(N,2)==M N=M^0.5;8位mcu 开方 math.h 容易超空间;{ //sqrtf ROM空间不够!
2025-01-02 16:09:40
305
原创 rtx cpu使用率
/0~100for (;;) {you may////#endif#endif#endif#endif#endif#endif#endif#endif// #endif//#endif。
2024-08-26 21:21:57
566
原创 arm利用systick 微妙精确us延时
if(nus<0x55555555) //nus<0x5555 5555 0xFFFFFFFF/3 14.3亿。// SYSTICK是一个递减的计数器。//时间超过/等于要延迟的时间,则退出.// delay_osSchedLock();// 阻止OS调度,防止打断us延时。// 刚进入时的计数器值。* 形 参: x,延时时间,不精确。
2024-08-26 17:33:54
434
原创 51内核多线程,os任务调度
define OS_TASK_STACK_SIZE (2+13+2*3)//存放断点2B,中断函数可能压栈13B,子程序每嵌套一层2B。//os_delay()结束后跳转os_idle()if(os_task[i].delay==0)//如果有任务延时时间到,则跳转至相应任务。#define data //c51栈要放在dataq区~data/idada/pdata/xdata。//私有堆栈指针指向私有堆栈。
2024-08-19 15:03:10
541
原创 pwm 输出
/att // 时钟频率:Ftime3 = 48M/(time_divide + 1)/PWM_PERIOD = 48M/(47+1) = 1000khz。//att // 时钟频率:Ftime3 = 48M/(time_divide + 1)/PWM_PERIOD = 48M/(95+1) = 500。//att // 时钟频率:Ftime3 = 48M/(time_divide + 1)/PWM_PERIOD = 48M/(1+1) = 24000khz。//att //PWM周期 = 4ms。
2024-04-02 15:18:15
445
2
原创 * JLink Info: T-bit of XPSR is 0 but should be 1. Changed to 1.
* JLink Info: T-bit of XPSR is 0 but should be 1. Changed to 1.
2024-03-12 14:10:56
478
原创 DMA SPI/EXMC 刷屏
dma_flag_get(DMA0,DMA_CH1, DMA_FLAG_FTF) ) //卡死?while(len>0)//len%50000)//分包 //bug?
2024-01-11 13:38:11
596
原创 gd32 EXMC 初始化
void exmc_lcd_init(void){ exmc_norsram_parameter_struct lcd_init_struct; exmc_norsram_timing_parameter_struct lcd_timing_init_struct; /* EXMC clock enable */ rcu_periph_clock_enable(RCU_EXMC); /* GPIO clock enable */ rcu_periph_clock
2023-12-27 18:32:44
742
原创 gd32 exmc 连接 mcu 8080TFT 驱动(8pin/16pin)ST7789,40帧每秒240*320;
define LCD_WR_DATA(value) ((*(__IO uint16_t*)(BANK0_LCD_D)) = ((uint16_t)(value))) //写数据寄存器 16根数据线。#define LCD_WR_DATA(value) ((*(__IO uint8_t*)(BANK0_LCD_D)) = ((uint8_t)(value))) //写数据寄存器 8根数据线。
2023-12-27 18:30:31
1884
原创 lcd或数码管 显示浮点数 3.1415926
uint8_t floar2Str(float fnum,uint8_t floatNum,uint8_t *out,uint8_t out_len)//浮点转字符串。浮点数字符串 sprintf(buffer,"%-10.5f",fnum);out_len: 输出字符串buffer长度。*out : 输出字符串buffer。floatNum: 要显示的小数点数量。入口数据:fnum:浮点数。
2023-12-26 16:37:04
765
原创 keil5(MDK)黑色背景色风格
1、常规的改法:在MDK菜单栏中选择 编辑->配置->Color & Fonts,如下界面:可以在以上界面配置对应的选项更改代码编辑区数字(number)、关键字(keyword)、字符串(string)等的颜色。最终设置的结果会保存在MDK的安装位置的UV4文件夹下名为global.prop的文件中。2、如果想省事,可以直接找现成的配置文件来直接替换C:\Keil_v5\UV4\global.prop文件夹下的global.prop文件,可以用记事本打开该文件,复制下面我的
2023-12-22 11:00:03
5000
1
原创 低功耗RTC 定时器唤醒stop模式,
/仅保留秒秒闹钟, RTC_AlarmMask_Seconds=RTC_AlarmMask_All-(RTC_AlarmMask_Minutes+RTC_AlarmMask_Hours+RTC_AlarmMask_DateWeekDay)////1秒后唤醒 RTC_IRQHandler~RTC_TimeStruct.RTC_Seconds = 0;
2023-11-29 10:50:09
1225
原创 jlink RTT 替代串口及JLINK_SCOPE示波器详细使用教程
项目中使用printf的地方非常多,如果可以直接修改printf重定向到RTT组件,则会非常方便。
2023-11-17 17:08:01
701
原创 背景护眼设置RGB()
护眼色的rgb值需要根据使用环境选择,因为护眼色有绿豆沙、银河白、杏仁黄、秋叶褐、胭脂红、海天蓝、葛巾紫、极光灰、青草绿等色彩,常用护眼色为绿豆沙,具体RGB值为199, 237, 204。1、绿豆沙RGB值(199, 237, 204)2、银河白RGB值(255, 255, 255)4、秋叶褐RGB值(255, 242, 226)6、海天蓝RGB值(220, 226, 241)8、极光灰RGB值(234, 234, 239)9、青草绿RGB值(227, 237, 205)
2023-11-08 09:56:55
3384
原创 断码led驱动
7个最多点亮42个,8pin对应56led,9pin~72个灯;//当 I/O 从输出转换为输入时,要等待几个指令周期的时间,以便 I/O 口状态稳定。K1,K2,K3,K4,K5,K6,NC,//其他指示比如充电符号,功能挡位。A1,B1,C1,D1,E1,F1,G1,//数码管1。A2,B2,C2,D2,E2,F2,G2,//数码管2。A3,B3,C3,D3,E3,F3,G3,//数码管3。A4,B4,C4,D4,E4,F4,G4,//数码管4。G1,G2,G3,G4,G5,G6,NC,//电池电量。
2023-11-06 09:32:23
150
原创 USB serialport 热插拔;
string getPullOutSerialPort(string[] portNames, string[] portNameNew) { int i = 0; //string[] portNameNew = SerialPort.GetPortNames(); //if (portNames.Equals(portNameNew)) if (portNameNew.Length >= por
2023-10-30 19:42:23
161
原创 C#winform 窗体缩放自适应,不用类库更简洁
if ((item as UserControl) == null && item.Controls.Count > 0)//如果不是自定义控件。//计算控件宽度,double类型。//添加信息:键值:控件名,内容:据左边距离,距顶部距离,控件宽度,控件高度,控件字体。= "")//如果控件名不是空,则执行。
2023-10-24 11:33:27
2323
原创 浮点数和16进制数组 互转
private void button1_Click(object sender, EventArgs e) { try { float temp = (float)Convert.ToSingle(textB_float.Text); byte[] data = BitConverter.GetBytes(temp); textB_bytes.Te
2023-10-23 19:19:45
108
原创 pictureBox/text. 等控件位置 Location=new Point(x,y),不能单独修改Control.Location.x或Control.Location.y,无法编译
程序集:获取或设置该控件的左上角相对于其容器的左上角的坐标。C#复制set;
2023-10-23 19:04:36
185
原创 快排(非递归),双向冒泡减少数据移动,遍历一遍最大最小值归位,效率加倍
int main()\n{ //测试数据\n int arr_test[Max_] = {8, 4, 2, 3, 5, 1, 6, 9, 0, 7, 49};\n //排序前数组序列\n Show(arr_test, Max_);\n //排序后数组序列\n Show(arr_test, Max_);// if (array[i] < array[i - 1]) //找到剩下中最小的\n //Swap(&array[i], &array[i - 1]);C源码:\n//*双向冒泡排序*/
2023-10-13 07:20:51
50
原创 hardfault 定位,重新初始化串口再打印LR,SP
hardfault 中传递LR PC 到 函数中打印, uart的初始化 必不可少!LR 值就是出错的函数地址!
2023-10-10 17:28:40
215
原创 mcu定时器模拟os的时间片任务管理
if(p_task->sta==task_state_pause && p_task->TaskBeat > p_task->TaskInterval) //任务节拍大于上次节拍。if(p_task->sta==task_state_run && p_task->TaskBeat > p_task->TaskInterval) //任务节拍大于上次节拍。
2023-10-09 19:32:09
139
原创 STM32F072/FMD32F03x dma中断方式串口发射和接收高速 115200代码
/接收完成,一般不开启次中断,用uart_idle中断。/**串口接收函数,如果接收的数据大于 len 将会发生溢出中断 将在中断中关闭接收通道 需重新使能***//*****串口发送函数 len需等于发送数据大小*****/
2023-10-09 19:23:56
186
原创 stm32/FMS32 DMA外设数据搬运到ram,解放cpu.能避免uart频繁中断,高速传输不丢包!
串口接收高速数据容易丢失数据,dma避免频繁中断处理;
2023-09-26 19:51:15
169
原创 uart 多通道曲线
this.label_PressureOver.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.坐标轴ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
2023-08-09 13:43:42
55
原创 排序算法C语言时间复杂度实测对比,嵌入式mcu推荐希尔排序和堆排序
* 希尔排序最快: ```c *//*冒泡排序: ```c *//*快速排序: ```c *//*插入排序: 归并排序;二分插入;
2023-08-09 13:41:33
80
原创 STM32/FMD32F 高级定时器强制输出;
TIM_ForcedOC3Config( TIM1, TIM_ForcedAction_Active);//强制强制输出高或低电平,或者切换PWM:TIM_ForcedOC3Config(TIM1,TIM_OCMode_PWM2);
2023-06-26 17:30:37
1064
原创 c# 多个chart 纵坐标轴范围鼠标滚轮放大和缩小,拖动横纵坐标十字光标查看数据。
/当e.Delta > 0时鼠标滚轮是向上滚动,e.Delta < 0时鼠标滚轮向下滚动。//当e.Delta > 0时鼠标滚轮是向上滚动,e.Delta < 0时鼠标滚轮向下滚动。//MessageBox.Show("鼠标向上滑动");//MessageBox.Show("鼠标向下滑动");//MessageBox.Show("鼠标向上滑动");//MessageBox.Show("鼠标向下滑动");if (e.Delta > 0)//滚轮向上。if (e.Delta > 0)//滚轮向上。
2023-06-21 19:24:42
1184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人