
STM32
容沁风
这个作者很懒,什么都没留下…
展开
-
Keil uVision4 函数提示
听说4.71的版本有代码补齐的功能。下载的时候,可以选择4.71A。菜单Editor--->Configuration...在标签Completion中勾选 Symbols after 3 Characters这样在代码输入3字符时,就可以有提示了。不打这个勾,代码补齐不作用。然而,与 Visual Studio还是原创 2013-07-11 15:52:09 · 9346 阅读 · 0 评论 -
stm32 hal i2c 库读写sd3088时钟
前一版本的修正。sd3008在每次通信开始0.5s做一次总线复位,不必考虑stm32的i2c Bug问题。而且HAL库,是不是也应考虑到软件上补充这个Bug?使用HAL_I2C_Mem_Read/Write,使得代码非常好看。模拟I2C方式,一字长蛇阵模样。使用Freertos,读取时间、保存数据到用户SRAM,需要考虑Mutex对RTC时钟资源进行保护。* SD3088时原创 2016-03-06 19:57:51 · 4977 阅读 · 1 评论 -
stm32cubemx下stm32f103读ds18b20
环境:IAR 7.4stm32cubemx 4.13.1stm32f1 1.3.1freertos 8.1读ds18b20主要是时序,就是一个微秒级的delay。先看电路:这里使用上拉电阻,DQ设为OD模式,在读取和输出时,也做了PIN的方向改变,不做改变,则只能读取到0值。 不想使用上拉电阻,则可以把DQ设为PP模式,Mbed开发板使用这个可以成功原创 2016-03-24 11:54:00 · 8650 阅读 · 1 评论 -
stm32驱动max6675读取温度
环境:IAR 7.4stm32cubemx 4.13.1stm32f1 1.3.1电路是标准的SPI接法,SO没有上拉电阻。MISO脚配置为浮空,没有做内部上拉。用HAL很简单,CS拉低以后,一个SPI读两个字节进来,然后就是凑成12位,换算。MAX6675文档强调是在时钟下降沿读取数据,因此将SPI2配置为: hspi2.Init.CLKPo原创 2016-03-25 14:33:28 · 11307 阅读 · 5 评论 -
stm32f103读取红外接收HS0038A2
软件:IAR 7.4STM32CubeMX 4.14.0硬件:STM32F103VBT6原理图,和手册建议的基本一致,只是上拉电阻不是手册建议的10K以上,这里的面板距离控制器比较远,可能是考虑到线阻。HAL配置,使用Cubemx。HS0038A2的输出,带有上拉电阻,接着一个led灯,因此TIM3的IC脚浮空。设计者恰好把IR设计在原创 2016-04-03 10:28:58 · 11411 阅读 · 1 评论 -
STM32定时器单脉冲输出
使用stm32cubemx配置外设,代码使用HAL stm32f1 v1.3.1库。用的是stm32l152c开发板,时钟频率32MHZ。这里,没有配置中断。上图的意思是,TI2收到1给正脉冲,触发TIM1开始计数,经过 tDelay后,OC1输出低,经过一个tPulse后,OC1又恢复为高。The OPM waveform原创 2016-04-26 16:50:34 · 20149 阅读 · 6 评论 -
stm32定时器之Output Compare
stm32f103vb发出逻辑信号给MOC3020,控制BTA16可控硅的通断。在检测到过零信号时,延时x毫秒,输出1;延时y毫秒,关闭输出。 实现相位控制调速感应电机(小功率)。在stm32 discovery开发板上,使用蓝灯和绿灯模拟。采用定时器的OC,比较输出来做。选用VBT6的一个Timer来做,它有4个通道可以使用,可以拿来控制4路可控硅输出。原创 2016-01-22 18:16:21 · 14163 阅读 · 0 评论 -
stm32F1使用us-100超声波测距
老规矩,使用CubeMX进行外设配置。使用电平方式,需要进行两次捕捉,而且发送10us触发脉冲,需要延时。103VBT6的Timer不多,还是UART口方便。硬件配置:1)UART波特率设为96002)开启NVIC中断软件:我使用US-100测量料斗里的颗粒料消耗,项目使用Freertos系统。1)在main函数里启用UART2端口监听 HAL原创 2016-05-26 13:11:37 · 9308 阅读 · 3 评论 -
使用esp8266-01初步
在天猫天士凯买的ESP8266-01模块。店铺提供的针脚资料是错误的。第1步首先是要用串口看到无线模块,先用杜邦线把模块连接到电脑上,模块和电脑之间,使用USB转TTL适配器。我这里用的是PL2302芯片的适配器。这个分老版和新版,现在买到的是新版。针脚图按如下:正常连接VCC和GND供电,TXD和RXD到适配器。还需要对CH_PD接入高电平,若原创 2016-05-26 17:28:34 · 7691 阅读 · 0 评论 -
C++使用构造器初始化对象的两种方式
Using ConstructorsC++ provides two ways to initialize an object by using a constructor.The first is to call the constructor explicitly:Stock food = Stock("World Cabbage", 250, 1.25);This sets翻译 2017-01-14 15:19:17 · 1498 阅读 · 0 评论 -
nodemcu读取sht10的温湿度值不正常原因
sht10模块是几年前在淘宝买的。从X宝X士凯借 的图如上。当然后做项目还是要迁移到sht2x, sht3x等,标准的i2c界面会大大简化工作。 像sht10这种,要根据时序发高低电平脉冲,实在是枯燥无味至极。图中,针脚S是时钟,针脚D是数据(需要双向输入输出)。nodemcu操作gpio,没有开漏、推挽模式选择,只可选一个弱上拉。从背面可以原创 2017-06-11 09:38:35 · 2613 阅读 · 2 评论 -
Mongoose os读取sht10
结构体指针的使用。原创 2017-09-08 22:03:58 · 743 阅读 · 5 评论 -
Mongoose OS 的mos命令
C:\Users\y>mos --helpfullThe Mongoose OS command line tool, v. 20171001-163638/1.18@4bbec4b4+.Update channel: "release". Checking updates... Up to date.Usage: mos Commands: ui原创 2017-10-20 11:34:58 · 1493 阅读 · 0 评论 -
STM32 HAL I2C库读指定寄存器的数据
Support for "repeated start" in STM32 HAL I2C libraryQ:I am working with a slave I2C device (Kionix KX022 acccelerometer) which uses a "repeated start" mechanism to send data requested转载 2016-03-06 19:31:14 · 13128 阅读 · 2 评论 -
开源生物质颗粒壁炉控制系统
硬件:1)MCU:STM32F103VBT6, 可以随时换为STM32F103VCT6,使用更多的内存2)时钟: SD3088,集成电容,可使用充电电池3)温度1: 使用MAX6675测量K热电偶4)温度2:使用DS18B20测室内温度,可更换为LM34传感器由ADC接入5)输出: 目前使用MOC3020驱动BTA可控硅,移相触发对风机进行调速; 可以改为PWM+IGB原创 2016-01-28 14:03:48 · 2267 阅读 · 1 评论 -
stm32F103状态机矩阵键盘
矩阵键盘程序,作为麦知club小车项目的一部分,从IAR状态机应用修改而来。IAR7.4+STM32CUBEMX调试通过。键盘行4,列3,每条线都有10K上拉电阻。改到4×4矩阵也很容易。行线设置为 输入,针脚为浮空; 列线设置为开漏输出。不支持长按和组合键,主要是我不会改。在OS中使用20ms任务周期调用。以下贴出代码。keypad.h/***原创 2015-12-08 08:06:48 · 5328 阅读 · 0 评论 -
理解stm32 bit-band映射公式
bit_band,直译为位带,也翻译成别名存储区。映射公式: bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4) (式1)其中: bit_word_addr —— bit_band中字的地址,它映射到某个寄存器位。 bit_band_base —— bit_band原创 2013-06-07 20:21:06 · 6716 阅读 · 2 评论 -
在头文件声明全局变量和创建extern
在头文件声明全局变量和创建extern问题:是否有简单的方法,在头文件里定义我的变量,同时也为它们创建extern定义?回答:是的。尽管这不是必需的,使用正确的宏和一个头文件还是很容易实现的。通常,你在C文件中声明一个变量,而在头文件中创建extern定义。然而,如果你想的话,下面的技巧用来在同一个头文件中声明变量,并且对它们进行extern定义。首先,创建一个翻译 2013-08-12 16:51:56 · 15965 阅读 · 2 评论 -
STM32L1XX使用HAL_UART_Transmit_DMA发送串口数据
使用STM32CubeMX生成初始化代码。问题:HAL_UART_Transmit_DMA函数只能调用一次,第二次就返回状态HAL_UART_STATE_BUSY 0x02。原因:stm32l1xx_hal_uart.c开头有描述 (##) DMA Configuration if you need to use DMA process (HAL_UA原创 2015-07-30 11:50:23 · 34161 阅读 · 3 评论 -
软件定时器osTimerCreate返回NULL
CMSIS-RTOS是对FreeRtos的封装,函数名比较适合纯软件编程。现在的版本是1.0.2.id1 = osTimerCreate(osTimer(Timer_1), osTimerOnce, NULL);但是这个osTimerCreate总是返回0x00000000。就是创建软件定时器不成功。在stm32cubmx的配置中,看到Timers不可原创 2015-07-21 12:47:41 · 5428 阅读 · 0 评论 -
cmsis-rtos v1.02支持Mail Queue问题
STM32CubeMX默认支持Freertos。/* USER CODE BEGIN Variables */osMailQDef(mail, 6, uint8_t);/* USER CODE END Variables */cmsis-rtos文档中有对邮件队列管理的描述,按照定义后,编译总是报错:..\Src\freertos.c(52): error: #151原创 2015-07-31 20:12:45 · 3455 阅读 · 0 评论 -
STM32F103RC/D/E是否可以使用mbed
Can I use a F103RC/D/E with mbed?Ask:Will a code that's working on a Nucleo F103RB work on a F103RC, RD or RE processor using the web compiler?I don't mind if I am limited to the features of the翻译 2015-09-02 11:41:03 · 2734 阅读 · 0 评论 -
u8glib中文显示
花费了一天的力气,终于把在m2tklib上显示汉字的坑填上了。其中,只有一次想放弃,比以前的数次放弃有了很大进步。根据MakerLab创客实验室的文章,可以显示中文,但是按照他的说法,将末尾的一位删掉,尽管可以持续显示后面的汉字,但实际上字会缺一小部分,而他的完整例子中的字体好像又没问题。使用bdf2u8g生成一个汉字:const u8g_fntpgm_uint8_原创 2015-12-28 19:57:47 · 12139 阅读 · 2 评论 -
stm32F103VB使用uGfx驱动sh1106
IAR7.4+STM32CUBEMX调试通过。显示部分,作为麦知智能小车的一部分。显示屏是OLED 1.3寸,控制器是sh1106,但像素是128*64,价格达到惊人的45元/片。只提供代码,而不同时说明硬件电路图,是导致情景不能复现的主要原因。这个是委托方提供的原理图和硬件,他每条线都有上拉电阻,显然是打算用模拟SPI。我在代码里,将cs,dc,res原创 2015-12-14 12:34:44 · 5893 阅读 · 1 评论 -
理解stm32开漏输出与推挽输出
每次看到stm32的教程,都是让点led灯,对GPIO觉着很是简单。后来者麦知club的小车机器人项目中,屡屡碰壁,是寸步难行,读ds18b20要拉底,拉高;写Oled屏要片选,要命令。在百度里查来查去,大都模样差不多。今天,动手在stm32l152c的discovery板上,简单的几行代码,配合万用表,终于一解迷惑。依旧是要cubemx配置外设和时钟,while循环里代码如下:原创 2015-12-15 18:07:25 · 22375 阅读 · 0 评论 -
使用STM32 HAL库读取RTC时间芯片SD3088
美信的RTC芯片看起来不错,但是贵。威帆的这个不错,而且还可以给电池充电,便宜很多,淘宝上价格6元一片。我这项目对时间要求严格,就不使用1元多的芯片了。网传STM32F1的I2C有Bug,模拟通信最为保险。威帆网站上的例子是模拟的,看起来也蛮简单。官方说0.5秒内读值就行,要求不高。我这里是使用HAL库,先前使用I2C读过PCF8563,看起来也正常。环原创 2015-12-02 10:45:20 · 8018 阅读 · 3 评论 -
物联网之 NodeMCU:无线灌溉控制器
物联网之NodeMCU UI:珠翠罗绮 2017年10月24日星期二《使用mongoos-os系列》 目 录 一、 NodeMCU的选择 3二、 固件的选择 3三、 UI(用户界面) 4四、 进一步 12五、 代码修改 15一、NodeMCU的选择1、NodeMCU V2核心是ESP-12E,CPU速度80MHZ和160MHZ原创 2017-10-24 14:57:04 · 3490 阅读 · 1 评论