- 博客(13)
- 收藏
- 关注
原创 I2C学习记录
I2C是通信协议,含有两条数据线,一是,二是,带有,常用一主多从模型,支持多主多从模型,主机拥有SCL的绝对控制权限,从机在主机发出读命令时才可以控制SDA控制线。所有设备的SCL连在一起,SDA连在一起,防止短路,SCL、SDA需要配置为,均需要外置电阻达到效果,具有线与特征,全高电平才是高电平,有一个低电平就低电平。从机地址支持7位,10位,I2C协议规定,起始后第一位必须是从机地址位+读写位(0写入1读取),后续位可以依据从机定义。
2024-10-30 13:39:12 765
原创 江科大STM32学习——ADC-DMA
STM32系列中ADC为12位逐次逼近型模拟数字转换器,最大转换显示数字范围4096,线性对应输入的电压,可以测量16个外部通道以及2个内部通道,输入时钟不能超过14Mhz,一般采用6分频即采用12Mhz时钟频率。ADC可以采用软件进行触发,也可以采用硬件触发(来自定时器、外部中断触发),工作模式有单次模式、扫描模式,连续模式、间断模式,转换单元有规则组以及注入组模式,同时可以模拟看门狗事件,在转换完成均产生标志位可以连接至NVIC进行产生中断。
2024-09-20 12:23:13 1527
原创 江科大STM32学习——TIM-PWM
比较单元代码:TIM_OC?Init()初始化函数,结构体变量中含有N的为高级定时器功能,赋值给各个结构体前先用TIM_OCStructInit初始化。TIM_OCPolarity:pwm极性选择,对应结构图ref后,high为不取反,low为取反操作。TIM_OutputState:开始使能OC输出或者关闭使能,选择ENABLE。TIM_OCMode:一般选择:PWM1或者2。TIM_Pulse:指定CCR的值。采用复用推挽\开漏输出AF_PP\OD。常用PWM1或2模式。
2024-09-05 23:04:12 282
原创 江科大STM32学习——TIM定时器
2:选择时钟源:本节采用内部时钟、ETR2外部时钟:TIM_InternalClockConfig、TIM_ETRClockMode2Config。_IRQHandler(可放在使用它得函数文件中)计时时间:1/(主频/预分频+1/自动重装值+1)在初始化NVIC前清除一下标志位更新的标志位。3:初始化时基单元:TIM_TimeBaseInit。计数模式:向上或者向下或者中央对齐。4:使能中断:TIM_ITConfig。检查是否是该中断端口。6: 开启定时器:TIM_Cmd。
2024-09-03 19:35:12 234
原创 江科大STM32学习——ADC模块
ADC)模拟数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC分辨率0-40951us转换时间(开始到产生结果)输入电压范围0~3.3V转换结果范围0~4095(电压和转换结果对应着线性关系)18个输入通道,可测量16个外部(GPIO口)和2个内部信号源(内部温度传感器、内部参考电压)(1.2V左右,不随外部电压变化)和。
2023-11-20 21:29:02 552 1
原创 C语言学习9——动态内存分配
auto类型都存放在栈上。malloc函数在stdlib.h头文件中,。Malloc ralloc realloc free前三个申请,后面一个释放。
2023-11-12 23:32:00 76 1
原创 常见不同数组元素输入输出与赋值
※注意:不能将字符串直接赋值给数组,数组名是首元素地址常量,不能将字符串赋值过去,必须采用上诉两种方法。对于一串很长的整数存储,考录到用long类型存储占空间,采用数组存储。欢迎补充和指出错误!
2023-11-11 14:36:07 548 1
原创 江科大STM32学习记录3——EXIT外部中断
中断系统是管理和执行中断的逻辑结构,外部中断是能产生众多中断的原因之一。中断主程序运行时,出现了特定的中断触发条件(中断源),CPU暂停当前正在运行的程序转而去处理中断程序,处理完成又返回原来暂停的位置继续运行。中断优先级:CPU会依据中断源的轻重缓急进行裁决,优先相应更加紧急的。中断嵌套:一个中断程序正在运行,又有新的更高优先级的中断请求,CPU再次暂停当前中断,转而去处理新的中断程序。主函数执行,遇到中断跳出主函数,到相应的中断函数,执行完继续执行主函数。EXTI可以监测指定。
2023-11-10 00:27:10 151 1
原创 江科大STM32学习记录2——GPIO
用函数初始化GPIO,对于结构体不填写的内容(例如输入模式下输出部分参数就不用填写了),用GPIO_StructInit每一个参数按默认值填入。可以通过开关选择上拉模式,下拉模式,浮空输入模式。在输出模式中,我们也可以控制输出控制来控制MOS管来达到不同的输出模式:推挽输出、开漏输出、关闭。):大于某阈值,升为高,低于下限输出低,模拟输入不需要整形,所以就直接输出了,(直接无效而不是控制着无效:1时下管断开,相当于输出直接断开,高阻模式。电路结构分为上部分和下部分,上部分为输入部分,下部分为输出部分。
2023-11-09 20:25:43 210 1
原创 指针与数组学习(1)
在今日(11.9)的学习中,尝试编写strcpy函数以及strcnpy函数,函数的本质是将数组元素单个赋值,一直在报段错误内容。错误的定义了一个指针用来接收,这是错误的,需要定义一个数组来接受!
2023-11-09 11:36:27 55 1
原创 C语言中int (*P)[N]和int *P[N]的区别,以及和二维数组的联系
回到问题,为什么int (*p)[M]不行,而int (*p)[N]可行呢?因为a[M][N]是一个三行四列的数组元素,p是一个指向4个元素的指针,把a看成一维的数组,有三个元素,每个元素内又含有四个元素,所以p是需要指向N即4个元素的指针,这样才能装下每个大的”元素“。所以才可以数组与指针相互表示:p[][N]可以表示为(*P)[N]。:p先与*结合,再与[]结合,表示一个指针,指向一个数组元素,是一个。:p先结合[]表示一个数组,再与*结合,即表示一个。结合方式从右到左结合,例如。
2023-11-08 17:23:15 228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人