fancyang
码龄16年
关注
提问 私信
  • 博客:78,532
    社区:3
    问答:1,169
    79,704
    总访问量
  • 53
    原创
  • 48,177
    排名
  • 114
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:重庆市
  • 加入CSDN时间: 2008-12-26
博客简介:

fancyang的博客

博客描述:
fancyang的杂七杂八的东东
查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    362
    当月
    6
个人成就
  • 获得130次点赞
  • 内容获得6次评论
  • 获得275次收藏
  • 代码片获得1,136次分享
创作历程
  • 14篇
    2024年
  • 35篇
    2023年
  • 4篇
    2020年
  • 1篇
    2018年
成就勋章
TA的专栏
  • 单片机之从C语言基础到专家编程
    16篇
  • 单片机软件架构
    1篇
  • .Net技术
    3篇
  • OpenSCAD软件建模
    1篇
  • ChatGPT应用实战
    2篇
  • 安卓纯代码布局开发游戏
    2篇
  • 计算机技术
    3篇
  • 工业自动化控制
    1篇
  • 萌动精灵
    17篇
  • 工控维修记录
    3篇
  • 从01到图灵
    13篇
创作活动更多

仓颉编程语言体验有奖征文

仓颉编程语言官网已上线,提供版本下载、在线运行、文档体验等功能。为鼓励更多开发者探索仓颉编程语言,现诚邀各位开发者通过官网在线体验/下载使用,参与仓颉体验有奖征文活动。

368人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

关于调试STM32F030系列单片机遇到的硬件错误中断问题

搭建了BSP+SYSTEM+HARDWARE+APP框架,同样的框架在STM32F103单片机及其BSP下,APP正常流畅运行,可更换为配置好的STM32F030K6的BSP及单片机板后,总是出现各种各样的问题。在进入HARDWARE的函数后,将结构体指针的BSP配置部分继续传递给BSP的时候,还没有进入BSP层的函数的调用前,程序就跑飞了。F1系列的单片机对内存访问的要求可能较为宽松,允许未对齐访问,因此在相同的程序中,虽然结构体未严格遵循对齐规则,仍能正常运行。而结构体的大小通常由其对齐方式决定。
原创
发布博客 2024.11.02 ·
1174 阅读 ·
7 点赞 ·
0 评论 ·
20 收藏

以串口接口为例介绍关于BSP底层架构开发的迭代过程

单片机开发有四个阶段:阶段一:单一单片机的功能实现阶段此阶段你开始熟悉STM32F1系列的单片机,并利用其完成相应的功能,比如点了个灯,通过串口发了个”STM32F103 Hello World“,你完成了第一个工程,将其命名为STM32F103_Hello.此阶段不考虑单片机的移植性,只管实现功能,你可以在一个main函数写上几千行的代码,当你觉得一个main函数的代码太长不好维护时,即开始进入阶段二:阶段二:单一单片机的模块化实现阶段。
原创
发布博客 2024.09.27 ·
1506 阅读 ·
7 点赞 ·
0 评论 ·
32 收藏

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.14指针

void0它表示一个值为0的指针常量。// 指向int类型的NULL指针// 指向char类型的NULL指针NULL指针是C语言中一个重要的概念,用于表示无效或空地址。正确使用NULL指针可以提高程序的健壮性,避免因未初始化指针或无效内存访问引发的错误。在编写C程序时,习惯性地将未使用的指针初始化为NULL,并在释放内存后将指针重新置为NULL,是一种良好的编程实践。字符串可以用字符数组或指向字符的指针来定义。// 用字符数组定义字符串// 用指针定义字符串。
原创
发布博客 2024.09.05 ·
1651 阅读 ·
7 点赞 ·
0 评论 ·
30 收藏

OpenSCAD 基础教程

进一步学习资源官方文档和社区资源链接。推荐的学习路线。动手实践的重要性鼓励读者多动手实践,尝试独立完成一些项目,逐步提高对OpenSCAD的理解和应用能力。
原创
发布博客 2024.09.05 ·
1718 阅读 ·
17 点赞 ·
0 评论 ·
19 收藏

水晶连连看 - 无限版软件操作说明书

