找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4291|回复: 3
打印 上一主题 下一主题
收起左侧

大佬发个stm8s003系列的adc和pwm的例程呗 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:471815 发表于 2019-2-14 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50黑币

最佳答案

查看完整内容

原本是要上传整个工程 的,但是压缩后比较大,现在只能贴出来主程序部分。 void Init_UART1(void) { UART1_DeInit(); UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TX_ENABLE); // UART1_Cmd(ENABLE); } void Send(uint8_t dat) { while(( UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET)); UART1_SendData8(dat); } ...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:337139 发表于 2019-2-14 10:50 | 只看该作者
原本是要上传整个工程 的,但是压缩后比较大,现在只能贴出来主程序部分。


void Init_UART1(void)
{
        UART1_DeInit();
        UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TX_ENABLE);
//        UART1_Cmd(ENABLE);
}
void Send(uint8_t dat)
{
    while(( UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET));
       
    UART1_SendData8(dat);
       
}
void Init_ADC(void)
{
        //GPIO_Init(GPIOD, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT);
        ADC1_DeInit();
        ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_3, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL3, ENABLE);
        ADC1_Cmd(ENABLE);
}
void UART1_sendhex(unsigned char dat)
{
    Send('0');
               
    Send('x');
               
    Send(HexTable[dat>>4]);
               
    Send(HexTable[dat&0x0f]);
               
    Send(' ');
}
void UART1_sendstr(unsigned char *dat)
{
    while(*dat!='\0')
               
    {
                               
      Send(*dat);
                               
      dat++;
                                //delay2us();
               
    }
}
void main(void)
{
    FlagStatus flag_status;
    u16 u16_adc1_value;
    Init_UART1();
    Init_ADC();
/* Infinite loop */
    while (1)
    {
                //Send(0xf0);
         ADC1_StartConversion();
         flag_status = ADC1_GetFlagStatus(ADC1_FLAG_EOC);
        // while(flag_status == RESET); // SET or RESET
             u16_adc1_value = ADC1_GetConversionValue();
         UART1_sendhex((u16_adc1_value>>8));
         UART1_sendhex((u16_adc1_value&0xff));
         UART1_sendstr("\r\n");
  }

}

#ifdef USE_FULL_ASSERT


void assert_failed(u8* file, u32 line)
{

  /* Infinite loop */
  while (1)
  {
  }
}
#endif


自已动手调试一下。


回复

使用道具 举报

板凳
ID:149764 发表于 2019-5-10 17:13 | 只看该作者
什么平台的
回复

使用道具 举报

地板
ID:337139 发表于 2020-10-21 13:57 | 只看该作者
我用的是IAR平台,AIN3口有调试过。希望对你有帮助!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表