/**
******************************************************************************
* @file stm8s_tim1.c
* @author MCD Application Team
* @version V2.1.0
* @date 18-November-2011
* @brief This file contains all the functions for the TIM1 peripheral.
******************************************************************************
* @attention
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2>
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "stm8s_tim1.h"
/** @addtogroup STM8S_StdPeriph_Driver
* @{
*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
static void TI1_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
static void TI2_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
static void TI3_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
static void TI4_Config(uint8_t TIM1_ICPolarity, uint8_t TIM1_ICSelection,
uint8_t TIM1_ICFilter);
/**
* @addtogroup TIM1_Public_Functions
* @{
*/
/**
* @brief Deinitializes the TIM1 peripheral registers to their default reset values.
* @param None
* @retval None
*/
void TIM1_DeInit(void)
{
TIM1->CR1 = TIM1_CR1_RESET_VALUE;
TIM1->CR2 = TIM1_CR2_RESET_VALUE;
TIM1->SMCR = TIM1_SMCR_RESET_VALUE;
TIM1->ETR = TIM1_ETR_RESET_VALUE;
TIM1->IER = TIM1_IER_RESET_VALUE;
TIM1->SR2 = TIM1_SR2_RESET_VALUE;
/* Disable channels */
TIM1->CCER1 = TIM1_CCER1_RESET_VALUE;
TIM1->CCER2 = TIM1_CCER2_RESET_VALUE;
/* Configure channels as inputs: it is necessary if lock level is equal to 2 or 3 */
TIM1->CCMR1 = 0x01;
TIM1->CCMR2 = 0x01;
TIM1->CCMR3 = 0x01;
TIM1->CCMR4 = 0x01;
/* Then reset channel registers: it also works if lock level is equal to 2 or 3 */
TIM1->CCER1 = TIM1_CCER1_RESET_VALUE;
TIM1->CCER2 = TIM1_CCER2_RESET_VALUE;
TIM1->CCMR1 = TIM1_CCMR1_RESET_VALUE;
TIM1->CCMR2 = TIM1_CCMR2_RESET_VALUE;
TIM1->CCMR3 = TIM1_CCMR3_RESET_VALUE;
TIM1->CCMR4 = TIM1_CCMR4_RESET_VALUE;
TIM1->CNTRH = TIM1_CNTRH_RESET_VALUE;
TIM1->CNTRL = TIM1_CNTRL_RESET_VALUE;
TIM1->PSCRH = TIM1_PSCRH_RESET_VALUE;
TIM1->PSCRL = TIM1_PSCRL_RESET_VALUE;
TIM1->ARRH = TIM1_ARRH_RESET_VALUE;
TIM1->ARRL = TIM1_ARRL_RESET_VALUE;
TIM1->CCR1H = TIM1_CCR1H_RESET_VALUE;
TIM1->CCR1L = TIM1_CCR1L_RESET_VALUE;
TIM1->CCR2H = TIM1_CCR2H_RESET_VALUE;
TIM1->CCR2L = TIM1_CCR2L_RESET_VALUE;
TIM1->CCR3H = TIM1_CCR3H_RESET_VALUE;
TIM1->CCR3L = TIM1_CCR3L_RESET_VALUE;
TIM1->CCR4H = TIM1_CCR4H_RESET_VALUE;
TIM1->CCR4L = TIM1_CCR4L_RESET_VALUE;
TIM1->OISR = TIM1_OISR_RESET_VALUE;
TIM1->EGR = 0x01; /* TIM1_EGR_UG */
TIM1->DTR = TIM1_DTR_RESET_VALUE;
TIM1->BKR = TIM1_BKR_RESET_VALUE;
TIM1->RCR = TIM1_RCR_RESET_VALUE;
TIM1->SR1 = TIM1_SR1_RESET_VALUE;
}
/**
* @brief Initializes the TIM1 Time Base Unit according to the specified parameters.
* @param TIM1_Prescaler specifies the Prescaler value.
* @param TIM1_CounterMode specifies the counter mode from @ref TIM1_CounterMode_TypeDef .
* @param TIM1_Period specifies the Period value.
* @param TIM1_RepetitionCounter specifies the Repetition counter value
* @retval None
*/
void TIM1_TimeBaseInit(uint16_t TIM1_Prescaler,
TIM1_CounterMode_TypeDef TIM1_CounterMode,
uint16_t TIM1_Period,
uint8_t TIM1_RepetitionCounter)
{
/* Check parameters */
assert_param(IS_TIM1_COUNTER_MODE_OK(TIM1_CounterMode));
/* Set the Autoreload value */
TIM1->ARRH = (uint8_t)(TIM1_Period >> 8);
TIM1->ARRL = (uint8_t)(TIM1_Period);
/* Set the Prescaler value */
TIM1->PSCRH = (uint8_t)(TIM1_Prescaler >> 8);
TIM1->PSCRL = (uint8_t)(TIM1_Prescaler);
/* Select the Counter Mode */
TIM1->CR1 = (uint8_t)((uint8_t)(TIM1->CR1 & (uint8_t)(~(TIM1_CR1_CMS | TIM1_CR1_DIR)))
| (uint8_t)(TIM1_CounterMode));
/* Set the Repetition Counter value */
TIM1->RCR = TIM1_RepetitionCounter;
}
/**
* @brief Initializes the TIM1 Channel1 according to the specified parameters.
* @param TIM1_OCMode specifies the Output Compare mode from
* @ref TIM1_OCMode_TypeDef.
* @param TIM1_OutputState specifies the Output State from
* @ref TIM1_OutputState_TypeDef.
* @param TIM1_OutputNState specifies the Complementary Output State
* from @ref TIM1_OutputNState_TypeDef.
* @param TIM1_Pulse specifies the Pulse width value.
* @param TIM1_OCPolarity specifies the Output Compare Polarity from
* @ref TIM1_OCPolarity_TypeDef.
* @param TIM1_OCNPolarity specifies the Complementary Output Compare Polarity
* from @ref TIM1_OCNPolarity_TypeDef.
* @param TIM1_OCIdleState specifies the Output Compare Idle State from
* @ref TIM1_OCIdleState_TypeDef.
* @param TIM1_OCNIdleState specifies the Complementary Output Compare Idle
* State from @ref TIM1_OCIdleState_TypeDef.
* @retval None
*/
void TIM1_OC1Init(TIM1_OCMode_TypeDef TIM1_OCMode,
TIM1_OutputState_TypeDef TIM1_OutputState,
TIM1_OutputNState_TypeDef TIM1_OutputNState,
uint16_t TIM1_Pulse,
TIM1_OCPolarity_TypeDef TIM1_OCPolarity,
TIM1_OCNPolarity_TypeDef TIM1_OCNPolarity,
TIM1_OCIdleState_TypeDef TIM1_OCIdleState,
TIM1_OCNIdleState_TypeDef TIM1_OCNIdleState)
{
/* Check the parameters */
assert_param(IS_TIM1_OC_MODE_OK(TIM1_OCMode));
assert_param(IS_TIM1_OUTPUT_STATE_OK(TIM1_OutputState));
assert_param(IS_TIM1_OUTPUTN_STATE_OK(TIM1_OutputNState));
assert_param(IS_TIM1_OC_POLARITY_OK(TIM1_OCPolarity));
assert_param(IS_TIM1_OCN_POLARITY_OK(TIM1_OCNPolarity));
assert_param(IS_TIM1_OCIDLE_STATE_OK(TIM1_OCIdleState));
assert_param(IS_TIM1_OCNIDLE_STATE_OK(TIM1_OCNIdleState));
/* Disable the Channel 1: Reset the CCE Bit, Set the Output State ,
the Output N State, the Output Polarity & the Output N Polarity*/
TIM1->CCER1 &= (uint8_t)(~( TIM1_CCER1_CC1E | TIM1_CCER1_CC1NE
| TIM1_CCER1_CC1P | TIM1_CCER1_CC1NP));
/* Set the Output State & Set the Output N State & Set the Output Polarity &
Set the Output N Polarity */
TIM1->CCER1 |= (uint8_t)((uint8_t)((uint8_t)(TIM1_OutputState & TIM1_CCER1_CC1E)
| (uint8_t)(TIM1_OutputNState & TIM1_CCER1_CC1NE))
| (uint8_t)( (uint8_t)(TIM1_OCPolarity & TIM1_CCER1_CC1P)
| (uint8_t)(TIM1_OCNPolarity & TIM1_CCER1_CC1NP))
没有合适的资源?快使用搜索试试~ 我知道了~
stm8 红外收发
共659个文件
c:150个
sisc:126个
h:86个
3星 · 超过75%的资源 需积分: 50 58 下载量 105 浏览量
2018-12-11
18:36:32
上传
评论 1
收藏 8.81MB ZIP 举报
温馨提示
本代码是基于stm8的红外收发代码,其中一个文件夹中是发送,一个接受,很简单的
资源详情
资源评论
资源推荐
收起资源包目录
stm8 红外收发 (659个子文件)
026853f800490cc1a11084e9f8c9d07bb17f64 438B
0647cfa0cbb67a9f965ad561b6838473f629e7 724B
0647cfa0cbb67a9f965ad561b6838473f629e7 724B
07702ab920dcee163a07a982fec0bec619a9f2 168B
10266b005e6b5f5e3362f2dccbada98fdf6ae7 359B
1730fbda9eac91ee175fdb3de178c06ad0237a 361B
1cbb4cca98b423c15f64121b21330ba0a99aca 429B
1eed864226fcebbc0ff734195646a7c35c9d57 160B
26104799d81e7b0c1c1f93ea1c092e761adf09 46B
26cd0d6dcc1dac17982cd1f72bbea080cb2183 446B
2ff806d3b12af22c588f8da55e697b422d44aa 504B
2ff806d3b12af22c588f8da55e697b422d44aa 504B
34dffac388ed9897d599d4f6c030af3f12e841 46B
3578491414befe4c3f8037b3911c4b625590be 616B
35c9ad564be3a7e156b3851f9a0283ffefac4f 3KB
38850305d56eaf18bb6fd019443cd2aa421158 549B
3cdf0ae65c2d84dac37b9d392d69355aa0ac8c 133B
3f503bf1441e9334600a45beb998636061ad54 968B
41e7aa5181bd8e785b570eaffd2eaefb7a258d 610B
41e7aa5181bd8e785b570eaffd2eaefb7a258d 610B
456fd2b6075009a4e2d9707da5a51d022edb1d 1KB
456fd2b6075009a4e2d9707da5a51d022edb1d 1KB
456fd2b6075009a4e2d9707da5a51d022edb1d 1KB
4c28e6948db1399becf6be8de48e733d6f2557 164B
4fd44d2cab5b969f53e1c96270fadc1d15a759 2KB
515243d81f96f7cfe1a2c386ca8eff41825797 2KB
549096d3b292075bb1afd2bccc79e98e1721b9 3KB
55c9ced9dcc27d24a59a5d37afa52b244c90e8 285B
5889a792023e10ced7c01b5a79f11ec6d32a22 131B
59d08ab190956fac292e875f34aede74beeb62 46B
5e1d5be018982b9ed6ca49fb191e64931fe017 605B
5e1d5be018982b9ed6ca49fb191e64931fe017 605B
5e1d5be018982b9ed6ca49fb191e64931fe017 605B
63302ac333287d7eef3de43b766f07b76b1983 651B
679f661a0d584f4276e41f0654b1474064d087 644B
6b86627b48fa68d9b50311b6f52ad5902f6bb7 532B
6b86627b48fa68d9b50311b6f52ad5902f6bb7 532B
6b86627b48fa68d9b50311b6f52ad5902f6bb7 532B
6eb834df55c3b3fe64e84f136950eb82db73c5 46B
7ee4d56ae556d4d8bc4de6bb1b2ce58dd7c9e3 648B
82982133e892ed7516a00e600c2aaa17cd5747 560B
838840f4cae4b1c8252d356e01c8248a6126d4 399B
838840f4cae4b1c8252d356e01c8248a6126d4 399B
838840f4cae4b1c8252d356e01c8248a6126d4 399B
8514b43eb6918dd42787f60830af4fa00f104b 450B
8d1c9516a85e390beadc11ba160c1c4f9b8948 158B
8d7ec7be8dd194804e6f8fe0f8f821cc916e06 429B
8ec21586462a7d0762a2b3444a9746ad504713 1KB
91ab33561520f0fb441e72390d99ab79d009eb 360B
9545e2b8d4427b3efc1d0ef1eee58f15f8a37e 2KB
9545e2b8d4427b3efc1d0ef1eee58f15f8a37e 2KB
9545e2b8d4427b3efc1d0ef1eee58f15f8a37e 2KB
979919f38b4e8bcafcd730dfb5e681d09b1fb3 659B
9ef9451170c9ba62ef07f702e9075b5ba237a9 325B
9ef9451170c9ba62ef07f702e9075b5ba237a9 325B
a5029d5bcb7c423a1ab6e07ae1240fe5b77549 504B
a5029d5bcb7c423a1ab6e07ae1240fe5b77549 504B
a5e429dd3befaea21b618ad2a673f9496ed24e 1KB
ab77130faf221fbc0e9bbfdd0b9f8898cac012 1KB
ab77130faf221fbc0e9bbfdd0b9f8898cac012 1KB
ab77130faf221fbc0e9bbfdd0b9f8898cac012 1KB
af771983dbabe2598ee59c23cae9e4fbc4c4b7 2KB
b021875f40de8c9ba88918f6bd800fc6d36f75 47B
b203892eb9b043f1813f594ba6f7ea26d9f8a3 2KB
b203892eb9b043f1813f594ba6f7ea26d9f8a3 2KB
b203892eb9b043f1813f594ba6f7ea26d9f8a3 2KB
b5b81c9cf9f1dd9a65be68291ea5a9b6875fc1 333B
ba19be795e08d94d283927325090954d052fd2 537B
STM8S_Demo.Debug.cspy.bat 2KB
STM8S_Demo.Debug.cspy.bat 2KB
STM8S_Demo.cspy.bat 1KB
STM8S_Demo.cspy.bat 1KB
bbe473f10471b18e00c3e005d9f9167ef4eedf 426B
bbe473f10471b18e00c3e005d9f9167ef4eedf 426B
bbe4e998ec5d1c8f061170fed777ccac960a7e 166B
bc6e2b9d839d7b265c97d25d6cd4b498d2580e 655B
STM8S_Demo.pbd.browse 473KB
STM8S_Demo.pbd.browse 383KB
stm8s_tim1.c 84KB
stm8s_tim1(4709).c 84KB
stm8s_tim1.c 84KB
stm8s_tim5.c 50KB
stm8s_tim5.c 50KB
stm8s_can.c 48KB
stm8s_can.c 48KB
stm8s_tim2.c 46KB
stm8s_tim2.c 46KB
stm8s_tim3.c 37KB
stm8s_tim3.c 37KB
stm8s_i2c.c 32KB
stm8s_i2c.c 32KB
stm8s_uart2.c 29KB
stm8s_uart2.c 29KB
stm8s_uart1.c 26KB
stm8s_uart1.c 26KB
stm8s_flash.c 25KB
stm8s_flash.c 25KB
stm8s_uart3.c 24KB
stm8s_uart3.c 24KB
stm8s_adc1.c 23KB
共 659 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
weixin_43855691
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1