当前位置: 首页 > news >正文

商城网站怎么做爱站网站

商城网站怎么做,爱站网站,深圳网站建设信科公司便宜,陵水网站建设STM32F103C8T6的ADC配置。PB0对应的是ADC1的通道8。在标准库中,需要初始化ADC,设置通道,时钟,转换模式等。需要配置GPIOB的第0脚为模拟输入模式,然后配置ADC1的通道8,设置转换周期和触发方式。 接下来是I2C…

        STM32F103C8T6的ADC配置。PB0对应的是ADC1的通道8。在标准库中,需要初始化ADC,设置通道,时钟,转换模式等。需要配置GPIOB的第0脚为模拟输入模式,然后配置ADC1的通道8,设置转换周期和触发方式。

        接下来是I2C屏幕的驱动,通常使用SSD1306 OLED屏,I2C地址一般为0x7a或0X7b。需要编写I2C的初始化函数,包括GPIO配置(PB8和PB9作为SCL和SDA),设置I2C的时钟和模式,以及实现数据的发送函数。同时,需要整合SSD1306的驱动代码,包括初始化命令、清屏、写字符串等函数(这里我们为了省事,直接使用江协科技)。

        用户提到使用标准库,所以需要避免使用HAL的函数,转而使用如stm32f10x_gpio.h、stm32f10x_adc.h、stm32f10x_i2c.h等头文件中的函数。比如,ADC的初始化需要配置ADC_InitTypeDef结构体,启动校准,然后进行转换。I2C部分需要手动处理起始、地址发送、数据发送和停止条件。

        另外,ADC的转换结果需要通过计算得到电压值,这里使用3.3V参考电压,12位分辨率,所以电压=adc_value * 3.3 / 4095。显示部分需要将数值转换为字符串,并格式化输出到OLED上。

        需要注意的问题包括:I2C的时序是否正确,是否添加了上拉电阻;ADC的采样时间是否足够,是否需要多次采样取平均以减少噪声;标准库中的函数调用是否正确,例如I2C的等待标志位是否处理妥当,避免死循环。

        最后,代码结构应包括初始化函数(GPIO、ADC、I2C)、OLED驱动函数、主循环中的ADC读取和显示更新。可能还需要实现简单的延时函数,因为标准库中没有HAL_Delay,可以使用SysTick或简单的循环延时。

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "stdlib.h"int adc_value;
float voltage;
u8 buff[30];
/*** 坐标轴定义:* 左上角为(0, 0)点* 横向向右为X轴,取值范围:0~127* 纵向向下为Y轴,取值范围:0~63* *       0             X轴           127 *      .------------------------------->*    0 |*      |*      |*      |*  Y轴 |*      |*      |*      |*   63 |*      v* */// 初始化水泵ADC
void ADC_Init_Config(void)
{ADC_InitTypeDef ADC;GPIO_InitTypeDef GPIO;// 使能ADC1和GPIOB时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOB, ENABLE);// 配置PB0为模拟输入模式GPIO.GPIO_Pin = GPIO_Pin_0;GPIO.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOB, &GPIO);// 配置ADC1ADC.ADC_Mode = ADC_Mode_Independent;ADC.ADC_ScanConvMode = DISABLE;ADC.ADC_ContinuousConvMode = DISABLE;ADC.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;ADC.ADC_DataAlign = ADC_DataAlign_Right;ADC.ADC_NbrOfChannel = 1;ADC_Init(ADC1, &ADC);// 配置ADC1的通道8(PB0),采样时间为1.5周期ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_1Cycles5);// 使能ADC1ADC_Cmd(ADC1, ENABLE);// 初始化ADC校准值ADC_ResetCalibration(ADC1);while (ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);while (ADC_GetCalibrationStatus(ADC1));
}int main(void)
{ADC_Init_Config();/*OLED初始化*/OLED_Init();/*在(0, 0)位置显示字符'A',字体大小为8*16点阵*/OLED_ShowChar(0, 0, 'A', OLED_8X16);/*在(16, 0)位置显示字符串"Hello World!",字体大小为8*16点阵*/OLED_ShowString(16, 0, "Hello World!", OLED_8X16);/*在(0, 18)位置显示字符'A',字体大小为6*8点阵*/OLED_ShowChar(0, 18, 'A', OLED_6X8);/*在(16, 18)位置显示字符串"Hello World!",字体大小为6*8点阵*/OLED_ShowString(16, 18, "Hello World!", OLED_6X8);/*在(0, 28)位置显示数字12345,长度为5,字体大小为6*8点阵*/OLED_ShowNum(0, 28, 12345, 5, OLED_6X8);/*在(40, 28)位置显示有符号数字-66,长度为2,字体大小为6*8点阵*/OLED_ShowSignedNum(40, 28, -66, 2, OLED_6X8);/*在(70, 28)位置显示十六进制数字0xA5A5,长度为4,字体大小为6*8点阵*/OLED_ShowHexNum(70, 28, 0xA5A5, 4, OLED_6X8);/*在(0, 38)位置显示二进制数字0xA5,长度为8,字体大小为6*8点阵*/OLED_ShowBinNum(0, 38, 0xA5, 8, OLED_6X8);/*在(60, 38)位置显示浮点数字123.45,整数部分长度为3,小数部分长度为2,字体大小为6*8点阵*/OLED_ShowFloatNum(60, 38, 123.45, 3, 2, OLED_6X8);/*在(0, 48)位置显示汉字串"你好,世界。",字体大小为固定的16*16点阵*/OLED_ShowChinese(0, 48, "你好,世界。");/*在(96, 48)位置显示图像,宽16像素,高16像素,图像数据为Diode数组*/OLED_ShowImage(96, 48, 16, 16, Diode);/*在(96, 18)位置打印格式化字符串,字体大小为6*8点阵,格式化字符串为"[%02d]"*/OLED_Printf(96, 18, OLED_6X8, "[%02d]", 6);/*调用OLED_Update函数,将OLED显存数组的内容更新到OLED硬件进行显示*/OLED_Update();/*延时3000ms,观察现象*/Delay_ms(3000);/*清空OLED显存数组*/OLED_Clear();while (1){// 启动ADC转换ADC_SoftwareStartConvCmd(ADC1, ENABLE);// 等待转换完成while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));// 获取ADC转换结果adc_value = ADC_GetConversionValue(ADC1);// 计算电压值// STM32F103C8T6的ADC分辨率是12位,参考电压为3.3Vvoltage = (adc_value * 3.3) / 4096;sprintf((char*)buff,"%fV  ",voltage);OLED_ShowString(16, 18, buff, OLED_6X8);OLED_Update();}
}

优化建议:

        1.添加ADC软件平均滤波:

uint16_t ADC_ReadAvg(uint8_t times) {uint32_t sum = 0;for(uint8_t i=0; i<times; i++) {ADC_SoftwareStartConvCmd(ADC1, ENABLE);while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));sum += ADC_GetConversionValue(ADC1);}return sum/times;
}

        2.显示刷新使用局部刷新代替全屏刷新提升性能

