- 博客(39)
- 资源 (8)
- 收藏
- 关注
原创 getline函数报错,没有与参数列表匹配的重载函数
如图,String line;此处改为string line;相关资料:[C#] String与string的区别C#是区分大小写的,但是我却发现C#中同时存在String与string,于是我很困惑,于是我上网搜索了一下,于是我了解了一些小知识。MSDN中对string的说明:string is an alias for String in the .NET Framework。string是String的别名而已,string是c#中的类,String是Framework的类,C# s.
2020-12-08 22:00:34 2847
原创 STM32F103 flash地址与数据存入时高低位的关系
这几天做东西用到了stm32f103的内置flash模拟eeprom,其中有个32位的数据需要存储,但是正点原子的例程并没有给出直接存取32位数据的函数,于是乎自己写了个。首先复习概念,在stm32f103中:8比特(bit)=1字节(Byte)4字节(Byte)=1字(Word)存入32位数据**(错误示范)**void STMFLASH_WriteOneWord(u32 WriteA...
2019-12-01 00:31:13 2460
转载 SPI写入数据的时候记得读取,不然会一直读出0xFF!
真的是越来越不清醒了,写一个SPI字节的时候居然忘记要读取数据了,因为SPI为双线结构,只要时钟线有信号,两条线上都会有信号,我就只发送数据,要读取的数据的时候再读取,这样子会造成溢出标志OVR被置1,因为平时的数据没有被读取,又来一个,真正要读取的时候,就会发现,怎么都是FF,因为发送OVR之后,还是DR的内容不会被修改,所以都是FF。查找原因过程:通过逻辑分析仪看到出来的数据明明是0x69,...
2019-11-28 18:51:51 6928 3
原创 STM32 PC13,14,15引脚可同时作为输出
在中文手册中(参照2009年4月 STM32F103x8B数据手册 英文第10版 翻译),PC13,14,15特别注明了不得同时作为输出:但是在官网最新的手册中没有发现这个限制,不知道是改动了还是本来就没写:英文手册地址:https://www.st.com/resource/en/datasheet/stm32f103c8.pdf...
2019-11-16 18:24:57 1827 1
原创 WS2812B使用备忘
在淘宝卖的ws2812b rgb灯虽然都是同一名称,但是各家的数据格式都有有微小的不同,参考各家数据手册会发现高低电平的时间有许多不同。如在淘宝“南方光电”买的ws2812b数据手册如下:再如“糊糊蝶照明”RGB灯条的数据手册:网上还有其他版本的数据手册,时间也不一样,有兴趣可以搜一搜。以上时间差距会让颜色不准,在使用的时候要注意。除了手册差异(数据差异)导致的问题,还有不同写法io...
2019-08-31 18:55:08 3636
原创 STMCube学习记录(四) 定时器中断 LL库(Timer 2)
打开定时器配置,从模式选择关闭,时钟源选择内部时钟,使能中断,记得配置下面的Parameter Setting,就跟之前配库函数一样配就行。配置完Timer去左边NVIC里设置下,TIM2中断使能勾上。其他LED的GPIO配置和之前一样PC13,然后选择用LL库生成程序(HAL的网上也有很多教程自行百度)。生成后打开工程,并不是直接编译就能让LED闪烁的,打开“stm32f1xx_it...
2019-08-18 23:36:22 5074
原创 STMCube学习记录(三) 打开Debug口
很多人在用Cube生成工程正确编译并烧录后,发现再也不能烧录了,keil也找不到目标板了。很明显这是调试接口被关闭了,打开就好了。如上图,在侧边SYS中找到debug,根据需求选择SW,JTAG(4),JTAG(5),重新生成工程并编译,烧录就可以解决。如果之前烧录了没有debug口的程序导致识别不了目标板,可以按下板子上的reset后点击烧录按键,再立刻放开reset,即可正常烧录。如果d...
2019-08-18 21:30:27 534
原创 STMCube学习记录(二)点亮LED
直接上图,在GPIO选项中如下配置,下面几个选项:GPIO output level:默认输出电平GPIO mode:GPIO模式,有推挽和开漏两种GPIO Pull-up/Pull-down:上下拉模式Maximum output speed:输出速度,有Low(2MHz),Medium(10MHz)和High(50MHz)[针对F103系列,F4等速度更快如何对应没有验证]Use...
2019-08-18 21:11:51 2200 1
原创 STMCube学习记录(一)RCC时钟源配置
打开STMCube的RCC配置界面如下图,在用cube配置时钟时,有下面三个选项Disable(禁用)BYPASS Clock Source(旁路时钟源)Crystal/Ceramic Resonator(晶体/陶瓷晶振)对于BYPASS Clock Source(旁路时钟源),就是由外部给定一个时钟信号,是单向的,猜测一般用于作为同步时钟。可以在Clock Configuration...
2019-08-15 00:33:01 7783
原创 STM32F103学习笔记(三) 串口的标志位 USART_FLAG_TXE 和USART_FLAG_TC的理解
http://www.openedv.com/posts/list/0/58919.htm
2019-04-21 03:26:11 4663
原创 STM32F103学习笔记(一)使用内部rc振荡器做时钟源
写在前面:标题“使用内部rc振荡器做时钟源”其实不太准确,实际应该是“使用内部rc振荡器经PLL倍频后做时钟源”,为了简单本文统一用“使用内部rc振荡器做时钟源”。在做开发时,一些场合对时钟要求不是非常精确的时候可以省掉外部晶体和两个电容,好处是可以简化布线,节省成本并进一步降低功耗;缺点也很明显,HSI不够精准,官方给出的误差是在1%(25摄氏度)。根据手册,USB时钟不能用HSI经PLL后得...
2019-04-17 15:16:49 8367
转载 STM32 USB时钟设置
原则:STM32 的USB时钟不能超过48MHZ,因此如果时钟源为72MHZ,就需要进行1.5分频:RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);如果时钟源为48MHZ,则进行1分频即可:RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_Div1); STM32的时钟树如下: ...
2019-04-17 11:46:44 4445
原创 STM32关于UART4_IRQn未定义的解决方法(identifier "UART4_IRQn" is undefined)
这种问题一般出现在中容量(或小容量)向大容量移植程序的时候,出现原因也很简单,因为中容量设备里没有UART4自然也就没有这个中断了。我是由STM32F103C8T6向ZET6移植程序时出现的。解决方法是:1.确认你的设备是大容量设备(确认有UART4)2.确认C/C++中define的是“STM32F10X_HD”而不是“STM32F10X_MD”3.确认替换了启动文件(“startup_...
2019-03-23 17:17:39 7264 1
原创 关于STM32宏定义的产品类型名称解释
startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devicesstartup_stm32f10x_ld.s: for STM32 Low density devicesstartup_stm32f10x_md_vl.s: for STM32 Medium density Value line devicesstartu...
2019-03-14 22:47:54 619
原创 STM32F103 TIM1输出PWM改变占空比反应迟缓
最近做机械臂的时候用到了TIM1的四路PWM控制四个舵机,结果出现了舵机不受控制或者反应迟钝的问题,用示波器看波形发现波形改变比控制指令慢了2秒左右,换板子后依旧存在该问题,故怀疑初始化程序配置。在查阅了正点原子例程控制TIMER3的PWM输出后修改程序仍存在上述问题,但TIMER3直接输出就没有延迟问题。研究两天后觉得是高级定时器和通用定时器存在一些差异,查阅手册和请教群友后初步认定问题出在t...
2019-03-08 22:37:34 4661
原创 中移物联网入门记录(1)
中国移动之前搞了个活动可以申请STM32的物联网开发板,心痒申请了一下,虽然最后没有申请到但是从学长那里白嫖了一块麒麟座MINI开发板,主控STM32F103CBT6,板载SH120,ESP8266和CH340。个人觉得这块板子设计的作用就是用来实现本地数据上传到OneNet平台的,所以资源较少也很正常。1.完成的的OneNet平台的注册等等,这个在申请板子的时候就做过了就不提了。2.添加产品...
2019-03-04 00:53:17 934
转载 PCB画异形板
以圆环举例:先画两个圆,选中小圆,点击Tools->Convert->Creat Board Cutout from Selected Primitive。然后选中最大的外形,然后Design->Board Shape->Define from selected, (D->S->D)即可...
2019-03-03 19:32:14 1104
原创 关于GPIO不输出高低电平的一种可能情况
如果是从GPIO输入直接复制过来改成输出模式的情况,请一定记得加上配置输出速度。GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz,也可以是10M,2M血与泪的教训。...
2019-02-15 16:07:35 4789
原创 stm32外设的使能,失能,复位的区别
首先明确的是,在STM32中所有外设正常工作的前提是使能了相应的外设,有的可能只用使能一个(如GPIO),有的使能两个(如GPIO和USART),有的可能需要使能三个(如GPIO,AIFO,TIM)。总而言之,只有使能了外设时钟外设才能工作。所以外设使能实际使能的是外设的时钟,而与之相应的外设失能也是使外设时钟失能。外设失能后配置外设是没有作用的除非重新使能。与以上两个不同的是外设复位,它是通...
2019-02-15 12:48:25 8127 1
原创 ws2812b RGB灯工作时乱闪的问题
这两天心血来潮买了两块ws2812d的灯板来玩,宣传16w色全彩RGB,十分炫酷。买的两种板子都是同样的灯,区别在于一个是44一个是88的。首次写好44的程序,接好电路5v供电,闪瞎狗眼,赶紧换到3.3v,也能够正常完美地工作,44的灯板测试完毕。再测试88的,由于ws2812d相当于一种另类的“串行”设备,而且只需要一个io口控制,这也就决定了程序上不用太大改动(详见数据手册),甚至88的可以...
2019-01-30 01:04:49 15614 6
原创 stm32f103c8t6移植Fatfs文件系统出现的一些问题
一、环境keil5,使用库函数二、移植对象stm32f103zet6 >> stm32f103c8t6三、连接方式硬件SPI1(PA5,6,7)四、主函数代码#include "stdio.h"#include "delay.h"#include &quo
2018-12-11 23:15:12 6315 3
转载 STM32F10x互补输出TIM_OutputState,TIM_OutputNState的意思
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable 禁止OC输出TIM_OutputState_Enable 开启OC输出到对应引脚TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Dis...
2018-11-21 23:05:45 6658
转载 PCB图上,在Keep-out layer 层上不能画线 ,一画线就跳到Drill Drawing层的解决办法
Altium 17目前对Keepout属性进行了更新,可以有效的纠正,设计者利用Keepout作为板框的不良习惯。正确的使用方法是,切换到Keepout层,然后执行菜单命令“Place -Keepout-Track”进行绘制。...
2018-10-08 14:41:04 13743 1
转载 【转载】STM32F103C8T6 FTT音乐频谱分析与显示
原标题:stm32f103+FFT+OLED的音乐频谱制作(干货 只需三步即可) 为防止自己找不到先转再看。 以下为原文。 效果演示:https://www.bilibili.com/video/av29366031/...
2018-09-03 16:01:04 11562 2
原创 STM32F103RCT6移植到STM32F103C8T6注意事项
前言 在移植某STM32F103RCT6程序时遇到keil5中没有合适flash大小(128k)的情况,本以为是keil5的pack没装好,重装包并升级到最新并没有解决该问题,百度之得到以下答案。同时,在F407中也存在这种情况,解决方法应该类似(没有实际测试),猜测主要原因应该出现在C/C++宏定义上,改为当前硬件对应即可。 另附STM32f10x的startup文件。以下为转载,转自S...
2018-08-26 22:04:26 14815 4
原创 STM32F103C8T6在Keil编译器中报错error: #67: expected a "}"的解决办法
这种错误一般为以下形式 ..\USER\stm32f10x.h(298): error: #67: expected a “}” 且一般为从大容量产品移植后出现(ZET6,RCT6等) 此时查看C/C++中define,由改为 STM32F10X_MD,USE_STDPERIPH_DRIVER...
2018-08-26 22:03:55 13861 9
原创 stm32——Fatfs文件系统读写文件
因项目需求需要移植fatfs文件系统,参考了正点原子的战舰例程。 使用mcu为stm32f103zet6,spi的sd卡模块,8Gsd卡。例程为mini板(mcu:stm32f103rct6)的 ALIENTEK MINISTM32 实验29 FATFS文件系统实验,zet6的例程由于是sdio模式所以没有选用。初始化 这里只初始化sd卡.e2prom部分删除了 mem_init...
2018-08-18 21:13:03 20529 3
转载 MSP430 SD卡SPI读写操作(2) —— SD卡SPI操作流程
转载:MSP430 SD卡SPI读写操作(2) —— SD卡SPI操作流程 本节介绍SD卡SPI模式基本操作流程,包括初始化、读和写的相关命令和操作流程。一、SPI模式二、RESET(SD卡复位)三、SD卡初始化四、SD卡读单块五、SD卡读多块六、SD卡写单块七、SD卡写多块一...
2018-07-29 18:55:50 1288
转载 MSP430 SD卡SPI读写操作(1) —— SD卡命令
转载:MSP430 SD卡SPI读写操作(1) —— SD卡命令 本节介绍SD卡常用命令,包括SD卡的初始化、读、写等操作的命令及其响应的介绍。首先附上SD相关文档下载地址:https://www.sdcard.org快速导航:一、SD卡介绍二、SD卡寄存器三、SPI模式命令格式四、SPI...
2018-07-29 18:52:04 598
原创 STM32F407获取系统时钟方法
获取当前时钟频率方法(库函数)RCC_ClocksTypeDef是一个结构体,定义一个全局变量:RCC_ClocksTypeDef Get_RCC_Clocks; RCC_ClocksTypeDef结构体定义如下(库函数里有)typedef struct{ uint32_t SYSCLK_Frequency; /*!< returns SYSCLK clock f...
2018-07-18 04:22:26 4551
转载 CSDN上转载文章
前言 首先感谢本文章的原作者,以及附上原始地址: CSDN上转载文章 如何快速转载CSDN中的博客 接下来是实战成果。 在参考“如何快速转载CSDN中的博客”后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记。 参考博客原址:h...
2018-07-14 00:55:46 149
原创 TI-TM4C123x学习记录(五):读取高低电平
读取一个引脚的高低电平,最常见的是用在按键判定上,其次是在中断中也有使用。一、关键语句int32_t ROM_GPIOPinRead(uint32_t ui32Port, uint8_t ui8Pins)Parameters: ui32Port is the base address of the GPIO port. ui8Pins is the bit-packed representatio...
2018-06-29 14:12:15 3490 2
原创 TI-TM4C123x学习记录(四):点亮LED——gpio输出
一、简介当IO为输出模式时(多数IO口默认输出,部分IO口有锁需要解锁,如PF0,PD0,PD7。详见数据手册),使用GPIOPinWrite(或ROM_GPIOPinWrite)函数能够设置IO的输出状态(高或低)。二、函数示例GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, GPIO_PIN_1); //N1口置高GPIOPinWrite(GPI...
2018-06-23 17:15:08 4899 5
原创 TI-TM4C123x学习记录(六):外部中断
TM4C123G的外部中断初始化程序1、硬件芯片型号:TM4C1233/123G/1237等123x系列按键:PM3LED:PM02、软件keil53、程序#include <stdbool.h>#include <stdint.h>#include "inc/hw_memmap.h" #include "inc/hw_ints.h" #include "dri...
2018-06-16 23:47:58 2129
原创 TI-TM4C123x学习记录(十):FPU使用注意事项
一、写在前面逛TI论坛的时候看到关于使用FPU算pid速度慢的问题,原题主走了不少弯路,在此记录下来免得自己也掉进坑里。二、问题简述在高速运算pid时(60Khz),浮点运算速度跟不上。三、解决方案1.软件开启FPUROM_FPUEnable();ROM_FPULazyStackingEnable(); //例程中给的是ROM_FPUStackingEnable();2.需要在CCS中选项...
2018-06-04 02:41:00 2022
原创 TI-TM4C123x学习记录(三):系统时钟设置
一、调用函数ROM_SysCtlClockSet或SysCtlClockSet二、参数(本段资料来源于互联网)系统时钟设置函数为:void SysCtlClockSet(unsigned long ulConfig) ulConfig:时钟配置字,应当取下列各组数值之间的“或运算”组合形式: 1.系统时钟分频值 SYSCTL_SYSDIV_1 // 振荡器不分频(不可用于PLL) SYSCTL_S...
2018-06-03 18:42:17 5403
原创 TI-TM4C123x学习记录(二):CCS创建工程及相关设置
说完了导入例程(点击打开),再说说创建一个新工程。按照惯例,菜单栏>New>CCS Project,在弹窗中依次选择芯片型号(Target)、仿真器(Connection)、路径(Location)、模板(Project templates and examples),再点击Finish,一个工程就建立好了。在这里我选用的模板一般是Empty Project (with main.c)
2018-01-29 18:10:48 3953 1
原创 编译器工作流程
写在前面:本文仅供以后自己学习参考和学习交流,内容来自于互联网以及自身理解。如有侵权请及时联系、如有错误请不吝指教。要理解C文件(.c)与头文件(.h),一般先需要弄明白编译器的工作过程。一般编译器会进行以下操作: 1.预处理:做宏定义、文件包含、条件编译工作,特点是带有“#”的语句; 详见:C语言三种预处理功能 2.词法与语法分析阶段:顾名思义
2018-01-29 17:12:28 887
原创 TI-TM4C123x学习记录(一):CCS导入例程
刚刚开始接触TI公司的TM4C123GXL,申请了一块板子回来学习,在此记录下留作纪念。用TI的芯片做东西,虽然Keil、IAR貌似都能用,但是官方的CCS给的例程和其他资源比较多,所以综合考虑还是用CCS做编译工作。首先记录下怎么用CCS创建工程。首先下载CCS安装包和tivaware(文件名:SW-TM4C-2.1.4.178 .exe)并安装。特别注明由于TM4C123G是比较新的芯
2018-01-29 17:00:09 14941 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人