主要以亮丽的水晶图片配合多样式的地图为特点,满足了玩家高度审美观的同时使玩家在各个游戏水平可以寻找到对应的地图作为目标进行挑战,体会游戏中不同层次带来不同的连击的快感,很有效地促使玩家对游戏的速度更有挑战性和追求极速的欲望,长期地保持了“水晶连连看”的新鲜感。本文档将对水晶连连看游戏的使用,操作以及维护进行描述,使用户(或潜在用户)能够通过本手册了解本软件的用途,并且知道在什么情况下,能够正确的使用它,本文档的使用者是用户。首次进入游戏时,游戏自我初始化,此时进入游戏的关卡模式为金钱模式。
原创
发布博客 2024.09.05 ·
1246 阅读 ·
11 点赞 ·
0 评论 ·
13 收藏

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.1 main函数

在单片机中,main函数是所有函数执行的起点和终点,整个单片机程序在main函数中被循环调用,因此。在main函数中,希望只执行一次的代码通常作为初始化代码。放在循环之前执行,希望反复执行的代码作为核心代码。放在循环内部执行。在上述代码中,printf为标准输出函数,用来输出字符串。在KEIL单片机开发中,printf一般用作将打印内容重定向到串口输出,关于串口配置部分,后面专门讲解,此处不做展开。
原创
发布博客 2024.07.23 ·
331 阅读 ·
10 点赞 ·
0 评论 ·
5 收藏

关于CM4内核的单片机使用sprintf格式化浮点数导致程序跑飞的问题

1.首先怀疑是硬件FPU配置的问题,MDK默认打开了FPU,然而CM4的FPU打开后,是不能直接用sprintf处理浮点数的,据说是开辟的堆栈空间没有8字节对齐。基于freeRTOS和Contex-M4内核的单片机,在使用sprintf格式化浮点数时,由于打开了看门狗复位,导致程序频繁重启,不开看门狗复位,程序就会卡死。而同样的程序在切换到Contex-M3内核的单片机时,就能正常运行。由于我的程序不需要大量高精度的浮点数运算,我在使用CM4的单片机时,不需要打开FPU。
原创
发布博客 2024.07.09 ·
1433 阅读 ·
5 点赞 ·
0 评论 ·
8 收藏

关于APM32F407配置串口DMA收发没有数据的问题记录

这一句用的是直接赋值操作,而不是我们熟悉的按位或,这样当配置了USART_EnableDMA(USART->usart, USART_DMA_RX)后,原来的USART_EnableDMA(USART->usart, USART_DMA_TX);​ 整活了一套APM32F407的板子,用了APM32F4xx_SDK_V1.4的标准外设库,正在搭建移植底层BSP框架串口部分,BSP底层配置逻辑是从STM32F407移植过来的。​ 串口DMA接收和中断接收都没有问题,发送中断也没有问题。
原创
发布博客 2024.05.29 ·
627 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.13数组

C语言中,有一类数据结构,它可以存储一组相同类型的元素,并且可以通过索引访问这些元素,没错,这类数据结构就是数组。数组可以说是C语言中非常重要的数据结构之一了。使用数组可以是程序逻辑更加清晰,也更加具有可读性。
原创
发布博客 2024.05.29 ·
551 阅读 ·
6 点赞 ·
0 评论 ·
2 收藏

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.12枚举

在C语言中,使用enum关键字来定义枚举类型。下面以LED为例,介绍枚举类型的定义方法。enum LED //声明一个名为LED的枚举类型LED_DEBUG = 0, //定义LED_DEBUG的枚举数据,其值为0LED_FUN = 1, //定义LED_FUN的枚举数据,其值为1LED_RUN = 2, //定义LED_RUN的枚举数据,其值为2LED_TEMPEATATURE = 3, //定义LED_TEMPEATATURE的枚举数据,其值为3。
原创
发布博客 2024.04.17 ·
610 阅读 ·
10 点赞 ·
0 评论 ·
3 收藏

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.11函数

函数是一段执行特定任务的代码块,它可以接受输入(称为参数),并可以返回一个结果。函数的主要目的是提高代码的可重用性和模块性。开发者可以定义自己的函数来执行特定的任务,比如数据处理、通信协议的实现等。这些函数增加了代码的模块性和可读性。
原创
发布博客 2024.03.17 ·
666 阅读 ·
3 点赞 ·
0 评论 ·
7 收藏

使用vs2022将.net8的应用程序发布为一个单独文件

3.发布时,如弹出以下错误:无法复制文件“……\userProject\obj\Release
et8.0-windows\win-x86\singlefilehost.exe”,原因是找不到该文件。需要在userProject.csproj中添加如下元素:。1.如果直接将.NetCore3.1升级为.net8,发布时可能会弹出如:不再需要使用Microsoft.NET.Sdk.WindowsDesktop SDK。请考虑将根项目元素的Sdk届性更改为“Microsoft.NET.Sdk”的错误。
原创
发布博客 2024.01.26 ·
4603 阅读 ·
4 点赞 ·
1 评论 ·
7 收藏