http://www.cadmedia.cn/news/2376.html

相关文章:

  • 深圳做网站供应商如何创建一个属于自己的网站
  • 电脑制作网站的软件厦门百度竞价开户
  • 中国对外贸易网站网络广告营销方案
  • 东莞疫情情况 最新消息单词优化和整站优化
  • 做网站客户最关心的是什么推广普通话宣传周
  • 电子商务网站建设规划方案推广计划方案模板
  • 制作动态网页的技术有南宁网站seo排名优化
  • 网络工程专业学什么合肥网站seo费用
  • 沈阳网站建设seo优化交换友情链接
  • 越南做购物网站百度指数查询官网
  • 中建八局劳务派遣招聘重庆seo网站收录优化
  • 完善网站建设通知自己怎么开电商平台
  • 委托第三方建设网站应注意哪些朋友圈推广广告
  • 山西省住房建设厅网站下载什么网站做推广比较好
  • 南宁手机平台网网站建设seo怎么刷关键词排名
  • 南昌网站建设费用做推广app赚钱的项目
  • 汕头网站上排名网络营销推广策划步骤
  • 凡客诚品网站设计国际新闻直播
  • 原来做网站后来跑国外了山东关键词网络推广
  • 长沙网站制作价格win7优化配置的方法
  • wordpress 谷歌登陆揭阳seo推广公司
  • 南昌网站建设专业公司哈尔滨关键词排名工具
  • 电子商务策划书模板抖音seo优化怎么做
  • 网站运营建设的培训班刚刚中国宣布重大消息
  • 网站seo方案撰写湖南网站设计外包服务
  • 网站建设 回本seo推广价格
  • php怎样做网站的注删页面中国最新新闻
  • 照明网站建设网站浏览器
  • 网站建设方案书 下载软文推广是什么意思
  • 企业网站建设方案对比汇报网店运营公司