摘要: 调试情况1 现象:主I2C发送数据而没有收到应答,则下一次不能正常发送数据 背景:主I2C每次应该都能正常发送数据 硬件:野火STM32-MINI,1主0从,SCL和SDA直接上拉 软件:按键触发中断,主I2C发送一次数据,中断优先级,按键最低,I2C最高,且主I2C中有TIMEOUT计时 优先级分 阅读全文
posted @ 2018-11-10 17:02 自由的青 阅读(3791) 评论(0) 推荐(0) 编辑
摘要: 这个小项目读取一张bmp格式的图像文件,做灰度化,二值化或者色彩调整并输出 工程为验证性仿真工程,无需上板,含有不可综合代码,也不能上板 首先,需要借助MATLAB将bmp格式图像文件转化为hex格式 Verilog代码部分包含一个图像读取模块,该模块有图像处理的部分,和一个图像写模块,还有一个参数 阅读全文
posted @ 2018-11-02 15:47 自由的青 阅读(7318) 评论(0) 推荐(0) 编辑
摘要: aaSTM32开发板的默认配置都是使用的外部8MHz的晶振,系统时钟为72MHz,而当使用12MHz的外部晶振,如不从新配置时钟,按默认配置则软件会认为自己的系统时钟为72MHz,而实际的系统时钟为108MHz 程序运行时首先从startup中进入Reset_Handler,它会调用SystemIn 阅读全文
posted @ 2018-10-22 15:42 自由的青 阅读(4166) 评论(0) 推荐(0) 编辑
摘要: 在实际应用中,会碰到上位机往单片机发送数据的情况,这时候需要配置单片机为从设备,准备接受数据 使用硬件I2C时,开启事件和缓存中断 然后在中断服务函数中接受数据 这段代码十分简单,处理EV1, EV2和EV4即可 逻辑分析仪截图如下 这次实验是这系列STM32 I2C实验的目的,因为工作项目需要我去 阅读全文
posted @ 2018-10-20 18:48 自由的青 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 上一篇博客是使用I2C读写EERPOM的初级版本,这次在上次的基础上添加中断,使用DMA传输控制,新添加两个读写函数 采用中断方式和DMA可以充分利用单片机强大的硬件外设,提高整体运行效率,而且,在编程上也更为便捷 新的页写函数如下 代码中注释掉的部分是原来的设计,在它下面是新的设计,首先配置好DM 阅读全文
posted @ 2018-10-19 12:37 自由的青 阅读(3769) 评论(0) 推荐(1) 编辑
摘要: 本工程运行于野火MINI开发板,主控型号为STM32F103RC,读写对象为AT24C02 2Kbit容量的EEPROM STM32的硬核I2C十分复杂,而且网上有说有缺陷,这就有意思了,值得一探究竟 I2C通信中各设备有主从之分,那么此处先从简单的主模式下手,做一个简单的读写EEPROM实验 从A 阅读全文
posted @ 2018-10-17 11:30 自由的青 阅读(3406) 评论(0) 推荐(0) 编辑
摘要: 实验阶段1,定时器计时1s触发中断,在中断中往外发送数据 定时器设定为36000分频,周期设定为2000,并开启中断,配置代码如下 串口配置与PC端调试助手设置一致即可,一般都配置为无硬件流控,无奇偶校验,1位停止位,八位数据位 中断服务函数中还是常规的检测中断标志位然后清除中断标志位 串口发送函数 阅读全文
posted @ 2018-10-15 12:03 自由的青 阅读(1548) 评论(0) 推荐(0) 编辑
摘要: 这次实验实现一个呼吸灯的效果,LED在第一秒内渐亮,在第二秒内渐暗,如此反复 控制LED的PWM波形阶梯数为100,即2秒内PWM的占空比从0%到100%范围内先递增后递减且递增/递减的幅度为1% 在设计STM32时,将定时器时钟7200分频后得到的10K时钟作为计数器时钟,并且设置周期为100,这 阅读全文
posted @ 2018-10-13 11:30 自由的青 阅读(3139) 评论(0) 推荐(0) 编辑
摘要: STM32定时器输出比较器可以直接操作对应的GPIO,在计数器值等于比较寄存器的值时,对应的GPIO可以有以下四种动作 无动作 激活 取消激活 翻转 激活电平由输出极性寄存器决定 将LED置于定时器输出比较对应的GPIO上,对它的操作将非常方便,完全由硬件完成,不消耗CPU时间,无需中断,每个定时器 阅读全文
posted @ 2018-10-12 18:02 自由的青 阅读(1768) 评论(0) 推荐(0) 编辑
摘要: 最简单的闪烁LED的方式莫过于在主函数的while循环中使用短暂延时并不断打开和关断LED,此处不做讨论 该简单工程运行在野火MINI开发板上,板上有两颗LED(D4, D5),可以通过宏定义的方式控制LED开关 其中GPIO的置位/复位函数由库提供,仿照该格式通过寄存器操作定义了GPIO位翻转函数 阅读全文
posted @ 2018-10-12 15:16 自由的青 阅读(2258) 评论(0) 推荐(0) 编辑