随笔分类 - 嵌入式STM32
spi,iic,usart
摘要:spi和iic都是短距离通信适合芯片与芯片之间的通信 usart是长距离通信适合两个设备之间的通信
阅读全文
串口DMA
摘要:双缓冲区 防止前一组数据没有及时处理后一组数据就来了,将前一组覆盖了。 采用标志位的方法,标志位为1就将数组1的地址赋给DMA存储器的地址,并且将标志位置0。同理,标志位为0就将数组2的地址赋给DMA存储器的地址,并且将标志位置1。 DMA+串口空闲中断 传输计数器设置一个很大的值,串口没有数据给寄
阅读全文
串口
摘要:串口时序:空闲时为高电平,一位低电平起始位+数据位+校验位+停止位,如果选择有校验那么数据长度可以选择9位,如果选择无校验数据长度可以选择8位 串口的校验方法有:奇校验和偶校验: 奇校验就是校验位要保证数据位加上校验位后1的个数为奇数,偶校验就是校验位要保证数据位加上校验位后1的个数为偶数。 缺点:
阅读全文
串口常见操作
摘要:如何判断一组数据是否发送完毕 采用缓冲数组加定时器的方式 首先定义一个标志位USART3_RX_STA,标志位的最高位判断数据是否收发完毕,1表示接收完毕,0表示没有接收完毕。采取的机制是定时器定时时间一到定时器中断就将USART3_RX_STA最高位置1,而串口中断要做的就是在定时间到之前及时将定
阅读全文
推挽输出与开漏输出
摘要:推挽输出 输出寄存器输出为1时P-MOS导通,N-MOS断开,输出接到VCC输出高电平。输出寄存器输出为0时P-MOS断开,N-MOS导通,输出接到VDD输出低电平 开漏输出 只有N-MOS有效,输出寄存器输出为1时,N-MOS断开,输出呈现高阻态。输出寄存器输出为0时,N-MOS导通,输出接到VD
阅读全文
ADC
摘要:STM32ADC是12位的,因此ADC的结果范围为0~4095,对应电压是0~3.3V 转换频率1MHZ(可以调) 采用14MHZ的内部时钟 逐次逼近型ADC原理:内部有个DAC,将数字转换成模拟,给它一个输入输出的模拟信号和我们输入的模拟信号进行比较,比我们的大的话就调小DAC输入,小的话就调大D
阅读全文
IIC
摘要:半双工,意味着要使用开漏输出 由于弱上拉的作用,传输速率越快高电平上升得越缓慢,因此传输速率不能过快。标准速度100kHZ,高速400kHZ 有一主多从和多主多从模式 高位先行,比如AT24C128/256是16位地址,发送从机地址的时候要一个字节一个字节的发,这个时候因为是高位先行,因此先发高位地
阅读全文
重定向sprintf和print的区别
摘要:1 /** 2 * 函 数:使用printf需要重定向的底层函数 3 * 参 数:保持原始格式即可,无需变动 4 * 返 回 值:保持原始格式即可,无需变动 5 */ 6 int fputc(int ch, FILE *f) 7 { 8 Serial_SendByte(ch); 9 return c
阅读全文
标志位
摘要:有些标志位可以触发中断,有些标志位不能触发中断 以串口为例,以下两个函数可以读写能触发中断的标志位,和不能触发中断的标志位,我们一般在主程序中使用这两个函数来判断标志位的状态 对于是否需要使用第二个函数手动清除我们可以查询状态寄存器的相应位的说明 对于这种读写操作会自动清零的标志位,我们可以不用第二
阅读全文
同步和异步
摘要:3-1_同步与异步_含片头_哔哩哔哩_bilibili 同步有时钟线约定何时读取数据(IIC)何时输出数据输入数据(SPI) 异步信号传输速率收发双方必须严格的规定好不能更改,不能中途终止数据的传输,不能进行软件模拟
阅读全文