完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,大家好,
我需要生成一个方波,并且我已经编写了一些代码,但它并不像我想的那样工作。有人可以帮我解决疑惑吗? 首先:我不确定以下寄存器是十六进制的......任何想法? 第二:我没有看出实际上互补的输出状态是什么。 第三:对此代码的任何建议? 非常感谢每一个帮助, 吉尔伯托 uint16_t tiM1_Prescaler = 4; uint16_t TIM1_Period = 320; uint8_t TIM1_RepetitionCounter = 0; uint16_t TIM1_Pulse = 190; CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,ENABLE); TIM1_DeInit(); TIM1_TimeBaseInit(TIM1_Prescaler,TIM1_CounterMode_Up,TIM1_Period,TIM1_RepetitionCounter); TIM1_OC1Init(TIM1_OCMode_PWM1, TIM1_OutputState_Enable, TIM1_OutputNState_Disable, TIM1_Pulse, TIM1_OCPolarity_High, TIM1_OCNPolarity_Low, TIM1_OCIdleState_Set, TIM1_OCNIdleState_Reset); TIM1_OC1PreloadConfig(ENABLE); TIM1_ARRPreloadConfig(ENABLE); TIM1_Cmd(ENABLE); #STM8L-STM8-PWM 以上来自于谷歌翻译 以下为原文 Hi everyone, I need to generate a square wave and I've written some code but it doesn't work as i want. Can anyone help me with my doubts please? first of all: I'm not sure that the following registers are in hexadecimal.. any ideas? second: I didn't undestand what are the complementary output states PRACTICALLY. third: any advices on this code? Thanks a lot for every help, Gilberto uint16_t TIM1_Prescaler=4; uint16_t TIM1_Period=320; uint8_t TIM1_RepetitionCounter = 0; uint16_t TIM1_Pulse = 190; CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE); TIM1_DeInit(); TIM1_TimeBaseInit(TIM1_Prescaler,TIM1_CounterMode_Up,TIM1_Period,TIM1_RepetitionCounter); TIM1_OC1Init( TIM1_OCMode_PWM1, TIM1_OutputState_Enable, TIM1_OutputNState_Disable, TIM1_Pulse, TIM1_OCPolarity_High, TIM1_OCNPolarity_Low, TIM1_OCIdleState_Set, TIM1_OCNIdleState_Reset); TIM1_OC1PreloadConfig(ENABLE); TIM1_ARRPreloadConfig(ENABLE); TIM1_Cmd(ENABLE); #stm8l-stm8-pwm |
|
相关推荐
1个回答
|
|
|
你好
''我不确定以下寄存器是十六进制的......任何想法?'' 通常,如果您未指定编译器将采用的数字格式 数字是十进制的。 所以 ''uint16_t TIM1_Prescaler = 4; uint16_t TIM1_Period = 320; uint8_t TIM1_RepetitionCounter = 0; uint16_t TIM1_Pulse = 190;'' 此代码将寄存器设置为 4 320 0 190 全部为十进制。 要以十六进制指定数字,请在数字前添加“0x” 例如0x0 = 0十进制 0xf = 15十进制。 对不起,无法帮助定时器设置 - 我在stm32上工作而不是stm8 以上来自于谷歌翻译 以下为原文 Hi ''I'm not sure that the following registers are in hexadecimal.. any ideas?'' In general, if you do not specify the number format the compiler will assume the number is in decimal. So ''uint16_t TIM1_Prescaler=4; uint16_t TIM1_Period=320; uint8_t TIM1_RepetitionCounter = 0; uint16_t TIM1_Pulse = 190;'' This code will set the registers to 4 320 0 190 all in decimal. To specify the number in hexadecimal add '0x' in front of the number eg 0x0 = 0 decimal 0xf = 15 decimal. Sorry, cannot help with the timer setup - I work on stm32 not stm8 |
|
|
|
|
只有小组成员才能发言,加入小组>>
stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写?
1453 浏览 0 评论
stm32f103用freertos对一个采样率为1kHz的传感器,进行采样,数据出差
1502 浏览 0 评论
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
3649 浏览 1 评论
3842 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
2461 浏览 1 评论
STM32H7打开DCache后,出现了串口接收信息为空的现象,是哪里出了问题?
727浏览 5评论
用NANO STM32F103RBT6的开发板烧录不了是哪里出了问题?
663浏览 5评论
710浏览 5评论
外部中断触发类型为双边沿触发,进入中断回调后有什么办法判断该边沿是上升沿还是下降沿?
941浏览 5评论
STM32L071CBT6低温环境下无法正常工作是什么原因引起的?
745浏览 5评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 11:03 , Processed in 0.514121 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3178