CC2503

  • 2024-04-29
  • 发表了主题帖: STC98LE52模拟 I2C通信 这个波形为什么会出现中间的电平,怎么消除?

    STC98LE52模拟 I2C通信 带1个负载,上拉电阻是R202,这个波形为什么会出现中间的电平,怎么消除啊?求帮助 图后附模拟I2C程序                                                  //状态标志 bit ack;                     //应答标志位 void Delay50us()        //@12.000MHz {     unsigned char i;     _nop_();     i = 22;     while (--i); } //                     起动总线函数                //函数原型: void  Start_I2c();   //功能:       启动I2C总线,即发送I2C起始条件.    void start_i2c() {   sda=1;           //发送起始条件的数据信号   sck=1;  Delay50us();    sda=0;           //发送起始信号  Delay50us();        sck=0;           //钳住I2C总线,准备发送或接收数据   Delay50us(); } //        结束总线函数                //函数原型: void  Stop_I2c();   //功能:       结束I2C总线,即发送I2C结束条件. void stop_i2c() {   sda=0;          //发送结束条件的数据信号   sck=1;          //结束条件建立时间大于4μs  Delay50us();   sda=1;          //发送I2C总线结束信号  Delay50us(); } //                 字节数据传送函数                //函数原型: void  SendByte(unsigned char c); //功能:  将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对 //     此状态位进行操作.(不应答或非应答都使ack=0 假)      //     发送数据正常,ack=1; ack=0表示被控器无应答或损坏。 void  sendbyte(unsigned char c) {  unsigned char BitCnt;    for(BitCnt=0;BitCnt<8;BitCnt++)          //要传送的数据长度为8位     {      if((c<<BitCnt)&0x80)sda=1;           //判断发送位        else  sda=0;                      sck=1;             //置时钟线为高,通知被控器开始接收数据位      Delay50us();              sck=0;      }         Delay50us();     sda=1;              //8位发送完后释放数据线,准备接收应答位    Delay50us();       sck=1;     Delay50us();     if(sda==1)ack=0;             else ack=1;      //判断是否接收到应答信号     sck=0;     Delay50us(); }  

  • 2024-04-09
  • 回复了主题帖: STM32F103单使用串口收发时,收不到数据,SR寄存器的LBD,FE置位,NE没有置位

    秦天qintian0303 发表于 2024-4-9 11:21 波特率111111,你的串口助手可以设置这个值吗?   可以设置,使用SSCOM,可以自定义设置波特率,我也用波特率9600试过,也是上面这种情况

  • 回复了主题帖: STM32F103单使用串口收发时,收不到数据,SR寄存器的LBD,FE置位,NE没有置位

    没事用LIN为什么会检测到断开呢,还FE置位NE没有置位那表示没有发生帧错误而是接受到断开符,我用CH341的TX和RX短接,串口助手收发都正常,没问题,难道是我硬件有问题?

  • 发表了主题帖: STM32F103单使用串口收发时,收不到数据,SR寄存器的LBD,FE置位,NE没有置位

    本帖最后由 CC2503 于 2024-4-9 10:36 编辑 求助:STM32F103单使用串口收发时,收不到数据,SR寄存器的LBD:LIN断开标志,RXNE读数据寄存器非空,IDLE监测到总线空闲,FE帧错误以上均被硬件置位,NE没有置位,接收到的数据一直为0,找不到原因了。 使用的USART1 RX PA0浮空输入,TX PA9复用推挽输出 速度10M,系统时钟16M 波特率111111,串口收发使用的CH341 12M,整个系统只是使用了串口收发一个功能。 以下为DEBUG: 初始化后USART1各寄存器状态 收到收据后SR寄存器状态 发送数据后SR寄存器状态 USART1部分代码如下: void USART1_Conf(void) {     USART1->CR1    &=    ~USART_CR1_M;//一个起始位,8个数据位,n个停止位          USART1->CR2    &=    ~USART_CR2_STOP;//设置1个停止位          USART1->BRR    &=    ~USART_BRR_DIV_Mantissa;//整数部分清0     USART1->BRR    |=    (9<<4);//设置整数部分 9 整数加小数部分为9.0000     USART1->BRR    &=    ~USART_BRR_DIV_Fraction;//小数部分清0          USART1->CR1    |=    USART_CR1_UE;//USART1使能     USART1->CR1    |=    USART_CR1_RE;//使能接收     USART1->CR1    &=    ~USART_CR1_RWU;//接收器处于正常工作模式 } int main(void) {     unsigned long u;          RCC_Conf();     GPIO_Conf();     USART1_Conf();     while(1)     {         while(!(USART1->SR    &    USART_SR_RXNE));//等待收到数据可以读出         u=USART1->DR;                  USART1->CR1    |=    USART_CR1_TE;//使能发送         while(!(USART1->SR    &    USART_SR_TC));//等待发送完成                  while(!(USART1->SR    &    USART_SR_TXE));//等待发送数据寄存器空                  USART1->DR    =u;//数据写进DR发送寄存器中         while(!(USART1->SR    &    USART_SR_TC));//等待发送完成                  while(!(USART1->SR    &    USART_SR_TXE));//等待发送数据寄存器空         USART1->CR1    &=    ~USART_CR1_TE;//关闭发送     }     } 

  • 2024-04-01
  • 回复了主题帖: 新编电子电路大全 共3卷

    感谢分享,对基础学习很有帮助,多看一看受益颇深

  • 回复了主题帖: 《晶体管电路设计》日本 池原典利著 中文版

    感谢分享,参考借鉴以下,对基础学习很有帮助,大好人

  • 2024-03-05
  • 回复了主题帖: Analog Circuit Design.pdf

    谢谢楼主分享

  • 2024-03-04
  • 回复了主题帖: 由二极管和电容组成的电容自举电路,由PWM下降沿产生的自举电压下降是不是消除不了?

    captz 发表于 2024-3-4 10:28 加二极管和电容的确是对症下药!与电源、PWM串联的二极管参数也要考虑,因为关系内阻。   我把这个用在给液晶的升压端口供电上,负载阻抗很大对电压需求大对电流需求小,在使用上没什么影响。如果负载阻抗小的话就必须考虑你说的这个了,电流需求大的电路用这个供电会不稳定吧,电流的波纹应该挺大的而且不好消,多级升压之后能对负载提供的电流会更小。

  • 回复了主题帖: 由二极管和电容组成的电容自举电路,由PWM下降沿产生的自举电压下降是不是消除不了?

    zhaoyanhao 发表于 2024-3-4 09:57 这个电路干嘛用了,是想在PWM波上加个偏置吗 自举升压电路,靠PWM把电容阳极端电压推上去,通过电容级联可以推到相当高的量级,可以用在液晶显示的升压供电上,对电流需求不大的电路差不多都可以用

  • 2024-03-01
  • 回复了主题帖: 由二极管和电容组成的电容自举电路,由PWM下降沿产生的自举电压下降是不是消除不了?

    lkh747566933 发表于 2024-3-1 14:02 应该是有负载就这样,把负载断开。实际应用的话增加跟随电路。 跟随电路也会避不开这个掉电压,上面的回复是加一个二极管和电容,解决了这个问题

  • 回复了主题帖: 由二极管和电容组成的电容自举电路,由PWM下降沿产生的自举电压下降是不是消除不了?

    maychang 发表于 2024-3-1 13:19 增加的电容与电阻并联,增加的二极管正极在A点,负极在电阻上端,原A点到电阻上端的联接线开路。 已经实现,太感谢了!!复盘了一下后加的那个电容起到续流的作用,二极管保证电流向负载方向流动。

  • 回复了主题帖: 由二极管和电容组成的电容自举电路,由PWM下降沿产生的自举电压下降是不是消除不了?

    maychang 发表于 2024-3-1 12:51 【第一个问题:A点的电压下降是不是无法消除啊】 减小这点的电压下降,只能尽量减小Uin电源的内阻和PWM ... 感谢

  • 回复了主题帖: 由二极管和电容组成的电容自举电路,由PWM下降沿产生的自举电压下降是不是消除不了?

    不亦心 发表于 2024-3-1 12:58 再加个二极管和电容 加到什么位置呢?和电阻并联上么

  • 发表了主题帖: 由二极管和电容组成的电容自举电路,由PWM下降沿产生的自举电压下降是不是消除不了?

    自举电路图   由PWM下降沿产生的A点电压下降 这个A点的波形是不是无法消除啊,尝试过在电阻RL两端并一个C105电容,发现会把PWM给滤掉,换了一个小的C103并在电阻两端,依旧无法消除。 第一个问题:A点的电压下降是不是无法消除啊 第二个问题:带负载能力相当的弱,这个电路实际中有什么用啊?  

最近访客

< 1/1 >

统计信息

已有2人来访过

  • 芯积分:12
  • 好友:--
  • 主题:3
  • 回复:11

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言