使用vs2022将.NetCore的应用程序升级为.Net8的应用程序

2.按照页面下载一个名称为Microsoft.NET.UpgradeAssistant.vsix的文件,退出vs2022,点击安装。4.点击In-place project upgrade,然后选择框架net8.0-windows->next->选择需要升级的文件分支升级即可。.NetCore最新版本为3.1,目前已不受支持,有必要将手上.NetCore项目升级为.Net8项目。
原创
发布博客 2024.01.26 ·
5408 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

使用VSCode创建自定义注释及代码段的方法

"prefix"为调用这个代码段的快捷输入,如这里为log,则在VSCode编辑c语言的文本区输入log则可以快速插入"body"里的内容。$1, $2为制表符的切换标志,通过按下tab键,可从$1的位置快捷跳到$2的位置。4.输入代码段文件名,如需注释c语言的代码,则文件命名为c.json。其中"Print to console"为添加代码段的说明。“body”为代码段的内容,代码每行之间以”,“号分割。15.创建一个do…7.创建一个源文件的头部注释模板。8.创建一个头文件的头部注释模板。
原创
发布博客 2024.01.18 ·
6195 阅读 ·
16 点赞 ·
2 评论 ·
21 收藏

999999的999999次方完整结果

发布资源 2024.01.18 ·
txt

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.10语句

当你特意使用条件赋值时,这个警告可以通过加括号解决,即if((a = 1)) . if((a = 0))其中,当表达式为逻辑表达式时,表达式为真,即执行语句。先执行do内的语句,再根据表达式作为循环的结束条件,当表达式的值为非0时,一直执行语句。转向语句:break语句、goto语句、continue语句、return语句。当表达式为赋值语句时,则根据赋值结果是否大于0判断是否执行语句。表达式作为循环的结束条件,当表达式的值为非0时,一直执行语句。在程序中应把复合语句看成是单条语句,而不是多条语句。
原创
发布博客 2023.08.24 ·
598 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

使用ChatGPT构建一个AIML聊天机器人是什么体验

第三部分是Normalize,里面是aiml的语句替换处理等规范,第四部分是ConfigurationFiles,里面是一些aiml的配置,第五部分是AIMLTagHandlers,里面实现了aiml标记处理,你觉得我们应该从哪部分开始处理转换。虽然部分有错误,但经过调试,终于也能够使用。很抱歉,我之前提到的SwiftyXML是用于处理Swift语言中的XML操作的库,而您提供的代码是用C#编写的。请注意,AIML本身是独立于编程语言的,所以转换代码主要涉及到与AIML引擎的交互,而不是AIML语法本身。
原创
发布博客 2023.08.23 ·
1248 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ChatGPT:记一次超复杂的KVM桌面系统连接问答记录

设备16:单通道2进1出KVM切换器一台,2个HDMI输入,标记为(KVM2-PC1-HDMI-IN,KVM2-PC2-HDMI-IN),1个HDMI输出,标记为(KVM2-HDMI-OUT),2个USB输入接口(标记为KVM2-PC1-USB -IN,KVM2-PC2-USB-IN),2个USB输出接口(标记为KVM2-USB-KEYBOARD,KVM2-USB-MOUSE),可以通过按键切换信号源,当按键切换到KVM2-PC1-HDMI-IN时,HDMI输出当前KVM2-PC1-HDMI-IN的内容。
原创
发布博客 2023.08.21 ·
2204 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.9 变量与常量

变量的定义:变量必须经过定义才能使用,变量的定义即为变量开辟内存空间,开辟空间的大小即为变量类型所占的大小。变量的值的范围以变量类型的空间大小和及符号位所决定。同一作用域变量只能定义一次。变量在源文件中定义,永远不要在头文件中定义变量。int a;//定义一个整型变量afloat b;//定义一个浮点型变量bdouble c;//定义一个双精度型变量cchar d;//定义一个字符变量dchar* p;//定义一个字符指针变量p​。
原创
发布博客 2023.08.17 ·
628 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符

1.算术运算符运算符名称备注+加法运算符双目运算,a + b-减法运算符双目运算,a - b*乘法运算符双目运算,a * b/除法运算符双目运算,a / b%求余运算符双目运算, a % b++自增运算符单目运算, a++–自减运算符单目运算, a–2.关系运算符运算符名称数学中的表示备注>大于运算符>双目运算, a > b<小于运算符<双目
原创
发布博客 2023.08.16 ·
974 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏
加载更多