<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u013072995的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u013072995</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013072995]]></copyright><item><title><![CDATA[MDK Keil编译报错error: #28: expression must have a constant value的解决办法]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/124489804</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/124489804</guid><author>u013072995</author><pubDate>Fri, 29 Apr 2022 10:40:58 +0800</pubDate><description><![CDATA[使用低版本Keil编译高版本编辑过的工程，编译时报错error: #28: expression must have a constant value和 error: #268: declaration may not appear after executable statement in block。



报错操作：在函数中的数组中直接定义形参





报错操作：在函数中间位置直接定义变量





低版本keil为5.18，高版本应该为5.29以上。



解决办法：点击魔术棒Option fo.]]></description><category></category></item><item><title><![CDATA[使用mm32f3277g7p代替stm32f103rct6软件篇-点灯]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/121861759</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/121861759</guid><author>u013072995</author><pubDate>Fri, 10 Dec 2021 17:53:23 +0800</pubDate><description><![CDATA[虽说mm32f3277g7p和stm32f103rct6引脚兼容，但想软件兼容也不是容易的事。在灵动微官网下载了mm32f3270例程和固件库后，开始改软件，实现点灯功能。

例程和固件库下载地址如下：

上海灵动微电子股份有限公司上海灵动微电子股份有限公司https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_mainstream/mm32f3270/打开GPIO例程后，和正点原子的miniSTM32例程对比，可以看出来，软件框架没有改变，固件]]></description><category></category></item><item><title><![CDATA[使用灵动微MM32F3277G7P替换STM32F103RCT6程序死机问题解决方法]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/121703166</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/121703166</guid><author>u013072995</author><pubDate>Fri, 03 Dec 2021 17:33:09 +0800</pubDate><description><![CDATA[最近st芯片价格高，想用国产芯片代替。找到灵动微电子的代理要了几片样片mm32f3277g7p。管脚兼容，但软件要使用灵动微的固件库重新编译一次，还要修改一些时钟配置函数。编译完成后下载到电路板上的芯片内，程序可以运行起来，但我的主板要控制一个电磁阀。每当这个阀打开后mm32f3277g7p很容易死机，表现就是显示停留在当前界面，外设不管怎么动都没反应。需要断电重启才能运行。相同的硬件stm32f103rct6就不会出现死机。查找原理图后发现，mm32的晶振电路和stm32的晶振电路不同。

stm32的晶]]></description><category></category></item><item><title><![CDATA[使用jlink v8和st link v2读取stm32f103rct6出厂flash数据]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/121372607</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/121372607</guid><author>u013072995</author><pubDate>Wed, 17 Nov 2021 10:43:40 +0800</pubDate><description><![CDATA[使用两种下载器读取到的原始出厂flash都是0xFF。

打开J-Flash软件后，点击Target-Connect，然后选择Read back-selected sectors就可以读取falsh数据。

jlink v8读取的范围是：0x8000000-0x803FFFF。



ST-Link V2点击Target-Connect就可以读取flash数据。

ST-Link V2读取的范围是：0x08000000-0x080033D0。




...]]></description><category></category></item><item><title><![CDATA[使用正点原子的触摸USB鼠标例程修改产品序列号iSerialNumber为自定义序列号]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/120720751</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/120720751</guid><author>u013072995</author><pubDate>Tue, 12 Oct 2021 13:55:55 +0800</pubDate><description><![CDATA[在使用正点原子mini开发板触摸usb鼠标例程时，通过USB抓包软件USBlyzer抓取到的产品序列号iSerialNumber是一组12位的字符串。如图1所示。通过程序跟踪得知，这个字符串是stm32唯一设备ID号。寄存器地址如图2所示。



图1、产品序列号显示为stm32的唯一设备ID号



图2、stm32唯一设备ID寄存器地址

usb_desc.c程序里面Joystick_StringSerial数组虽然写了“STM32”，如图3所示。但由于在hw_config.c程序里面的void G..]]></description><category></category></item><item><title><![CDATA[TTL电平信号和RS232信号波形对比]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/120017651</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/120017651</guid><author>u013072995</author><pubDate>Tue, 31 Aug 2021 16:16:03 +0800</pubDate><description><![CDATA[单片机的TX和RX引脚输出电平是TTL电平，幅值为3.3V。单片机与MAX232或SP3232连接传输数据时，传输的数据由TTL电平转换成RS232电平，信号幅值变大。变为电源电压，抗干扰能力增强。

数据长度设置为8时发送数据结构







TTL信号和RS232信号方向相反，即TTL为低电平时RS232表现为高电平
...]]></description><category></category></item><item><title><![CDATA[I2C总线协议]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/119722420</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/119722420</guid><author>u013072995</author><pubDate>Mon, 16 Aug 2021 00:01:32 +0800</pubDate><description><![CDATA[I2C 通讯协议(Inter－Integrated Circuit)是由 Phiilps 公司开发的，由于它引脚少，硬件
实现简单，可扩展性强，不需要 USART、 CAN 等通讯协议的外部收发设备，现在被广泛
地使用在系统内多个集成电路(IC)间的通讯。

I2C物理层

I2C通讯设备之间的常用连接方式如下图所示。



它的物理层有如下特点：
(1) 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线
中，可连接多个 I2C 通讯设备，支持多个通讯主机及多个通讯从机。
(]]></description><category></category></item><item><title><![CDATA[大端存储和小端存储的区别]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/119238858</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/119238858</guid><author>u013072995</author><pubDate>Fri, 30 Jul 2021 11:12:03 +0800</pubDate><description><![CDATA[大端存储：数据的高字节存储在内存低地址，数据的低字节存储在内存高地址。---典型CPU：moto的power pc系列

小端存储：数据的低字节存储在内存低地址，数据的高字节存储在内存高地址。---典型CPU：inter X86系列

例如要存储一个32位的unsgiend int型的变量vol=0x12345678,两种不同存储模式如下：

地址偏移量
			大端存储
			小端存储
		0x00（地址低字节）
			0x12(高字节)
			0x78（低字节）
		0x01
			0x34
			0x5]]></description><category></category></item><item><title><![CDATA[写优快云博客插入代码时注释乱码的解决方法]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/118962426</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/118962426</guid><author>u013072995</author><pubDate>Wed, 21 Jul 2021 11:24:31 +0800</pubDate><description><![CDATA[在写优快云博客插入代码时，遇到写好的注释变成乱码的问题，以前都是复制代码后重新编写注释。今天发现只用改Keil的一个地方就可以了。

打开Edit-&gt;Configuration.查看Editor选项，默认的Enconding选择的是第一项Enconde in ANSI。





把它改成最后一项Chinese GB2312（Simplified）就可以了。



改完之后看注释没以前那么好看了。感觉字体小了好多。
...]]></description><category></category></item><item><title><![CDATA[stm32f103rct6使用io口直接操控数码管动态显示，使用定时器不用delay延时函数]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/118940153</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/118940153</guid><author>u013072995</author><pubDate>Wed, 21 Jul 2021 10:56:36 +0800</pubDate><description><![CDATA[之前使用数码管做一些东西，由于外设比较少就直接用单片机的IO口控制数码管了。我用的3641BS四位共阳数码管，一共12个引脚，全部使用单片机IO。数码管引脚图如下：

写程序的思路是位选置1，段选为0的地方点亮显示。一般动态显示需要用到延时用于视觉暂留，以前用delay函数空等待，这样只能放在main函数的while循环里面，如果while函数中有程序占用时间过长会产生闪烁的感觉。放在定时器中断里面也会出问题。于是就取消delay函数，把动态扫描程序放在定时器中断中，利用定时器来切换数码管显示位置，方便很多]]></description><category></category></item><item><title><![CDATA[TM1638读取按键值乱跳的原因]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/109813454</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/109813454</guid><author>u013072995</author><pubDate>Thu, 19 Nov 2020 16:02:20 +0800</pubDate><description><![CDATA[调试之前同事留下的电路板，有一块显示板用的TM1638驱动4个8201AS数码管，同时连接薄膜按键处理程序。调试时发现不管接不接薄膜按键读取到的按键值都会乱跳，显示却是正常的。检查后才发现这个芯片在5V电源和芯片之间连接了一个电阻，焊接的电阻值是100欧姆。

把这个电阻去掉按键值就正常了，但数码管显示有点亮。电流值是带主板的工作电流。



换回100欧姆，按键值就不正常，显示还是正常的。工作电流如下：



把这个电阻换成原设计值10欧姆，按键值正常，显示稍微暗了一些。





看了下手册，应该是限流]]></description><category></category></item><item><title><![CDATA[stm32f103+znfat+ch375+vs1003实现简单mp3播放器功能]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/96994482</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/96994482</guid><author>u013072995</author><pubDate>Tue, 23 Jul 2019 15:36:07 +0800</pubDate><description><![CDATA[以前做毕业设计买了VS1003语音解码芯片和CH375优盘模块，现在有时间想做一个mp3播放器出来。参照的znFAT例程&amp;SD卡驱动(STM32F103)第9个例程、振南电子SD卡MP3播放器程序和正点原子的mp3播放器程序。可实现播放优盘或TF卡根目录的所有mp3文件，增加4个独立按键，实现下一曲、上一曲切换，音量+、音量-的功能。显示mp3信息没用显示屏，用的串口直接输出到串口调试助手...]]></description><category></category></item><item><title><![CDATA[STM32F103RC驱动CH375B模块读写优盘扇区数据]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/90750303</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/90750303</guid><author>u013072995</author><pubDate>Mon, 03 Jun 2019 17:19:48 +0800</pubDate><description><![CDATA[之前做毕设买了CH375B模块，一直没好好用过。现在想把这个模块用起来。程序参考的振南的51例程《U盘扇区读写[IO方式]》 和正点原子的例程模板，只要把最底层的扇区读写测试通过，znFAT文件系统就可以用了。程序用的并口通信控制。先说端口配置：8位数据端口用的GPIOC的低8位，写选通WR、读选通RD、片选CS、命令口和数据口地址选择A0和中断INT用的GPIOB端口。端口定义如下：


#d...]]></description><category></category></item><item><title><![CDATA[STM32F103在Keil MDK V5.14环境中下载程序后点击Debug按钮提示“uVision IDE 已停止工作”的一种解决办法]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/79912109</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/79912109</guid><author>u013072995</author><pubDate>Thu, 12 Apr 2018 13:54:33 +0800</pubDate><description><![CDATA[之前下载写好的程序并点击Debug按钮调试不会出现提示uVision IDE 已停止工作。后来复制了原工程文件夹，并重命名更长的文件夹名后可以下载程序，但Debug就会出错退出软件。网上有人说工程文件夹路径不能包含太多字符。我的工程文件夹路径包含的汉字和字符长度已超过170个。因此调试出错。把路径包含字符长度减少到170以下再次编译就可以正常调试了。...]]></description><category></category></item><item><title><![CDATA[Keil MDK 5.14Debug仿真时System Viewer菜单显示空白和Peripherals菜单无外设寄存器的解决办法]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/62238495</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/62238495</guid><author>u013072995</author><pubDate>Wed, 15 Mar 2017 22:11:23 +0800</pubDate><description><![CDATA[前几天用keil mdk5.14新建工程进行仿真时，进入Debug环境发现System Viewer菜单显示空白，Peripherals菜单没有外设寄存器。如图1和图2所示。打开Oprons for Target 查看System Viewer File选项没有勾选Use Custom File，系统默认的STM32F103xx.svd。如图3所示。查看Debug选项中的Dialog DLL一栏写]]></description><category></category></item><item><title><![CDATA[STM32F103串口1和串口2不同波特率之间交换数据问题]]></title><link>https://blog.youkuaiyun.com/u013072995/article/details/61210930</link><guid>https://blog.youkuaiyun.com/u013072995/article/details/61210930</guid><author>u013072995</author><pubDate>Fri, 10 Mar 2017 22:41:02 +0800</pubDate><description><![CDATA[前几天写一个东西，要用到STM32F103的串口1和串口2以不同的波特率交换数据，也就是说串口1波特率为9600，串口2波特率为115200，串口1可以把接收到的数据通过串口2发送出去，串口2也可以把接收到的数据通过串口1发送出去。低波特率向高波特率发送数据没问题，高波特率向低波特率发送数据会丢数据，原因是低波特率的串口还没发送完数据高波特率的串口就又发数据过来了，处理不过来。在同事的在帮助下，写]]></description><category></category></item></channel></rss>